mysql 主从复制跳过错误

mysql主从复制架构中,可能因为误操作等原因,slave机器出现错误而导致复制停止,这种情况下,我们可以在不停机的情况下跳过出现错误的这个事务,很简单,停掉slave,设置SQL_SLAVE_SKIP_COUNTER =1跳过一个事务,然后启动slave即可。

1
2
3
mysql>SLAVE STOP;
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
mysql>SLAVE START;
  1. 实际上 SET GLOBAL SQL_SLAVE_SKIP_COUNTER =N 这其中的N指的是event也就是事件,一个事务是由一组事件组成的。如果你指定的这个N刚好落在了事务中的一个event,那么将会跳过整个事件组。所以我们可以指定N为1来跳过一个事务。

  2. 跳过事务一定要谨慎,因为你跳过这个事务就意味这主从数据库产生了差异。