Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.2Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  高可用性と拡張性

第 16 章 高可用性と拡張性

データは、今日の Web、モバイル、ソーシャル、エンタープライズ、およびクラウドアプリケーションの通貨です。データが常に利用できることを確保することは、いずれの組織でも一番の優先事項です。分単位のダウンタイムでも、収益と評価が大きく損なわれる可能性があります。

高可用性 (HA) を実現するための万能な方法はありません。固有のアプリケーション属性、ビジネス要件、運用性能、およびレガシーインフラストラクチャーはすべて、HA テクノロジーの選択に影響を与える可能性があります。そして、HA を実現する上でテクノロジーは 1 つの要素でしかありません。テクノロジー自身と同じくらい人とプロセスが重要です。

MySQL は可用性と拡張性を求める多くのアプリケーションに配備されています。可用性とは、ホストでの障害 (MySQL、オペレーティングシステム、ハードウェア、保守作業での障害を含む、対処しないとダウンタイムが発生する可能性がある) に対処し、必要に応じてリカバリさせる能力のことです。拡張性とは、データベース、およびアプリケーションクエリーの負荷の両方を複数の MySQL サーバーに分散させる能力のことです。

アプリケーションごとに運用および可用性要件が異なるため、MySQL は認定およびサポートされるソリューションを幅広く提供し、サービスレベル要件を満たす適切なレベルの高可用性 (HA) と拡張性を実現しています。このようなソリューションは、レプリケーションから、仮想化、地理的冗長性、99.999% の稼働時間を実現するマルチデータセンターソリューションまで用意しています。

アプリケーションのために最適な高可用性ソリューションを選択することは、主に次のことに依存します。

  • 必要な可用性レベル。

  • 配備されるアプリケーションのタイプ。

  • 独自の環境で受け入れられるベストプラクティス。

MySQL がサポートするプライマリソリューションは次のとおりです。

追加オプションをサードパーティーソリューションで利用できます。

高可用性データベースサービスの実現に使用される各アーキテクチャーは、それが提供する稼働時間のレベルによって区別されます。これらのアーキテクチャーは、次の 3 つの主なカテゴリにグループ分けできます。

  • データレプリケーション。

  • クラスター化および仮想化システム。

  • シェアードナッシング、地理的にレプリケートされたクラスタ。

次の図で示すように、これらの各アーキテクチャーは段階的に稼働時間レベルが高くなるため、それらによってコストと複雑さのレベルが潜在的に大きくなる可能性があり、これらのバランスを取る必要があります。単に高可用性アーキテクチャーを配備するだけでは、実際に HA が実現されることの保証にはなりません。実際、シェアードナッシングクラスタの実装と保守が不十分であると、単純なデータレプリケーションソリューションよりも、可用性レベルがあっさりと低下する可能性があります。

図 16.1 トレードオフ: コストと複雑さ vs 可用性

稼働時間パーセントの “9” の数が増えていくと、基本レプリケーションから、クラスタ化および仮想化された構成、地理的領域をまたがってレプリケートされたシェアードナッシングクラスタに進むにつれてコストと複雑さも増えていきます。組織の種類が異なると、“9” の数が異なる可用性が必要になります (インターネットサービスプロバイダや主力企業には 3 つの 9、オンラインサービスには 4 つの 9、電子商取引、通信、および軍事アプリケーションには 5 つの 9)。

次の表では、さまざまな MySQL ソリューションの HA および拡張性機能を比較しています。

表 16.1 MySQL HA ソリューションの機能比較

要件 MySQL レプリケーション DRBD Oracle VM テンプレート MySQL Cluster
可用性        
プラットフォームサポート MySQL Server がサポートするすべて (http://www.mysql.com/support/supportedplatforms/database.html) Linux Oracle Linux MySQL Cluster がサポートするすべて (http://www.mysql.com/support/supportedplatforms/cluster.html)
IP フェイルオーバーの自動化 いいえ はい はい コネクタおよび構成に依存
データベースフェイルオーバーの自動化 いいえ はい はい はい
データ再同期の自動化 いいえ はい N/A - 共有ストレージ はい
代表的なフェイルオーバー時間 ユーザー/スクリプトに依存 構成に依存、60 秒以上 構成に依存、60 秒以上 1 秒以下
同期レプリケーション いいえ、非同期および準同期 はい N/A - 共有ストレージ はい
共有ストレージ いいえ、分散型 いいえ、分散型 はい いいえ、分散型
地理的冗長性のサポート はい はい、MySQL レプリケーション はい、MySQL レプリケーション はい、MySQL レプリケーション
更新スキーマオンライン いいえ いいえ いいえ はい
拡張性        
ノード数 1 つのマスター、複数のスレーブ 1 つのアクティブ (プライマリ) ノード、1 つのパッシブ (セカンダリ) ノード 1 つのアクティブ (プライマリ) ノード、1 つのパッシブ (セカンダリ) ノード 255
組み込みロードバランス 読み取り、MySQL レプリケーション経由 読み取り、MySQL レプリケーション経由 読み取り、MySQL レプリケーション経由およびフェイルオーバー中 はい、読み取りおよび書き込み
読み取りの多いワークロードをサポート対応 はい はい はい はい
書き込みの多いワークロードをサポート対応 はい、アプリケーションレベルシャーディングで はい、アプリケーションレベルシャーディング - 複数のアクティブ/パッシブペアで はい、アプリケーションレベルシャーディング - 複数のアクティブ/パッシブペアで はい、自動シャーディングで
スケールオンライン (ノードの追加、再パーティション化など) いいえ いいえ いいえ はい


User Comments
Sign Up Login You must be logged in to post a comment.