複数のMySQLサーバーノードを管理するMySQLファブリックをインストールして構成することができました。マスターノードに直接接続してテストし、データを操作(挿入、削除)したため、非常にうまく機能します。スレーブノードはマスターと同一になります。
これで、ファブリックサーバーがすべてを管理できるようになります。したがって、アプリケーションはマスターノードではなくファブリックに接続する必要があります。このようにして、マスターに障害が発生すると、ファブリックは新しいスレーブを指定します。
Q1:ファブリックサーバー自体が単一障害点になるのを防ぐにはどうすればよいですか?
Q2:ファブリックの実装経験がある人はいますか?私がやろうとしているのはベストプラクティスですか?
よろしく、
MySQLファブリックノード自体は現在冗長ではありませんが、 MySQLファブリックFAQ に記載されています。
現在、MySQLファブリックノードのインスタンスは1つだけです。そのプロセスが失敗した場合は、そのマシンまたは別のマシンで再起動し、状態とルーティング情報を既存の状態ストア(MySQLデータベース)または状態ストアの複製コピーから読み取ります。
MySQLファブリックノードは利用できませんが、ファブリック対応コネクタは、ルーティングデータのキャッシュされたコピーに基づいて、クエリとトランザクションを正しいMySQLサーバーにルーティングし続けます。ただし、プライマリに障害が発生した場合、MySQLファブリックノードがサービスに戻るまで自動フェイルオーバーは発生しないため、できるだけ早くプロセスを回復することが重要です。
ベストプラクティスの観点から、この MySQL Fabricブログの投稿 は、MySQLファブリックを使用するエンドツーエンドの作業例を提供し、次に MySQL Fabricのホワイトペーパー で概要をさらに追加しますおよびコンテキスト情報。
最後に、次のことができます MySQLファブリックウェビナーのリプレイを見て、Q&Aトランスクリプトを読んでください -いくつかの良い技術的な質問と回答があります。
このトピックに関する詳細なディスカッションを探している場合は、専用の MySQLファブリック、シャーディング、HA、ユーティリティ用のフォーラム もあります。
私はこれが少し古いことを知っていますが、MySQLファブリックでいくつかのクラスターをセットアップすることを検討していたところ、同じ質問に遭遇しました。
私が見つけた最良の答えは、PacemakerとCorosyncを使用することです。それを決定した後、私は-幸運なことに-MySQL Utilities Manualに正確にそれを設定する方法に関するセクションがすでにあることを発見しました。
http://dev.mysql.com/doc/mysql-utilities/1.5/en/fabric-pacemaker.html
関連トピックの回答を探しているときにこの質問を見つけました。私がやったことは、MySQLファブリックコントローラーをマルチマスターレプリケーションを備えたサーバーのペアとして設定し、最初のサーバーのmysqlfabricプロセスでハートビートを探して再起動し、最初のサーバーの場合は2番目のサーバーのmysqlfabricを起動することです。再起動を拒否します。
なぜ機能するのか:
機能しないもの:
費用はいくらですか:
DRBDレプリケーションを使用して、アクティブ/パッシブMySQLファブリックを有効にします。データベースファームの管理に2つのMySQLファブリックを使用しています。アクティブファブリックに障害が発生した場合、論理ドライブ内の複製されたデータを使用して、他のファブリックインスタンスに自動的に切り替えます。
このセットアップでは次を使用しています。
[〜#〜]免責事項[〜#〜]:MySQLファブリックは私にとって新しいので、あまり言うことはできません。
それにもかかわらず、 MySQLファブリックのFAQ は次のように述べています:
8.7.8:MySQLファブリックノード自体はフォールトトレラントですか? MySQLファブリックノードが利用できない場合はどうなりますか?
現在、MySQLファブリックノードのインスタンスは1つだけです。そのプロセスが失敗した場合は、そのマシンまたは別のマシンで再起動し、状態とルーティング情報を既存の状態ストア(MySQLデータベース)または状態ストアの複製コピーから読み取ります。
MySQLファブリックノードは利用できませんが、ファブリック対応コネクタは、ルーティングデータのキャッシュされたコピーに基づいて、クエリとトランザクションを正しいMySQLサーバーにルーティングし続けます。ただし、プライマリに障害が発生した場合、MySQLファブリックノードがサービスに戻るまで自動フェイルオーバーは発生しないため、できるだけ早くプロセスを回復することが重要です。
対照的に、MySQL Clusterには複数の管理ノードを許可するテクノロジーがあります。今後のリリースでは、MySQLファブリックの複数インスタンスの使用を探す必要があります。それはオラクルのロードマップ上でなければなりません。
VMWareまたはAmazon EC2を使用する場合は、次のOSインスタンスを作成する必要があります。
次に、VMを複数回複製し、オンデマンドでインスタンスを起動します。
MySQLファブリックファームのマスターに直接接続することはベストプラクティスではありません。どうして? MySQLファブリックが戻ってきて、別のMySQLサーバーを新しいマスターとして選出するとします。接続しているマスターがスレーブになると、MySQLファブリックによってマスターが読み取り専用になる可能性があります。これは、MySQLファブリックを混乱させる可能性もあります。これは、マスターの独立した使用法を認識していない場合があるためです。本質的に、あなたはファブリックをリッピングし、すべて一緒に縫う必要があります。
MySQLファブリックを1週間試してみて、すぐに何かを学びました。ファブリックノードが停止する断続的な時間があります。 Fabricサービスを終了して、再開するだけです。私はすでにドキュメンテーションから言及しましたが、実際にそれを見ました。 ファブリック対応コネクタは実際に機能しますが、ファブリックノードが長く続くことを許可しないでください。