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

... マスターによって送信されるレプリケーション ハートビートの間隔を設定するために使用されます。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 に答える