我已成功在我的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
复制仍然会立即发生..不知道我做错了什么?
答案 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