Как установить временной интервал для циклической репликации базы данных «главный-подчиненный»? - PullRequest
2 голосов
/ 21 февраля 2012

Я успешно настроил репликацию 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 Ответ

5 голосов
/ 03 марта 2012

Полагаю, вы путаете различные команды 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

...