質問: 現在PHP+MySQLで運用中のECサイトがあります。サーバ構成は2台でWEBサーバとDBサーバを分けて使っています。 最近MySQLの負荷が高くなってきて度々接続エラーになることがあります。MySQLサーバがもしダウンした場合に、もう一台のMySQLですぐにスイッチしてデュアルで運用できるようなイメージを想定していますが、そういったことを実現するために何が必要で、度の手順で行えばいいのか教えてください。 ちなみに、現状のWEBサーバとDBサーバを移動することはできません。(IPアドレスがいろいろな関係各所に登録されているため) あくまで、現状のWEBサーバとDBサーバの構成に対して補強方向でアドバイスお願いします。
回答: データがたとえ1行分でも消えたり たとえ1行分でも情報が古かったりしては困るのですから、 常に平行してデータが書き込まれるような仕組みが必要になります。 ↓ 既に手一杯な状態の現状に対して、そのような仕組みを追加すると・・・ さらなる負担増になりますので、新しいサーバを用意するのが良いでしょう。 ↓ (1)MySQL Clusterを搭載したサーバを用意して既存のDBサーバと入れ替えます。 (2)既存のDBサーバには新しいIPアドレスを与えて(1)のノードとして接続します。 (3)もう一台サーバを用意して(2)のミラーとなるように(1)を設定します。 最小構成としては以上のようになります。 Clusterについては下記などが判りやすいかと思いますが 一言で無理やり説明すると「複数台をまるで1台のように扱う」という技術です。 [MySQLウォッチ]第28回 MySQL 5.1期待のクラスタリング機能:ITpro ところで、 ・応答なしとなる原因は本当にサーバー負荷なのでしょうか? ・回線が細くて込み合っているという事はないのでしょうか? ・プログラムの構造見直しは行われているのでしょうか? ・メモリ増設、HDDを高速なものに取り替えたり データ保全も考えてRAIDにしたりなどといったハードウェア強化は? などなど・・・IPは変えられないということですが それも含めて全体的な見直しに迫られているように感じられますので hatenaで軽く相談するのではなく MySQLの開発を行っている業者を探されたほうがよろしいかと思います。 (どこまでやるかで、目ん玉飛び出るような値段になる可能性もありますので まずは複数社で合い見積しましょう)