MySQL高可用解决方案
什么是高可用性? 很多公司的服务都是24小时*365天不间断的。比如Call Center。这就要求高可用性。再比如购物网站,必须随时都可以交易。那么当购物网的server挂了一个的时候,不能对业务产生任何影响。这就是高可用性。 高可用性2个问题: 如何共享数据或同
什么是高可用性?
很多公司的服务都是24小时*365天不间断的。比如Call Center。这就要求高可用性。再比如购物网站,必须随时都可以交易。那么当购物网的server挂了一个的时候,不能对业务产生任何影响。这就是高可用性。高可用性2个问题:
如何共享数据或同步数据?如何处理failover?
解释failover,意思就是当服务器down掉,或者出现错误的时候,可以自动的切换到其他待命的服务器,不影响服务器上App的运行。
对于分布式数据库系统。如何架构才能保证其高可用性呢?以MySQL为例。
1. MySQL replication with manual failover
同步数据是采用MySQL replication的方法,在MySQL分表分块到主从已经解释。简单的说就是从库根据主库的日志来做相应的处理,保证数据的一致。通常还配合MySQL Proxy或Amoeba等进行读写分离减少服务器压力。manual failover,显然当Master挂掉时,利用本方式是需要手动来处理failover,一般来说是将slave更改为server。
可用性达到: 98%-99.9+%
2. Master-Master with MMM manager(Multi-Master Replication Manager)
同步数据的方式是Multi-Master Replication Manager,在MySQL分表分块到主从解释,多主多从的设置,是一个loop环形,每个DB既是前一个DB的Slave又是后一个的Master。优势就在于,一个Master挂掉,也还可以继续DB操作。每个DB都可以进行读写,分散压力。可用性达到:99%
3. Heartbeat/SAN
处理failover的方式是Heartbeat,Heartbeat可以看成是一组程序,监控管理各个node间连接的网络。当node出现错误时,自动启动其他node开始服务。Heartbeat必须解决的一个问题就是split brain,在网络中的一个node down掉后,每个node都会认为其他node down掉并尝试开始服务,因为产生数据冲突。通过SAN来共享数据。
SAN:Storage Area Network,是一种LAN来处理大数据量的传输,提供了计算机和存储系统之间的数据传输。各个计算机组成的集群可以通过SAN共享存储。
MySQL高可用解决方案(MySQL

当server1挂掉的时候,Heartbeat监控到启动Server2的服务。而因为采用了SAN来共享了存储,Server2可以直接利用SAN网络中的数据。通过这种方式来提供高可用的解决方案。
可用性达到: 99.5%-99.9%
4. Heartbeat/DRBD
处理failover的方式依旧是Heartbeat。同步数据使用DRBD:Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。和SAN网络不同,它并不共享存储,而是通过服务器之间的网络复制数据。
MySQL高可用解决方案(MySQL
5. MySQL Cluster(NDB Cluster)
MySQL Cluster也是由各个DB node组成一个cluster,在这个cluster中由网络连接。可以自由的增减node的个数来对应数据库压力。
用synchronous replication(同步复制,要不同时成功要么同时失败)的方式来同步各个node的数据。然后对各个table进行partition,基于各个table的primary key。
采用了Shared Nothing Architecture的结构。不共享任何数据,而是每个node都同步好各自的数据。这样即使是PC也可以轻松被加入到Shared Nothing的结构中。
Share disk Share nothing Share memory
很难懂,我猜想MySQL Cluster的结构应该和Hadoop中的HDFS(Hadoop Distributed File System)相似,按照key来做partition,然后将各个partition通过synchronous的方式同步的保存到各个DataNode上,Management Node来监听管理Cluster,通过SQL Node来访问DataNode上的数据。
可用性百分比数据来源:
http://www.mysqlperformanceblog.com/2009/10/16/finding-your-mysql-high-availability-solution-–-the-questions/

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Laravelは、Webアプリケーションを簡単に構築するためのPHPフレームワークです。次のような強力な機能を提供します。インストール:Laravel CLIを作曲家にグローバルにインストールし、プロジェクトディレクトリにアプリケーションを作成します。ルーティング:ルート/web.phpのURLとハンドラーの関係を定義します。ビュー:リソース/ビューでビューを作成して、アプリケーションのインターフェイスをレンダリングします。データベース統合:MySQLなどのデータベースとのすぐ外側の統合を提供し、移行を使用してテーブルを作成および変更します。モデルとコントローラー:モデルはデータベースエンティティを表し、コントローラーはHTTP要求を処理します。

MySQLとPHPMyAdminは、強力なデータベース管理ツールです。 1)MySQLは、データベースとテーブルを作成し、DMLおよびSQLクエリを実行するために使用されます。 2)PHPMyAdminは、データベース管理、テーブル構造管理、データ操作、ユーザー許可管理のための直感的なインターフェイスを提供します。

他のプログラミング言語と比較して、MySQLは主にデータの保存と管理に使用されますが、Python、Java、Cなどの他の言語は論理処理とアプリケーション開発に使用されます。 MySQLは、データ管理のニーズに適した高性能、スケーラビリティ、およびクロスプラットフォームサポートで知られていますが、他の言語は、データ分析、エンタープライズアプリケーション、システムプログラミングなどのそれぞれの分野で利点があります。

記事の概要:この記事では、Laravelフレームワークを簡単にインストールする方法について読者をガイドするための詳細なステップバイステップの指示を提供します。 Laravelは、Webアプリケーションの開発プロセスを高速化する強力なPHPフレームワークです。このチュートリアルは、システム要件からデータベースの構成とルーティングの設定までのインストールプロセスをカバーしています。これらの手順に従うことにより、読者はLaravelプロジェクトのための強固な基盤を迅速かつ効率的に築くことができます。

MySQLでは、外部キーの機能は、テーブル間の関係を確立し、データの一貫性と整合性を確保することです。外部キーは、参照整合性チェックとカスケード操作を通じてデータの有効性を維持します。パフォーマンスの最適化に注意し、それらを使用するときに一般的なエラーを避けてください。

MySQLとMariaDBの主な違いは、パフォーマンス、機能、ライセンスです。1。MySQLはOracleによって開発され、Mariadbはフォークです。 2. Mariadbは、高負荷環境でパフォーマンスを向上させる可能性があります。 3.MariaDBは、より多くのストレージエンジンと機能を提供します。 4.MySQLは二重ライセンスを採用し、MariaDBは完全にオープンソースです。既存のインフラストラクチャ、パフォーマンス要件、機能要件、およびライセンスコストを選択する際に考慮する必要があります。

記事の最初の段落の要約:YIフレームワークアプリケーションを開発するソフトウェアを選択する場合、複数の要因を考慮する必要があります。 XcodeやAndroid Studioなどのネイティブモバイルアプリケーション開発ツールは、強力な制御と柔軟性を提供できますが、Reactネイティブやフラッターなどのクロスプラットフォームフレームワークは、一度に複数のプラットフォームに展開できる利点にますます人気が高まっています。モバイル開発を新しい開発者向けに、AppsheetやGlideなどの低コードまたはノーコードプラットフォームは、アプリケーションをすばやく簡単に構築できます。さらに、AWS AmplifyやFirebaseなどのクラウドサービスプロバイダーは包括的なツールを提供します

SQLはリレーショナルデータベースを管理するための標準言語であり、MySQLはSQLを使用するデータベース管理システムです。 SQLは、CRUD操作を含むデータベースと対話する方法を定義しますが、MySQLはSQL標準を実装し、ストアドプロシージャやトリガーなどの追加機能を提供します。
