MySQL マスター/スレーブ同期の問題の分析

PHP中文网
リリース: 2018-05-10 17:14:37
オリジナル
2165 人が閲覧しました

クラスターライブラリのステータスを表示してスレーブステータスGを表示します

ライブラリからの元のヒント: Last_Error: ワーカーにエラーがあったためコーディネーターが停止しました。 -11e7 -a98a-7cd30ac6c9ec:148408' マスター ログ mysql-bin.000010、end_log_pos 920578920。このエラーやその他のエラー (存在する場合) の詳細については、エラー ログおよび/または Performance_schema.replication_applier_status_by_worker テーブルを参照してください。

1、 Cong に従って、ライブラリのプロンプトに従って原因を見つけます。コマンド

select * from performance_schema.replication_applier_status_by_worker\G
ログイン後にコピー

を入力して

を取得します。このトランザクションがテーブル r_com_patent で発生したことはわかっていますが、どのレコードがあったかはわかりません。 。

2. バイナリファイルを見つけるためにメインライブラリに行ったときの出来事。コマンド

Mysqlbinlog --no-defaults –v –v --base64-output=decode-rows /usr/local/mysql/data/master-bin.000010 | grep –A ‘10’ 920578920
ログイン後にコピー


を入力して、最終的にレコードを見つけます。

メイン ライブラリはテーブル r_com_patent を更新しましたが、クラスター ライブラリは更新されたレコードを見つけることができません。

具体的には、メイン データベースは、テーブル r_com_patent 内の特許 ID 45 のレコードとフィールド cid を NULL から 3253026 に変更します。クラスター データベース テーブル r_com_patent 内の特許 ID 45 のレコードには、元々フィールド cid 3253026 があります。レプリケーション メカニズムにより、データベース テーブル r_com_patent で、patent_id 45、ID NULL のレコードを探す必要があるため、見つかりませんでした。 。 。

3. 解決策

1) マスター内のレコードを確認します。

Select * from r_com_patent where patent_id = 45;
ログイン後にコピー

2) スレーブ上で、更新されたレコードを探します。存在しないはずです。

  Select * from r_com_patent where patent_id = 45;
ログイン後にコピー

3) スレーブで失われたデータを入力または変更します。

  Insert into r_com_patent values(3253026,45);
ログイン後にコピー

4) スレーブ上でエラー報告トランザクションをスキップします。

Stop slave;
Set @@SESSION.GTID_NEXT=’ 864e6992-0a34-11e7-a98a-7cd30ac6c9ec:148408’
Begin;
Commit;
Set @@SESSION.GTID_NEXT = AUTOMATIC;
Start slave;
ログイン後にコピー

その後、もう一度確認してください

Show slave status\G
ログイン後にコピー

以上がMySQL マスター/スレーブ同期の問題の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!