10

異なるジョブ(異なるデータベースを保持している)を持つ2つのmysqlサーバーがあり、一方が失敗したときに一方を使用してスリップできるようにしたい場合、両方のデータを同等に保つ方法を提案しますか?リアルタイムに」?

明らかに、x分ごとに完全なデータベースダンプを作成することはできません。

バイナリログについて読んだことがありますが、それは私が進む必要のある方法ですか?フォールバックサーバーの速度が大幅に低下することはありませんか?バイナリログに一部のテーブルを含めない方法はありますか?データが変更されても問題ありませんか?

4

2 に答える 2

3

マスター マスターレプリケーションのシナリオを検討することもできますが、少しひねりがあります。複製するデータベースを指定し、サーバーごとに複製を制限できます。

server1 の場合--replicate-do-db=server_2_db、server2--replicate-do-db=server_1_dbで my.cnf (または Windows では my.ini) に追加します。これは、server_1_db のステートメントのみが server2 にレプリケートされ、逆も同様であることを意味します。

また、レプリケーションだけに頼るのではなく、定期的に完全バックアップを実行するようにしてください。偶発的DROP DATABASEなステートメントなどからの安全性が確保されないからです。

于 2008-09-13T17:26:45.007 に答える
2

バイナリログは間違いなく進むべき道です。ただし、 MySQLでは、そのようなサーバー間を行き来することはできないことに注意してください。

1つのサーバーがマスターになり、もう1つのサーバーがスレーブになります。マスターへの書き込み/読み取りはできますが、読み取りはスレーブサーバーからのみ可能です。スレーブに書き込む場合、それらは同期しなくなり、再度同期させる簡単な方法はありません(基本的に、マスターが新しいスレーブになるようにそれらを交換する必要がありますが、これは面倒な手動プロセスです)。

真のホットスワップ可能なバックアップデータベースが必要な場合は、 MySQL以外のシステムにアクセスする必要があるかもしれません。最悪のシナリオ(マスターが完全に破壊される)で即座に使用できる読み取り専用のライブバックアップだけが必要な場合は、バイナリログが最適です。

于 2008-08-11T19:22:13.060 に答える