web-dev-qa-db-ja.com

MySQLでのデータベースのミラーリング

MySQLでデータベースをミラーリングする方法はありますか? SQL Serverでは、マスター間の関係で2つのデータベースをリンクすることができます。 1つのDBがトランザクションを受け入れ、トランザクションが両方のDBで同時にコミットされます。 MySQLにも同様の概念はありますか?

3
Lloyd Banks

他の答えは質問の要点を逃したと思います。つまり、SQL Serverミラーリングでは、サーバーAとBの両方にコミットするトランザクションが同時に(アトミックに)コミットされます。トランザクションが1つのサーバーで失敗すると、両方で失敗します。 MySQLに同様の機能があるようには見えない

2
Lloyd Banks

その呼ばれるMySQLレプリケーション:

レプリケーションにより、1つのMySQLデータベースサーバー(マスター)からのデータを1つ以上のMySQLデータベースサーバー(スレーブ)に複製できます。レプリケーションはデフォルトで非同期です-マスターから更新を受信するためにスレーブを永続的に接続する必要はありません。これは、更新が長距離接続、さらにはダイヤルアップサービスなどの一時的または断続的な接続で発生する可能性があることを意味します。構成に応じて、すべてのデータベース、選択したデータベース、またはデータベース内の選択したテーブルを複製できます。

1
Satish

マスターとスレーブでDBの変更を同時にコミットするMySQLを使用してDBクラスターをセットアップする場合、最適なセットアップには PXC(Percona XtraDB Cluster )

PXCは、Galeraの WriteSetレプリケーションパッケージを使用します(CoderShip製)

マスターでコミットされたトランザクションがスレーブでコミットされることを前提に機能します。ガレラコードがスレーブがコミットできなかったことを検出してロールバックすると、マスターはロールバックします。 PXCを使用する3つ以上のDBサーバー

インストールすると、Percona ServerにはGaleraが統合されます。相互運用性について心配する必要はありません。 Perconaのサーバーバイナリは、MySQLのサーバーバイナリを完全に置き換えたものです。

いくつかの制限があるため、ドキュメントを読んでください 。このような制限には、

  • すべてのデータはInnoDBである必要があります
  • MyISAMデータの複製なし
  • 実行速度が最も遅いNodeがクラスタの速度を低下させる

私見あなたはそれらの制限で合理的に生きることができます。

単純なミラーリングを探している場合は、すべてのDB書き込みが1つのサーバーだけに送信され、COMMIT時に同期複製が行われるため、PXCで十分です。

私はこの製品を評価しましたが、今のところ非常に健全なようです...

1
RolandoMySQLDBA