[前][次][番号順一覧][スレッド一覧]

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 <]