web-dev-qa-db-ja.com

mysqlbinlogファイルサイズが大きくなりません

バックアップ用にmaster(A)-slave(B)-slave(C)モードのMySQLインスタンスを作成しました。しかし、今日、モードが正常に機能するかどうかを確認すると、ABは問題ないことがわかりました。つまり、BAからbinlogを取得できますが、Bはそのbinlogに更新を書き込みません。したがって、CBと同期できません。

調査の結果、Bの新しいbinlogファイルは120バイトであり、MySQLのログにエラーはないことがわかりました。 sql_log_binはオンです。だから私は問題を引き起こす理由が何であるかわかりません。追加として提供できるのは、新しいbinlogの作成時間は、mysqldumpBを作成したときです。それで、mysqldumpイベントとbinlog書き込みイベントの間に何らかの関係があるのではないかと思いますか?誰かが私を助けてくれることを願っています、どうもありがとう。

Bのマスターステータス:

mysql> show master status;
+-----------------+----------+--------------+------------------+-------------------+
| File            | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------+----------+--------------+------------------+-------------------+
| mysqlbin.000016 |      120 |              |                  |                   |
+-----------------+----------+--------------+------------------+-------------------+

Bのbinlogファイルサイズステータス:

ll /data/mysql/
-rw-rw----. 1 mysql mysql        166 7月   7 02:00 mysqlbin.000015
-rw-rw----. 1 mysql mysql        120 7月   7 02:00 mysqlbin.000016
-rw-rw----. 1 mysql mysql        288 7月   7 02:00 mysqlbin.index

B's mysqldump SQL:

mysqldump --master-data=2 --all-databases --flush-logs --user=xxx  --socket=/tmp/mysqld.sock -A > /tmp/backup.sql
2
user2431104

チェーンレプリケーションがあります

マスター->スレーブA->スレーブB(スレーブAはマスターのスレーブであり、スレーブBはスレーブAのスレーブです)

あなたが言ったように、スレーブサーバー(A)ではバイナリログが有効になっています。

さらに、スレーブはマスターサーバーから受信した更新を自身のバイナリログに記録しないため、log_slave_updatesを有効にする必要があります。このオプションは、SQLスレッドによって実行された更新を独自のバイナリログに記録するようにスレーブに指示します。

したがって、スレーブAでlog_slave_updatesを有効にする必要があります。

レプリケーションパフォーマンスの向上をご覧ください。

1
Abdul Manaf