mysql复制跳过语句。可能吗?

标签 mysql replication

有一个基于 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/

相关文章:

php - 将 MySQL 查询放在 try{ } 之外是否安全

Postgresql:1表的主从复制

session - Microsoft Azure 中 Tomcat 的水平扩展

mysql - 完全完整的 MySQL 数据库复制?想法?人们做什么?

database - Firebird 数据库复制

MySQL - 行到列

mysql - 在 MySql 中使用 IN 子句的不同方法

mysql - 将 MySQL DB 复制到开发机器 - 坏主意?

php - 停止机器人快速发送多个请求。 PHP + AJAX

python - 如何更新 SqlAlchemy 中的所有对象列?