3

我已经在我的 2 台数据库服务器上成功设置了主从复制。我还设置了主服务器在从服务器上复制,当主服务器关闭时,从服务器到主服务器的复制也可以工作。但是,我无法设置发生这种情况的时间间隔。我尝试使用 master_delay 和 master_heartbeat_period。这些似乎都不起作用。

mysql> change master to master_host='192.168.0.2',
-> master_user='master',
-> master_password='masterpass',
-> master_log_file='mysql-bin.000008',
-> master_log_pos=3733
-> master_delay=30;  //to set the time limit for the interval

mysql> change master to master_host='192.168.0.2',
-> master_user='master',
-> master_password='masterpass',
-> master_log_file='mysql-bin.000008',
-> master_log_pos=3733
-> master_heartbeat_period=30;  //to set the time limit for the interval

复制仍然会立即发生。知道我做错了什么吗?

4

1 回答 1

6

我猜你混淆了不同的 MySQL 命令及其用法。

MASTER_HEARTBEAT_PERIOD

... 用于设置复制心跳之间的间隔,由 Master 发送。如果 binlog 中没有未设置的事件,则发送心跳,只是为了确保连接。它们与复制延迟没有任何关系。

MASTER_HEARTBEAT_PERIOD 也仅在 MySQL Cluster NDB > 6.3 上可用

另见:http ://dev.mysql.com/doc/refman/5.1/en/change-master-to.html

MASTER_DELAY=N

可能是您正在寻找的选项。“从主控接收到的事件直到在主控上执行后至少 N 秒才会执行。”

但是这个选项只在 MySQL 5.6 或更高版本上可用!这是一个相当新的版本,......也许你不使用这个版本?

另见:http ://dev.mysql.com/doc/refman/5.6/en/replication-delayed.html

于 2012-03-03T12:29:35.217 回答