有一个基于 ROW 复制的系统。 昨天我不小心对我的主人执行了一个沉重的声明,发现我的奴隶远远落后于主人。我已经中断了对 master 的查询,但它仍在 slaves 上运行。 所以我让我的奴隶比主人晚了 15 个小时。
我已经尝试通过重置 slave 和增加 MASTER_LOG_POS 来跨过一个位置,但没有运气:找不到位置,因为没有比重查询事件更进一步地读取中继日志。
Read_Master_Log_Pos == Exec_Master_Log_Pos
- 有什么方法可以跳过繁重的查询吗? (我不关心必须通过查询更改的数据)
- 有没有办法终止对从中继日志中获取的从服务器的查询?
- 有没有办法让从站回到原来的位置,移除 来自 master bin-log 的事件并恢复复制?
最佳答案
在从机上尝试以下操作:
STOP SLAVE;
SET GLOBAL sql_slave_skip_counter = 1;
START SLAVE;
这将停止从线程并跳过来自主线程的下一个事件。当您遇到跳过语句的问题时,通常会使用此方法。
另请阅读 mysql 文档的以下部分:set-global-sql-slave-skip-counter
关于mysql复制跳过语句。可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17701524/