1. マスタースレーブレプリケーションとは何ですか? マスタースレーブレプリケーションは、スレーブデータベースと呼ばれる、マスターデータベースとまったく同じデータベース環境を確立するために使用されます。マスターデータベースは、通常、準リアルタイムのビジネスデータベースです。最も一般的に使用される MySQL データベースでは、単一項目の非同期割り当てがサポートされています。移行プロセス中、1 台のサーバーがマスター サーバーとして機能し、もう 1 台のサーバーがスレーブ サーバーとして機能します。マスター サーバーは更新情報を特別なバイナリ ファイルに書き込みます。 ログ サイクルを追跡するためにファイルのインデックスが維持されます。このログは更新を記録し、スレーブ サーバーに送信できます。スレーブ サーバーがマスター サーバーに接続すると、スレーブ サーバーはマスター サーバーに通知し、スレーブ サーバーのログ ファイルにある最後の正常な更新の場所を読み込みます。スレーブは、その時点から発生するすべての更新を受信し、マスターから新しい更新が通知されるまでロックして待機します。 2. マスタースレーブレプリケーションの役割 1 つ目は、データのセキュリティを確保することです。バックアップ データベースとしてデータのホット バックアップを実行します。メイン データベース サーバーに障害が発生した場合、スレーブ データベースに切り替えて作業を続行し、データの損失を回避できます。 2 つ目は、I/O パフォーマンスの向上です。日常の生産における業務量が増加するにつれて、I/O アクセスの頻度はますます高くなり、単一のマシンでは対応できなくなります。このとき、マルチライブラリ ストレージは、ディスク I/O アクセスの頻度を効果的に減らし、単一デバイスの I/O パフォーマンスを向上させることができます。 3 つ目は、読み取りと書き込みを分離することです。これにより、データベースはより高い同時実行性をサポートできるようになります。これはレポート作成において特に重要です。一部のレポート SQL ステートメントは非常に遅いため、テーブルがロックされ、フロントエンド サービスに影響を及ぼします。フロントデスクがマスターを使用し、レポートがスレーブを使用する場合、レポート SQL によってフロントデスクがロックされることはなく、フロントデスクの速度が確保されます。 3. マスタースレーブレプリケーションの原理 マスタースレーブレプリケーションに関係するファイル メインライブラリ: binlog ライブラリから:
マスタースレーブレプリケーションに関与する3つのスレッド メインライブラリ: Binlog_Dump スレッド: ライブラリから: スレーブ_IO_スレッド スレーブSQLスレッド 具体的な原理は図に示されています。 1. データベース(マスターデータベースの接続情報 + レプリケーションの開始点)からchange master toコマンドを実行します。 4. データベースSLAVE_SQL_THREADからmaster.infoファイルの情報を読み取り、IP、PORT、User、Pass、およびbinlogの場所の情報を取得します。 5. スレーブ データベース SLAVE_IO_THREAD は、マスター データベースへの接続を要求します。マスター データベースは、SLAVE_SQL_THREAD と対話するための SLAVE_IO_THREAD を提供します。 6.SLAVE_IO_THREADは、binlogの位置情報に基づいてマスターデータベースの新しいbinlogを要求します。 7. マスターデータベースはBinlog_DUMP_Threadを使用して、最新のバイナリログをネットワークTP経由でスレーブデータベースのSALVE_IO_THREADに送信します。 8.SLAVE_IO_THREADは新しいbinlogを受信し、それをTCP/IPキャッシュに保存し、すぐにマスターにACKを返し、master.infoを更新します。 9. SLAVE_IO_THREAD は TCP/IP キャッシュ内のデータをディスク リレーログにダンプします。 10.SLAVE_SQL_THREADはrelay.infoの情報を読み取り、前回適用されたrelaylogの位置情報を取得します。 11.SLAVE_SQL_THREADは最後の位置に従って最新のリレーログを再生し、relay.info情報を再度更新します。 12. データベースは定期的なクリーンアップのためにアプリケーションリレーを自動的に消去します。 マスター スレーブ レプリケーションが正常に確立されると、マスター データベースの新しい変更は、slave_dump_THREAD を介して SLAVE_IO_THREAD に送信され、マスター スレーブ レプリケーションのリアルタイム性が強化されます。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Linux centos7 に phpMyAdmin をインストールするチュートリアル
>>: Vueは買い物数量を変更できるショッピングカートを実装します
目次Linux - ファイル記述子、ファイルポインタ、インデックスノード1. Linux - ファイ...
Nginxを使用する目的Alibaba Cloud ECS クラウド サーバーを使用して、まずは著者...
目次HTML ページの作成js部分の機能を実装する1. 左ボタンと右ボタン2. 小さな円を動的に生成...
要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS....
データのバックアップと復元に関する最初の記事を皆さんに共有します。具体的な内容は次のとおりです。基本...
この記事では、VMware 環境下で Ubuntu と Windows 間でファイルを共有する方法を...
注: このデモはミニプログラム環境でテストされており、他の h5 および pc Web ページにも適...
まず、MySQL InnoDB エンジンのストレージ形式に関する重要なポイントをいくつか紹介します。...
グリッドレイアウト親要素に追加された属性グリッドテンプレートの列/グリッドテンプレートの行要素の行ま...
シンプルなセカンダリメニューを動的に実装するマウスを第 1 レベルのラベル上に置くと、マウスが小さな...
目次refとは何かrefの使い方DOM要素に配置するクラスコンポーネントに配置する関数コンポーネント...
<br />ホームページの右側にあるスクロールバーを削除するにはどうすればよいですか? ...
CentOS 7 では、次のようなコマンドを使用してホスト ポートをコンテナー ポートにマッピングす...
導入今日は、MySQL の sum 関数の使い方を紹介します。この関数は、MySQL データベースを...
操作効果: html <!-- この要素は表示されません。DOM は JavaScript に...