SET GLOBAL sql_slave_skip_counter 構文

SET GLOBAL sql_slave_skip_counter = N

このステートメントは、マスターからの次の N 個のイベントをスキップします。これは、あるステートメントによって発生したレプリケーション停止からのリカバリに役立ちます。



  • トランザクションテーブルの場合、イベントグループはトランザクションに対応しています。

  • 非トランザクションテーブルの場合、イベントグループは 1 つの SQL ステートメントに対応しています。


1 つのトランザクションに、トランザクションテーブルと非トランザクションテーブルの両方の変更を含めることができます。

SET GLOBAL sql_slave_skip_counter を使用してイベントをスキップした結果がグループの途中である場合、スレーブは、そのグループの最後に達するまで引き続きイベントをスキップします。そのあと、次のイベントグループから実行が開始されます。

MySQL 5.6 では、このステートメントを発行すると、RELAY_LOG_FILERELAY_LOG_POS、および sql_slave_skip_counter の以前の値がエラーログに書き込まれます。

Download this Manual
EPUB - 7.5Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb
User Comments
  Posted by Baron Schwartz on February 17, 2008
Setting this variable isn't like setting other server variables: you can't read the variable back again as @@sql_slave_skip_counter, and it isn't really a "global variable." Rather, it's a variable that only the slave thread reads.

When you restart the slave threads again with START SLAVE, the slave skips statements and decrements the variable until it reaches 0, at which point it begins executing statements again. You can watch this happening by executing SHOW SLAVE STATUS, where the variable's value appears in the Skip_Counter column. This is the only place you can see its value.

The effect is that the setting isn't persistent. If you set it to 1, start the slave, and the slave has an error in replication sometime later, the variable won't still be set to 1. It'll be 0. At that point, if you want the slave to skip the statement that caused the error, you'll have to set it to 1 again.
  Posted by Michael Widenius on September 27, 2012
The reason for the strange values of sql_slave_skip_counter is that the value is temporarily stored in a global variable which is then copied to the replication thread. However when querying one will always see the global variable (which doesn't always include the right information).

We have fixed this in MariaDB as part of adding multi-source replication.
  Posted by Suyash Jain on January 15, 2014
skip counter is not a viable solution always, you are skipping the records but it might affect the further records.

Here is the complete details on why sql slave skip counter is bad.


Suyash Jain
Sign Up Login You must be logged in to post a comment.