mysqlプライマリスレーブ同期に問題が発生
1429 ワード
昨日mysqlデータベースのプライマリ・スレーブの同期エラーを確認し、mysqlログを表示するとログがエクスポートされないことに気づきました.
解決方法:mysqlbinlog--no-defaults-v--stop-position=888888 master-bin.000221 > ./mysql_tmp.log
デフォルト設定なし終了位置指定ファイルに出力
AWKコマンドを使用:
エラーが発生したファイル行番号を特定します.
user@linux:~# cat mysql_tmp.log | awk '/end_log_pos 7307725/{print NR}' 93049
行番号付近の数値を選択:cat mysql_tmp.log | awk 'NR==92900,NR==93100'
注意:NR=行番号は、エラーを報告する行数の前後に設定する必要があります.その前後N行を設定し、対応するsql文を探し出す
エラーメッセージによるSQL文を検証し、スレーブ・ライブラリでこの文を実行し、プライマリ・スレーブ・データを正常にします.
エラーSQLデータを直接検出
mysqlbinlog --no-defaults -v -v --base64-output=DECODE-ROWS master-bin.000445 | grep -A '10' 166900259
≪データベース・プライマリ・スレーブ・ログのクリーンアップ|Clean Database Primary From Log|emdw≫:まず、プライマリ・データベース・サーバが変更なしに操作できることを保証する必要があります.そうしないと、データが漏れやすくなります.まず従ライブラリを停止し、従ライブラリstop slaveをクリーンアップします. reset slave all; メインライブラリreset masterをクリーンアップします.メインライブラリのステータスshow master statusを表示します.ライブラリからの同期位置を設定するchange master to master_host='IPアドレス',master_port= mysql_port, master_user='mysql_user', master_password='mysql_passwd', master_log_file='master-bin.000001', master_log_pos=107; ライブラリからstart slaveを同期します.ライブラリのステータスが正常かどうかを確認します.
: mysqlbinlog: unknown variable
'default-character-set=utf8'
解決方法:mysqlbinlog--no-defaults-v--stop-position=888888 master-bin.000221 > ./mysql_tmp.log
デフォルト設定なし終了位置指定ファイルに出力
AWKコマンドを使用:
エラーが発生したファイル行番号を特定します.
user@linux:~# cat mysql_tmp.log | awk '/end_log_pos 7307725/{print NR}' 93049
行番号付近の数値を選択:cat mysql_tmp.log | awk 'NR==92900,NR==93100'
注意:NR=行番号は、エラーを報告する行数の前後に設定する必要があります.その前後N行を設定し、対応するsql文を探し出す
エラーメッセージによるSQL文を検証し、スレーブ・ライブラリでこの文を実行し、プライマリ・スレーブ・データを正常にします.
エラーSQLデータを直接検出
mysqlbinlog --no-defaults -v -v --base64-output=DECODE-ROWS master-bin.000445 | grep -A '10' 166900259
≪データベース・プライマリ・スレーブ・ログのクリーンアップ|Clean Database Primary From Log|emdw≫:まず、プライマリ・データベース・サーバが変更なしに操作できることを保証する必要があります.そうしないと、データが漏れやすくなります.まず従ライブラリを停止し、従ライブラリstop slaveをクリーンアップします. reset slave all; メインライブラリreset masterをクリーンアップします.メインライブラリのステータスshow master statusを表示します.ライブラリからの同期位置を設定するchange master to master_host='IPアドレス',master_port= mysql_port, master_user='mysql_user', master_password='mysql_passwd', master_log_file='master-bin.000001', master_log_pos=107; ライブラリからstart slaveを同期します.ライブラリのステータスが正常かどうかを確認します.