序文 MySQL マスター スレーブ レプリケーションの基本原理は、スレーブ データベースがマスター データベースに接続し、マスター データベースがマスター データベースの DUMP スレッドを生成することです。DUMP スレッドの主なタスクは、バイナリ ログのマイニングを継続し、それをスレーブ データベースの IO スレッドに送信することです。ログ ストリームを受け取った後、IO スレッドはそれをリレー ログに書き込みます。別のスレッドである SQL スレッドは、リレー ログの内容を読み取り、SQL ステートメントを再生します。 この記事では、主にMySQLマスタースレーブレプリケーションスレッドの状態遷移に関する関連コンテンツを紹介します。詳しい紹介を見てみましょう。 1. メインライブラリスレッドの状態値 次のリストは、マスター スレーブ レプリケーション (SHOW PROCESSLIST) のマスター サーバーの Binlog Dump スレッドの State 列に表示される可能性のある最も一般的なステータスを示しています。マスター サーバーに Binlog Dump スレッドが表示されない場合は、レプリケーションが実行されていない、つまり現在スレーブ ホストが接続されていないことを意味します。 バイナリログイベントをスレーブに送信 バイナリ ログはさまざまなイベントで構成されます。イベントは通常、更新とその他の情報から構成されます。スレッドはバイナリ ログからイベントを読み取り、それをスレーブに送信しています。 1 つのバイナリログの読み取りが終了しました。次のバイナリログに切り替えます。 スレッドはバイナリ ログ ファイルの読み取りを完了し、スレーブ サーバーに送信する次のログ ファイルを開いています。 すべてのバイナリログをスレーブに送信しました。バイナリログが更新されるのを待機しています。 スレッドはバイナリ ログからすべての主要な更新を読み取り、スレーブ サーバーに送信しました。スレッドは現在アイドル状態であり、マスター上の新しい更新の結果としてバイナリ ログに新しいイベントが表示されるのを待機しています。 終了の完了を待機中 スレッドが停止したときに発生する非常に単純な状態。 2. スレーブI/Oスレッド状態値 マスターに接続中 スレッドはプライマリ サーバーに接続しようとしています。 マスターバージョンの確認 プライマリ サーバーとの接続が確立された直後に発生する一時的な状態。 マスターにスレーブを登録する プライマリ サーバーとの接続が確立された直後に発生する一時的な状態。 バイナリログダンプを要求しています プライマリ サーバーとの接続が確立された直後に発生する一時的な状態。スレッドは、要求されたバイナリ ログ ファイル名と位置から始まるバイナリ ログの内容の要求をマスター サーバーに送信します。 バイナリログダンプ要求が失敗した後、再接続を待機しています バイナリ ログ ダンプ要求が失敗した場合 (接続なしのため)、スレッドはスリープ状態になり、定期的に再接続を試みます。再試行の間隔は、--master-connect-retry オプションを使用して指定できます。 バイナリログダンプ要求が失敗した後の再接続 スレッドはプライマリ サーバーに再接続しようとしています。 マスターがイベントを送信するのを待っています スレッドはプライマリ サーバーに接続し、バイナリ ログ イベントが到着するのを待機しています。プライマリ サーバーがアイドル状態の場合は、さらに長く続く可能性があります。待機が slave_read_timeout 秒続くと、タイムアウトが発生します。この時点で、スレッドは接続が切断されたと見なし、再接続を試みます。 マスターイベントをリレーログにキューイングする スレッドはイベントを読み取り、SQL スレッドによる処理のためにそれをリレー ログにコピーしています。 マスターイベントの読み取りに失敗した後、再接続を待機しています 読み取り中にエラーが発生した場合 (接続なしのため)、スレッドは再接続を試行する前に master-connect-retry 秒間スリープします。 マスターイベントの読み取りに失敗した後の再接続 スレッドはマスター サーバーに再接続しようとしています。接続が再確立されると、状態は「マスターがイベントを送信するのを待機中」に変わります。 スレーブSQLスレッドが十分なリレーログスペースを解放するのを待機しています ゼロ以外の relay_log_space_limit 値が使用されており、リレー ログが大きくなり、それらの合計サイズがその値を超えています。 I/O スレッドは、SQL スレッドがリレー ログの内容を処理し、十分なスペースを解放するためにいくつかのリレー ログ ファイルを削除するまで待機しています。 終了時にスレーブミューテックスを待機中 スレッドが停止したときに発生する非常に単純な状態。 3. スレーブSQLスレッドの状態値 リレーログからイベントを読み取り中 スレッドはリレー ログからイベントを読み取り、イベントを処理できます。 すべてのリレーログを読み取りました。スレーブI/Oスレッドがそれを更新するのを待機しています。 スレッドはリレー ログ ファイル内のすべてのイベントを処理し、I/O スレッドがリレー ログに新しいイベントを書き込むのを待機しています。 終了時にスレーブミューテックスを待機中 スレッドが停止したときに発生する非常に単純な状態。 4. スレーブ接続スレッドの状態値 これらのスレッド状態はレプリケーション スレーブで発生しますが、I/O スレッドや SQL スレッドではなく、接続スレッドに関連付けられています。 マスターの変更 スレッドは CHANGE MASTER TO ステートメントを処理しています。 奴隷の殺害 スレッドは STOP SLAVE ステートメントを処理しています。 マスターダンプテーブルを開く この状態は、マスター ダンプからテーブルを作成した後に発生します。 マスターダンプテーブルデータの読み取り この状態は、マスター ダンプ テーブルを開いた後に発生します。 マスターダンプテーブルのインデックスを再構築する この状態は、マスター ダンプ テーブル データの読み取り後に発生します。 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。 以下もご興味があるかもしれません:
|
>>: 自作の Windows サーバーに egg アプリケーションを展開する方法 (画像とテキスト付き)
背景インターフェイス ドメイン名はハードコードされておらず、動的に取得されます。具体的な実装は、静的...
目次SVG による画像キャプチャCSS部分エフェクト画像表示ソースコードアドレスこれまで見てきたもの...
1. Nginx ロードバランシングの実装原理1. Nginxはリバースプロキシを通じて負荷分散を実...
HTML Web ページ リスト タグの学習チュートリアル。 HTML ページでは、リストはアウトラ...
目次Viteプロジェクトビルドの最適化他のやっとこれは前回の記事の補足です。設定プロジェクトで遭遇し...
以下に示すように、あなたならどのようにそれを達成しますか: 通常、フォントアイコンを使用して中央にプ...
序文:前の記事を読んだ後、binlog はデータベースで実行されたすべての DDL および DML ...
1. ディスクパーティション: 2. fdiskパーティションディスクが2 TB未満の場合はfdis...
目次1.MySQLは時間間隔を加算または減算します2. 日付を減算する最近、MySQL を見直してい...
この記事では、ソーシャル ウェブサイトのホームページを比較分析することで洞察を得て、ソーシャル ウェ...
1. まずmysqlサービスを停止します管理者としてCMDを開いて閉じるか、Windowsサービスペ...
selinux ( Security-Enhanced Linux)は、Linux カーネル モジュ...
この記事では、タイピングゲームを実装するためのJavaScriptの具体的なコードを参考までに紹介し...
目次1. 基本的なイベント処理2. 親コンポーネントにカスタムイベントを送信するマウス修飾子4. キ...
以下は、HTML で正規表現を使用してテーブルをチェックするサンプル コードです。具体的なコードの内...