質問

異なるジョブを実行している (異なるデータベースを保持している) 2 つの mysql サーバーがあり、一方のサーバーが失敗したときに、一方のサーバーを使用して、もう一方のサーバーに障害が発生したときに差し替えられるようにしたい場合、両方のデータを等しく保つ方法を教えてください。リアルタイムに」?

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

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

役に立ちましたか?

解決

バイナリログは間違いなく最適な方法です。ただし、次のことに注意してください。 MySQL このようにサーバー間を行ったり来たりすることはできません。

1 つのサーバーは、 マスター そしてもう一人は奴隷になります。マスターに対して書き込み/読み取りを行うことができますが、スレーブ サーバーからのみ読み取ることができます。スレーブに書き込むと、同期が失われ、再び同期させる簡単な方法はありません (基本的には、マスターが新しいスレーブになるようにスレーブを交換する必要がありますが、これは面倒な手動プロセスです) )。

真のホットスワップ対応バックアップ データベースが必要な場合は、他のシステムを使用する必要がある場合があります。 MySQL. 。最悪のシナリオ (マスターが完全に破壊される) で即座に使用できる読み取り専用のライブ バックアップだけが必要な場合は、Binary Log が最適です。

他のヒント

検討してみてもよいでしょう マスターマスター レプリケーション シナリオですが、少しひねりが加えられています。どのデータベースをレプリケートするかを指定し、サーバーごとにレプリケーションを制限できます。

サーバー1の場合は追加します --replicate-do-db=server_2_db そしてサーバー2上で --replicate-do-db=server_1_db my.cnf (Windows では my.ini) にコピーします。これは、server_1_db のステートメントのみが server2 に複製され、またその逆も行われることを意味します。

また、偶発的な事故による安全性が確保できないため、レプリケーションだけに依存するのではなく、定期的に完全バックアップを実行するようにしてください。 DROP DATABASE 発言やそれに類するもの。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top