MySQLマスタースレーブ障害の概要

症状1:Slave_IO_RunningがNO

エラー:

ライブラリからのSlave_IO_RunningはNO

マスターとスレーブのMySQLサーバーIDが等しいため、スレーブI / Oスレッドが停止します。レプリケーションを機能させるには、これらのIDが異なる必要があります(または、スレーブで--replicate-same-server-idオプションを使用する必要がありますが、これは必ずしも意味がありません。使用する前にマニュアルを確認してください)。

問題分析:

マスターライブラリとスレーブライブラリのserver-id値は同じです。

解決:

スレーブライブラリのserver-id値を、メインライブラリとは異なり、メインライブラリよりも低くなるように変更します。変更後に再起動し、再度同期します

症状2:Slave_IO_RunningがNO

エラー:

ライブラリからのSlave_IO_RunningはNO

問題分析:

スレーブライブラリスレッドがNOになる理由はたくさんあります。主な理由は、主キーの競合またはマスターデータベースがデータを削除または更新し、スレーブデータベースがレコードを見つけられず、データが変更されるためです。通常、ステータスコードエラーは1007、1032、1062、1452などです。

解決策1:

mysql> stop slave;

mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

mysql> start slave;

解決策2:

ユーザー権限を設定し、ライブラリから読み取り専用権限を設定します

set global read_only=true;

故障现象三:リレーログの位置の初期化エラー:バイナリログからヘッダーを読み取るI / Oエラー

エラー:

リレーログ位置の初期化中にエラーが発生しました
バイナリログ分析からヘッダーを読み取るI / Oエラー分析:

スレーブライブラリのリレービンが破損しています。

解決:

手動で修復し、同期されたbinlogとposポイントを再度見つけて、再同期します。

mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.xxx',MASTER_LOG_POS=xxx;

おすすめ

転載: blog.csdn.net/m0_47219942/article/details/108312062