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人员直接不让他有操作权限(我们的权限是很严格的)