20

現在、私は 2 台の Linux サーバーで MySQL を実行しています。1 台はラックのすぐ隣の 10 Mbit/s アップロード パイプ (メイン サーバー) の下にあり、もう 1 台は数マイル離れた 3 Mbit/s アップロード パイプ (ミラー) の下にあります。

両方のサーバーでデータを継続的にレプリケートできるようにしたいのですが、いくつかの障害に遭遇しました。それらの 1 つは、MySQL マスター/スレーブ構成の下で、時々、いくつかのステートメントがドロップ (!) します。ミラー URL にログオンしている一部のユーザーは、メイン サーバーにあることがわかっているデータを表示できません。また、その逆も同様です。これが意味のあるデータ ブロックで毎月 1 回発生するとしましょう。そのため、「パケットの損失」の問題であると想定できます (つまり、神は知っていますが、補償します)。

もう 1 つの最も重要な (そして厄介な) 繰り返し発生する問題は、何らかの理由で一方の側でメジャー アップロードまたは更新 (または再起動) を実行し、リンクを切断する必要がある場合、LOAD DATA FROM MASTER が機能せず、私が持っていることです。一方の端で手動でダンプし、もう一方の端でアップロードするのは、最近では 0.5 TB 相当のデータを移動するかなりの作業です。

これのためのソフトウェアはありますか?MySQL(「企業」)がこれを非常に高価なサービス(完全なデータベース複製)として提供していることを私は知っています。そこにいる人々は何をしますか?この構造では、1 つのサーバーが稼働していない場合に、メインの URL が他のサーバーに解決される自動フェールオーバーを実行します。

4

3 に答える 3

2

Percona では、マスターとサーバー間の不一致を検出し、最小限の変更を再適用することで同期を取り戻すための無料ツールを提供しています。

于 2011-09-21T00:09:04.323 に答える
0

GoldenGateは非常に優れたソリューションですが、おそらく MySQL レプリケーターと同じくらい高価です。

基本的にジャーナルを追跡し、コミットされた内容に基づいて変更を適用します。これらは、双方向のレプリケーション (難しい作業) と、異種システム間のレプリケーションをサポートしています。

ジャーナル ファイルを処理することで機能するため、ソース マシンのパフォーマンスに影響を与えることなく、大規模な分散レプリケーションを実行できます。

于 2008-08-06T18:30:45.950 に答える
0

削除されたステートメントは見たことがありませんが、ネットワークの問題によってリレー ログが破損する可能性があるというバグがあります。この修正なしで mysql を実行しないでください。

5.0.56、5.1.24、および 6.0.5 の変更ログに次のように記載されています。

   Network timeouts between the master and the slave could result
   in corruption of the relay log.

http://bugs.mysql.com/bug.php?id=26489

于 2010-02-20T22:26:39.643 に答える