現在、私は 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 が他のサーバーに解決される自動フェールオーバーを実行します。