PFY*_*PFY 5 mysql replication alter-table
我正在将 MySQL 表从 MyISAM 切换到 InnoDB,并且在我手动执行之前,我不希望从服务器执行更改表命令。目的是备份几个小时,以防出现我尚未解决的问题。有没有办法告诉 MySQL slave 在一段时间内不要处理来自 Master 的 alter table 命令?
如果你想阻止任何ALTER TABLE ... ENGINE=InnoDB;
在 Slave 上执行,只需在 Master 上运行:
SET SQL_LOG_BIN=0;
ALTER TABLE ... ENGINE=InnoDB;
SET SQL_LOG_BIN=1;
Run Code Online (Sandbox Code Playgroud)
这样做是为了防止 Master 将ALTER TABLE ... ENGINE=InnoDB;
其记录在其二进制日志中。由于 Slave 只从 Master 的二进制日志中复制,所以不要记录您不想复制的命令。
如果您有多个表要转换而不是复制,则可以执行以下操作:
SET SQL_LOG_BIN=0;
ALTER TABLE ... ENGINE=InnoDB;
ALTER TABLE ... ENGINE=InnoDB;
.
.
.
ALTER TABLE ... ENGINE=InnoDB;
SET SQL_LOG_BIN=1;
Run Code Online (Sandbox Code Playgroud)