マスタースレーブ同期 (マスタースレーブレプリケーションとも呼ばれる) は、マスタースレーブデータの一貫性を保証する、MySQL が提供する高可用性ソリューションです。 実稼働環境では、データベース サービスの障害など、制御できない要因が多数存在します。アプリケーションの高可用性を確保するには、データベースも高可用性である必要があります。 したがって、実稼働環境では、マスター スレーブ同期が使用されます。アプリケーションの規模が小さい場合は、通常、マスター 1 つとバックアップ 1 つが使用されます。 データベース サービスに障害が発生したときにスタンバイ データベースにすばやく切り替えてアプリケーションが使用できなくなることを回避できることに加えて、マスター スレーブ同期を使用すると、次の利点があります。 データベースの読み取り同時実行性を向上させます。ほとんどのアプリケーションでは、書き込みよりも読み取りが多く必要になります。マスター スレーブ同期ソリューションを使用します。使用規模が拡大した場合は、スレーブ データベースを拡張して読み取り機能を向上させることができます。 バックアップ、マスタースレーブ同期により、リアルタイムで完全なバックアップ データベースを取得できます。 迅速なリカバリ: プライマリ データベースでエラーが発生した場合 (テーブルの誤った削除など)、スタンバイ データベースを通じてデータを迅速に復元できます。データ復旧速度に対する許容度が低い大規模アプリケーションの場合、プライマリ データベースから 30 分離れたデータ スナップショットを使用してバックアップ データベースを構成できます。プライマリ データベースからテーブルが誤って削除された場合、最大 30 分の待機時間で、バックアップ データベースと binlog を通じて迅速に復元できます。 マスター スレーブ同期とは何か、そしてその利点について説明したので、次にマスター スレーブ同期がどのように実現されるかを理解しましょう。 マスタースレーブ同期の実装原理まず、マスターとスレーブの同期の原理を理解しましょう。以下では、更新ステートメントを使用して、マスター データベースとスレーブ データベースがどのように同期されるかを紹介します。 上の図は、ノード A で実行され、その後ノード B に同期される更新ステートメントの完全なフローチャートです。具体的な手順は次のとおりです。
マスター スレーブ同期の動作原理は、実際には完全バックアップとバイナリ ログ バックアップの復元です。違いは、このバイナリ ログの復元操作は基本的にリアルタイムであることです。 スタンバイ データベースは、同期を実現するために 2 つのスレッドを使用します。
上記のプロセスから、マスタースレーブ同期の鍵はbinlogであることがわかります。 2つの一般的なアクティブ/スタンバイ切り替えプロセスMS構造MS 構造には 2 つのノードがあり、1 つはプライマリ データベースとして機能し、もう 1 つはバックアップ データベースとして機能します。2 つのノードは役割を交換することはできません。 状態 1 では、クライアントの読み取りと書き込みはノード A に直接アクセスし、ノード B は A のバックアップ データベースです。A のすべての更新を同期し、ローカルで実行するだけです。これにより、ノード B とノード A のデータは同じままになります。 切り替えが必要な場合は、状態 2 に切り替えます。このとき、クライアントはノード B に対して読み取りと書き込みを行い、ノード A はノード B のバックアップ データベースとなります。 ダブルM構造デュアル M 構造、2 つのノード、1 つはプライマリ データベースとして、もう 1 つはバックアップ データベースとして機能し、2 つのノードが役割を交換できます。 前の MS 構造図と比較すると、デュアル M 構造と MS 構造の唯一の違いは、もう 1 行あること、つまりノード A とノード B が常に相互にマスター スレーブ関係にあることであることがわかります。この方法では、切り替え時にマスターとスレーブの関係を変更する必要はありません。 二重M構造の循環コピー問題実際の生産現場では、ほとんどの場合、ダブルM構造が採用されています。しかし、ダブルM構造にはまだ解決すべき問題が残っています。 ノード A でビジネス ロジックが更新されると、バイナリ ログが生成され、ノード B に同期されます。ノード B が同期された後、binlog も生成されます。 (log_slave_updates はオンに設定されており、スタンバイ データベースでも binlogs が生成されることを示します)。 ノード A がノード B のバックアップ データベースでもある場合、ノード B の binlog もノード A に送信され、循環レプリケーションが発生します。 解決:
解決後のプロセス:
上記は、MySQL がマスタースレーブ同期を実現する方法の詳細です。MySQL マスタースレーブ同期の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
>>: IDEAでVUEプロジェクトをデバッグするための詳細な手順
ベンダープレフィックスとは何ですか?ベンダー プレフィックス - ブラウザー エンジン プレフィック...
必要: vue を使用して QR コードのスキャンを実現します。プラグイン: QRコードリーダー;プ...
関連記事:ユーザーエクスペリエンスのためのウェブサイトデザイン今朝、GMail がまた不調になり、接...
この記事では、テーブルの編集操作を実現するためのjs+Htmlの具体的なコードを参考までに共有します...
最近、多くの学生から Web ページのエンコーディングについて質問を受けています。gb2312 と ...
<br />この例では、主に onblur と onFocus という 2 つのパラメー...
コンピュータを再インストールし、最新バージョンのMySQLデータベースをインストールしました。その結...
方法は2つあります: 1. サービス方法ファイアウォールのステータスを確認します。 [root@ce...
目次ネットワーク構成を表示するネットワークインターフェース情報を表示する---ifconfigルーテ...
土曜日、本番サーバー上の Redis サーバーが利用できなくなり、エラー メッセージは次のようになり...
目次1. 証明書を生成する2. リモートを有効にする3. リモート接続3.1 Jenkins接続3....
MySql インデックスインデックスの利点1. 一意のインデックスまたは主キー インデックスを作成す...
まずはコードと効果を見てみましょう↓ <スタイル> 。主要 { アウトライン: 1px ...
1 ストアドプロシージャ1.1 ストアドプロシージャとは何かストアド プロシージャは、特定の機能を実...
暫定的な応答を示し、要求者に操作の続行を要求するステータス コード。コードの説明100 (続行) リ...