Mysql マスター/スレーブ レプリケーションの原則: まず、マスター ライブラリが更新イベントをスレーブ ライブラリに送信し、次にスレーブ ライブラリが更新レコードを読み取り、更新レコードを実行します。最後に、スレーブ ライブラリの内容が一貫しています。マスターライブラリと一緒に。
関連する無料学習の推奨事項: mysql ビデオ チュートリアル
mysql のマスター/スレーブ レプリケーションの原則:
マスター/スレーブ レプリケーションを行う理由
MySQL マスター/スレーブ レプリケーション プロセス
メイン データベース データベースの更新イベント (更新、挿入) 、削除)が binlog に書き込まれます。メイン ライブラリは binlog ダンプ スレッドを作成し、binlog の内容をスレーブ ライブラリに送信します。スレーブ ライブラリが開始され、接続するための接続が開始されます。メイン ライブラリスレーブ ライブラリの開始後、I/O スレッドを作成し、メイン ライブラリからバイナリ ログの内容を読み取り、リレー ログに書き込みます##スレーブ ライブラリの開始後、SQL スレッドを作成し、リレー ログ コンテンツから読み取り、Exec_Master_Log_Pos 位置から始まる更新読み取りイベントを実行し、更新されたコンテンツをスレーブの db
注: 上記のプロセスは相対的なプロセスであり、そうではありません。絶対プロセス
MySQL マスター/スレーブ レプリケーションの原理MySQL マスター/スレーブ レプリケーションは非同期レプリケーション プロセスであり、マスター データベースは更新イベントをスレーブ データベースに送信します。 、スレーブ データベースは更新レコードを読み取り、更新レコードを実行するため、スレーブ データベースの内容はメイン ライブラリと一致します。
binlog: バイナリ ログ、すべての更新イベント ログをメイン ライブラリに保存するバイナリ ファイル。 binlog は、データベース サービスが開始された瞬間からのデータベースのすべての変更レコード (データベース構造とコンテンツ) を保存するファイルです。メイン ライブラリでは、更新イベントが発生すると、更新イベントがバイナログに順番に書き込まれ、スレーブ ライブラリからレプリケーションのデータ ソースとしてスレーブ ライブラリにプッシュされます。
バイナリログ出力スレッド: スレーブ ライブラリがメイン ライブラリに接続するたびに、メイン ライブラリはスレッドを作成し、バイナリ ログのコンテンツをスレーブ ライブラリに送信します。スレーブ ライブラリに送信されようとしている SQL イベントごとに、binlog 出力スレッドがそれをロックします。イベントがスレッドによって読み取られると、ロックは解放されます。イベントがスレーブ ライブラリに完全に送信された場合でも、ロックは解放されます。
スレーブ ライブラリでは、レプリケーションが開始されると、スレーブ ライブラリはコピー処理用にスレーブ ライブラリの I/O スレッドとスレーブ ライブラリの SQL スレッドを作成します。
スレーブ ライブラリの I/O スレッド: START SLAVE ステートメントがスレーブ ライブラリから実行を開始すると、スレーブ ライブラリは I/O スレッドを作成し、メイン ライブラリに接続し、メイン ライブラリに更新を送信するように要求します。バイナリログ内のレコードをライブラリから取得します。スレーブ ライブラリの I/O スレッドは、メイン ライブラリの binlog 出力スレッドによって送信された更新を読み取り、これらの更新をリレー ログ ファイルを含むローカル ファイルにコピーします。
ライブラリからの SQL スレッド: ライブラリから SQL スレッドを作成します。このスレッドは、ライブラリの I/O スレッドによってリレー ログに書き込まれた更新イベントを読み取り、実行します。
要約すると、次のことがわかります。
各マスター/スレーブ レプリケーション接続には 3 つのスレッドがあります。複数のスレーブ ライブラリを持つメイン ライブラリでは、メイン ライブラリに接続されているスレーブ ライブラリごとに binlog 出力スレッドが作成され、各スレーブ ライブラリには独自の I/O スレッドと SQL スレッドがあります。
2 つの独立したスレッドを作成することにより、スレーブ ライブラリはレプリケーション中のスレーブ ライブラリの読み取りと書き込みを分離します。したがって、実行を担当するスレッドの動作が遅くなったとしても、更新ステートメントの読み取りを担当するスレッドは遅くなりません。たとえば、スレーブ ライブラリがしばらく実行されていない場合、ここでスレーブ ライブラリを開始すると、SQL スレッドの実行は遅くなりますが、I/O スレッドはメイン ライブラリからすべての binlog コンテンツを迅速に読み取ることができます。このようにして、SQL スレッドがすべての読み取りステートメントの実行を完了する前にスレーブ ライブラリの実行が停止した場合でも、I/O スレッドは少なくともすべての内容を完全に読み取り、スレーブ ライブラリのローカル リレー ログにそれらを安全にバックアップします。 、次回スレーブ ライブラリが開始されたときにステートメントを実行する準備ができています。
以上がmysqlのマスタースレーブレプリケーションの原理は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。