3つのノードを持つmysqlマルチマスターがありましたが、残念ながらレプリケーションが壊れました。他のデータベースサーバーと同期する必要のあるテーブルのセットがあるので、これら3つのサーバー間の同期を試すためにPercona-Toolkitを調べていました。 2つのdbサーバー間でテーブル内のレコードを双方向で同期できました。
Pt-table-syncを使用して3台のサーバーと双方向に同期する方法はありますか?または、3つのdbサーバーの同期に関連する手順はありますか?
ありがとう、Swaroop。
まず、 マルチマスターレプリケーションに関するこの最近の応答 を見てください。ここで、このセットアップが問題やいくつかの代替案を作成する可能性がどの程度あるかを説明します。これはおそらく、非同期の直接的または間接的な原因でした。
双方向同期 pt-table-syncでサポートされています、ただしレプリケーション環境ではなく、2台のサーバー間のみ。スレーブを適用するには、ペアごとに個別に、レプリケーションプロセスからスレーブのリンクを解除する必要があります。これにより、少なくとも書き込みではダウンタイムが発生する可能性があります。これは、他のノードに存在しない行をチェックして実装し、追加するためです。削除や複雑な状況は処理しません。
台のサーバーを自動的に双方向に同期することは技術的に不可能です 3台のサーバーの同じ行に異なるデータがある場合、どちらが正しいですか?このツールを使用して、独自のルールを定義(たとえば、サーバーAのtableXが参照ルール)を使用したり、違いを検出して条件付きで変更を適用(pt- table-syncは、適用される前に変更をログに記録できます)。
Pt-table-syncの通常の手順は、単一方向のレプリケーションで使用することです。これは、通常、マスター「参照」データベースが1つしかないため(ここでも、マルチマスターレプリケーションの問題)、より信頼性の高い同期プロセスを利用できるためです。 。また、複数のノードを同時に同期することもできます。 この種の問題を回避するために、最初のリンクのオプションを調べてくださいそもそも。