mysql では、マスター/スレーブとは 2 つの同一のデータベースを確立することを指し、1 つはメイン データベース、もう 1 つはセカンダリ データベースであり、データベース サーバーのダウンタイムによるデータ損失を防ぐことができます。フェイルオーバー、読み書き分離、バックアップ機能を提供します。
このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。
マスター/スレーブの概要
いわゆる mysql マスター/スレーブとは、2 つの同一のデータベースを作成することです。 1 つはメイン用途のデータベース、もう 1 つはセカンダリ データベースです。一般に企業では、より重要なデータを保存するデータベース サーバーをマスター/スレーブ構成で構成する必要があります。これにより、データベース サーバーのダウンタイムによるデータ損失を防ぐことができます。また、ユーザー数や訪問者が多すぎる場合のサービス品質 (サーバーの応答速度) を確保し、フェイルオーバー、読み書き分離、バックアップなどの機能も提供できます。
マスター/スレーブ形式
1 つのマスターと 1 つのスレーブ
マスター/マスター レプリケーション: バックアップとして使用され、マスター サーバーに障害が発生した場合、別のマスターが使用されます。サーバー 自動的にチャージされます。
1 つのマスターと複数のスレーブ: 読み取りと書き込みの分離を実現するために使用されます。書き込み操作が少なく、読み取り操作が多い場合に使用されます。マスター サーバーは書き込み操作の実装に使用され、スレーブ サーバーは読み取り操作を実装するために使用されます。
複数のマスターと 1 つのスレーブ: 読み取りと書き込みの分離を実現するために使用されます。書き込み操作が多く、読み取り操作が少ない場合に使用されます。マスター サーバーは書き込み操作の実装に使用され、スレーブ サーバーは読み取り操作を実装するために使用されます。
従来のマスター/スレーブ
従来のマスター/スレーブ レプリケーションは、主にバイナリ ログ ファイルの場所に基づくレプリケーションであるため、マスターはバイナリ ログを開始し、一意のサーバー ID、レプリケーション グループ内の各サーバーは一意のサーバー ID を使用して構成する必要があります。 server-id を省略した場合 (または明示的にデフォルト値の 0 に設定した場合)、マスターはスレーブからの接続を拒否します。
gtid マスター/スレーブ
MySQL 5.6 の新機能の 1 つであるグローバル トランザクション識別子 (GTID) は、ソース (マスター) に作成され関連付けられる一意の識別子です。 ) サーバー上でコミットされた各トランザクションに関連付けられています。この識別子は一意であるだけでなく、特定のレプリケーション設定内のすべてのサーバー間でも一意です。すべてのトランザクションとすべての GTID の間には 1 対 1 のマッピングがあります。サーバーIDとトランザクションIDで構成されます。このグローバル トランザクション ID は、元のサーバー上で一意であるだけでなく、マスター/スレーブ関係を持つすべての mysql サーバー上でも一意です。まさにこの機能のおかげで、mysql のマスター/スレーブ レプリケーションがよりシンプルになり、データベースの一貫性の信頼性が高まります。 GTID は、繰り返しの実行によるデータの混乱やマスターとスレーブの不一致を避けるために、サーバー上で 1 回だけ実行されます。
マスター/スレーブ レプリケーションの原理
マスター/スレーブ レプリケーションのワークフロー: マスター データベースは、ユーザーのすべての書き込み操作 (追加、削除、変更、および書き込みを除く) を記録します。チェック) を binlog ログに記録し、ログ ダンプ スレッドが生成され、スレーブ ライブラリは I/O スレッドと SQL スレッドを生成します。スレーブ ライブラリの I/O スレッドは、I/O ストリームの形式でリクエストをログに送信します。メイン ライブラリのダンプ スレッド メイン ライブラリのログ ダンプ スレッドは、スレーブ ライブラリからのリクエストを受信します ライブラリ I/O スレッドのリクエスト後、binlog ログがスレーブ ライブラリに送信されます スレーブ ライブラリ I/O スレッドの終了後binlog ログを受信し、それをリレー ログ (リレー ログ) ファイルに書き込み、スレーブ ライブラリの SQL スレッドがそれを中継します。ログ ファイル内のログは SQL スクリプトに解析され、最終的に生成された SQL スクリプト ファイルは一貫したマスター/スレーブ操作を実現し、最終的なデータの一貫性を達成するために実行されます。
推奨学習: mysql ビデオ チュートリアル
以上がmysqlマスタースレーブとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。