如何设置主从循环数据库复制的时间间隔?

时间:2012-02-21 15:37:40

标签: mysql setinterval database-replication master-slave

我已成功在我的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

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

1 个答案:

答案 0 :(得分:5)

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

MASTER_HEARTBEAT_PERIOD

...用于设置主服务器发送的复制心跳之间的时间间隔。如果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