MySQL スレーブで SQL スレッドが停止した場合の対処方法
提供:maruko2 Note.
MySQL スレーブで SQL スレッドが停止(Slave_SQL_Running: No)した場合、次のような対処方法がある。
mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event 省略 Relay_Log_Pos: 13550246 Relay_Master_Log_File: mysql-bin.000010 Slave_IO_Running: Yes Slave_SQL_Running: No 省略 Last_Errno: 1062 Last_Error: Error 'エラー内容' 省略
目次 |
対処方法1
エラー内容を確認し、その SQL をスキップしてもよいと判断できるならば、次の SQL を実行しエラーをスキップする。
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; mysql> START SLAVE;
対処方法2
それでもエラーになる場合は、my.cnf に次のような記述をし mysqld を再起動することで、エラーを強制的にスキップする。(指定したエラーがでても、レプリケーションを続行するように SQL スレッドに指示する。)
slave-skip-errors= には、Last_Errno: の数字を記述する。
[mysqld] slave-skip-errors=1062
SQL スレッドが動くようになると Slave_SQL_Running: Yes となり、エラーになっていた SQL 文以降の SQL 文が実行され Relay_Log_Pos: が増えていることが確認できる。
mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event 省略 Relay_Log_Pos: 136324962 Relay_Master_Log_File: mysql-bin.000010 Slave_IO_Running: Yes Slave_SQL_Running: Yes 省略 Last_Errno: 0 省略
関連ページ
MySQL 関連のページ
- Cacti に MySQL サーバの統計情報を記録する . . カテゴリ: Cacti | MySQL | rrdtool | システム監視
- CentOS/MySQL InnoDB Plugin を追加インストールする . . カテゴリ: CentOS | MySQL
- Mediawiki/Tips . . カテゴリ: Mediawiki | MySQL
- MySQL のメンテナンスコマンド . . カテゴリ: MySQL
- MySQL レプリケーションの設定 . . カテゴリ: MySQL
- phpMyAdminのインストール . . カテゴリ: MySQL | Webアプリ