mysql:15119
From: Seiichirou Hiraoka <Seiichirou Hiraoka <flathill@xxxxxxxxxx>>
Date: Thu, 24 Dec 2009 18:44:04 +0900 (JST)
Subject: [mysql 15119] MySQL の冗長化方針について
平岡と申します。 現在 MySQL を 2 台のサーバに導入して、運用系と待機系として 動作させて、運用系に障害が発生した際や停止が必要な場合は IP アドレスを待機系と付け替えることで運用しています。 Server1:MySQL (運用系) Server2:MySQL (待機系) ^ | 参照・更新 このシステムを今後以下のように改善したいと思います。 - 負荷分散 応答速度向上のため、参照要求を 2 台のサーバに分散したい。 更新要求は通常片方のサーバのみで処理して良いが、サーバが 停止した際は別のサーバで代行したい。 - 同期 2 台のサーバをレプリケーションにより自動的に同期したい。 - 冗長化 運用系から待機系に切り替える必要が無いようにしたい。 - 障害・停止時対応 障害や停止が発生した際に、出来る限り容易に通常状態に 復旧させたい。 - アプリケーションの対応 上記の要件をアプリケーション側の対応無しで実現したい。 これを実現するために、以下の方法を検討しております。 o シングルマスタ、シングルスレーブ (マスタの更新内容をスレーブにレプリケーション) Server1:MySQL (マスタ) -- 更新 --> Server2:MySQL (スレーブ) ^ ^ | | 参照・更新 参照 - スレーブ側への更新要求は失敗するため、マスタ側へは更新・ 参照、スレーブ側へは参照のみを (アプリケーション側が意識 すること無く) 振り分ける方法はありますでしょうか。 MySQL Proxy を利用するのが適当でしょうか。 - マスタを停止すると、更新が行えなくなると思いますが、 スレーブで (一時的に) 代行する事は可能でしょうか。 マスタの復帰後は、スレーブに行った更新をマスタにも簡単 に反映する、といった都合の良い事を考えています。 o マルチマスタ (相互に更新内容をレプリケーション) Server1:MySQL (マスタ) <-- 更新 --> Server2:MySQL (マスタ) ^ ^ | | 参照・更新 参照・更新 - 2 台のマスタに対して、同時に同じデータの更新を行った場合、 整合性が取れなくなるといった危険性はありますでしょうか。 - 片側が障害や作業で停止した際に、再び起動する際には何らか の手間が必要でしょうか。 - アプリケーションから 2 台のサーバへの接続要求を振り分ける 方法として、DNS のラウンドロビンで問題はあるでしょうか。 また、それ以外に良い方法はありますでしょうか。 尚、規模的には MySQL Cluster を使う程ではないと考えており ます。また、マルチマスタは障害発生時のリカバリが大変である と考えておりますので、出来ればシングルマスタで運用したいと 思います。 もしくは、上記以外の方法があれば御教示頂けますと幸いです。 以上、よろしくお願い致します。 -- 平岡 征一朗
-> 15119 2009-12-24 18:44 [Seiichirou Hiraoka <] MySQL の冗長化方針について 15120 2009-12-24 19:19 ┣["Tadayuki Abraham HA] MySQL のデータの所定のデータに対して、住基カード内蔵のiso7816スマートカードICで電子署名を付与できますか? 15127 2010-01-05 10:17 ┗[Seiichirou Hiraoka <] 15141 2010-01-11 06:56 ┗[konbuizm <konbuizm@x] 15142 2010-01-12 11:12 ┗[Seiichirou Hiraoka <]