MySQLでデータベースをミラーリングする方法はありますか? SQL Serverでは、マスター間の関係で2つのデータベースをリンクすることができます。 1つのDBがトランザクションを受け入れ、トランザクションが両方のDBで同時にコミットされます。 MySQLにも同様の概念はありますか?
他の答えは質問の要点を逃したと思います。つまり、SQL Serverミラーリングでは、サーバーAとBの両方にコミットするトランザクションが同時に(アトミックに)コミットされます。トランザクションが1つのサーバーで失敗すると、両方で失敗します。 MySQLに同様の機能があるようには見えない
その呼ばれるMySQLレプリケーション:
レプリケーションにより、1つのMySQLデータベースサーバー(マスター)からのデータを1つ以上のMySQLデータベースサーバー(スレーブ)に複製できます。レプリケーションはデフォルトで非同期です-マスターから更新を受信するためにスレーブを永続的に接続する必要はありません。これは、更新が長距離接続、さらにはダイヤルアップサービスなどの一時的または断続的な接続で発生する可能性があることを意味します。構成に応じて、すべてのデータベース、選択したデータベース、またはデータベース内の選択したテーブルを複製できます。
マスターとスレーブでDBの変更を同時にコミットするMySQLを使用してDBクラスターをセットアップする場合、最適なセットアップには PXC(Percona XtraDB Cluster ) 。
PXCは、Galeraの WriteSetレプリケーションパッケージを使用します(CoderShip製)
インストールすると、Percona ServerにはGaleraが統合されます。相互運用性について心配する必要はありません。 Perconaのサーバーバイナリは、MySQLのサーバーバイナリを完全に置き換えたものです。
いくつかの制限があるため、ドキュメントを読んでください 。このような制限には、
私見あなたはそれらの制限で合理的に生きることができます。
単純なミラーリングを探している場合は、すべてのDB書き込みが1つのサーバーだけに送信され、COMMIT時に同期複製が行われるため、PXCで十分です。
私はこの製品を評価しましたが、今のところ非常に健全なようです...