マスター:
スリーププロセスが多すぎるかどうかを確認する
show processlist;
マスターステータスの表示:
show master status;
奴隷
ステータスを表示:
show slave status\G
Slave_IO_Running:はい
Slave_SQL_Running:いいえ
スレーブが同期していないことがわかります。
ソリューション:
方法1:エラーを無視した後、同期を続行します。
この方法は、マスターデータベースとスレーブデータベースのデータにほとんど差がない場合、またはデータが完全に統合されていない可能性があり、データ要件が厳密でない場合は
同期が停止します 。
stop slave;
ステップエラーのスキップを示します。次の数値は可変です。
set global sql_slave_skip_counter =1;
同期を開始します。
start slave;
ステータスをもう一度見てください。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
OK、マスターとスレーブの同期ステータスは正常です。。。
方法2:マスターとスレーブを再同期し、完全に同期します。
この方法は、マスターライブラリとスレーブライブラリのデータがまったく異なる場合、またはデータを完全に統合する必要がある場合に
適しています。 解決策の手順は次のとおりです
。1.マスターライブラリを最初に入力し、テーブルをロックして、データの書き込みを禁止します:
テーブルのロック:
mysql> flush tables with read lock;
注:この場所は読み取り専用としてロックされており、ステートメントでは大文字と小文字が区別されません
2.データのバックアップ:
#mysql.bak.sqlファイルにデータをバックアップします
mysqldump -uroot -p -hlocalhost > mysql.bak.sql
ここで注意すべき点の1つは、データベースのバックアップを定期的に実行する必要があることです。シェルスクリプトまたはpythonスクリプトを使用できます。これは、データが確実に確実であるようにするのに便利です。3
.マスターステータスを表示します。
show master status;
4. scpコマンドを使用して、mysqlバックアップファイルをデータ復旧のためにスレーブマシンに転送します。
scp mysql.bak.sql [email protected]:/tmp/
5.ライブラリから状態を停止します
stop slave;
6.次に、ライブラリからmysqlコマンドを実行して、データバックアップをインポートします。
mysql> source /tmp/mysql.bak.sql
7.スレーブライブラリの同期を設定し、そこにある同期ポイントに注意してください。|ファイル|マスターライブラリのshow master status情報の位置
change master to master_host = '192.168.128.100', master_user = 'root', master_port=3306, master_password='', master_log_file = 'mysqld-bin.000001', master_log_pos=3260;
8.スレーブ同期を再開します
stop slave;
9.同期ステータスを表示する
show slave status\G
Slave_IO_Running:はい
Slave_SQL_Running:はい
OK、同期が完了しました。