MySQL主从同步报错1507

mysql 从库上手动删除partiton后,主库未做修改.后期主库上删除partiton后,出现问题.

故障现场

Last_Errno: 1507
                   Last_Error: Error 'Error in list of partitions to DROP' on query. Default database: ''. Query: 'ALTER TABLE  DROP PARTITION part_20170209'

解决办法:

根据从库报错到相应位置查看要删除的分区,发现果然没有那个分区。问题到这里已经很明朗了,剩下的就是简单的一些修复操作

mysql> stop slave ;
Query OK, 0 rows affected (0.00 sec)

mysql> set global sql_slave_skip_counter=1;
Query OK, 0 rows affected (0.00 sec)

mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

重复上面的操作,直到问题得到修复。如果同样的报错很多,也可以自己写一个脚本,不断监控mysql slave状态,如果匹配到同样的报错就跳过。下面来看一下修复后的情况

Seconds_Behind_Master: 1265
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 

感觉还好,有一点延迟,还好发现及时.

总结:

1、出现这样的问题,首先可以肯定的是,不能使用大权限账号在从库手动执行drop partition操作,导致主库执行的时候从库没有发现这个partition报错。

      要控制这样的问题,可以从权限着手,严格控制用户权限,非DBA人员直接不让他有操作权限(我们的权限是很严格的)

原文地址:https://www.cnblogs.com/xzlive/p/11417221.html