1

循環レプリケーションが設定された 2 つの mysql サーバーがあります。両方のサーバーでスレーブ ステータス チェックを実行すると、すべて問題ないことが示されます。ただし、server1 のテーブルの更新が完了しても、server2 はすぐには同期しません。数分後に同期される場合もあります。server2 の mysqld が再起動された後にのみ同期される場合があります。

私は持っている

innodb_flush_log_at_trx_commit = 1

sync_binlog = 1

my.cnf ファイルに。

何か案は?

4

1 に答える 1

1

sync-binlog一番の容疑者かもしれません。

sync-binlog に関する MySQL ドキュメントには、

値 1 が最も安全な選択です。これは、クラッシュが発生した場合、バイナリ ログから失われるステートメントまたはトランザクションは最大で 1 つであるためです。ただし、これは最も遅い選択でもあります (ディスクにバッテリーでバックアップされたキャッシュがあり、同期が非常に高速になる場合を除きます)。

マスターのディスクコントローラーのバッテリーをチェックします

私も使用をお勧めします

[mysqld]
innodb_flush_method=O_DIRECT

私はDBA StackExchangeinnodb_flush_methodで書きました

于 2012-12-18T21:16:45.387 に答える