第 21 章 InnoDB クラスタ

この章では、MySQL テクノロジを組み合せて、MySQL の完全な統合高可用性ソリューションをデプロイおよび管理できる MySQL InnoDB クラスタ について説明します。 このコンテンツは、InnoDB クラスタ の概要です。完全なドキュメントは、MySQL InnoDB クラスタ を参照してください。

重要

InnoDB クラスタ では、MySQL NDB Cluster はサポートされていません。 MySQL NDB Cluster の詳細は、第23章「MySQL NDB Cluster 8.0 および セクション23.1.6「MySQL Server NDB Cluster と比較した InnoDB の使用」 を参照してください。

InnoDB クラスタ は、少なくとも 3 つの MySQL Server インスタンスで構成され、高可用性およびスケーリング機能を提供します。InnoDB クラスタ では、次の MySQL テクノロジが使用されます:

  • MySQL Shell は、MySQL の高度なクライアントおよびコードエディタです。

  • MySQL Server、および Group Replication は、MySQL インスタンスのセットが高可用性を提供できるようにします。InnoDB クラスタ には、グループレプリケーションを操作するための、プログラム的で使いやすい代替方法が用意されています。

  • MySQL Router:アプリケーションと InnoDB クラスタ 間の透過的なルーティングを提供する軽量ミドルウェアです。

次の図は、これらのテクノロジの連携の概要を示しています:

図 21.1 InnoDB クラスタ の概要

これらの MySQL サーバーは、高可用性クラスタとしてグループ化されています。 一方のサーバーは読取り/書込みプライマリインスタンスで、もう一方のサーバーは読取り専用セカンダリインスタンスです。 グループレプリケーションは、プライマリインスタンスからセカンダリインスタンスにデータをレプリケートするために使用されます。 MySQL Router は、クライアントアプリケーション (この例では MySQL コネクタ) をプライマリインスタンスに接続します。

MySQL Group Replication 上に構築され、自動メンバーシップ管理、フォルトトレランス、自動フェイルオーバーなどの機能を提供します。 InnoDB クラスタ は通常、単一プライマリモードで実行され、単一のプライマリインスタンス (読取り/書込み) と複数のセカンダリインスタンス (読取り専用) があります。 上級ユーザーは、すべてのインスタンスがプライマリである multi-primary モードを利用することもできます。 InnoDB クラスタ がオンラインのときにクラスタのトポロジを変更して、可用性を最大限に高めることもできます。

MySQL Shell の一部として提供されている AdminAPI を使用して、InnoDB クラスタ を操作します。AdminAPI は JavaScript および Python で使用可能で、MySQL のスクリプト作成および自動化に適しており、高可用性およびスケーラビリティを実現します。 MySQL ShellAdminAPI を使用すると、多数のインスタンスを手動で構成する必要がなくなります。 かわりに、AdminAPI は MySQL インスタンスのセットに有効な最新のインタフェースを提供し、単一の中央ツールからデプロイメントをプロビジョニング、管理および監視できます。

InnoDB クラスタ を開始するには、MySQL Shell のダウンロードおよびインストールが必要です。 一部のホストには、MySQL Server インスタンスがインストールされていることがが必要です。また、install MySQL Router も必要です。

InnoDB クラスタ では MySQL Clone がサポートされているため、インスタンスを簡単にプロビジョニングできます。 以前は、MySQL インスタンスのセットを結合する前に新しいインスタンスをプロビジョニングするには、トランザクションを結合インスタンスに手動で転送する必要がありました。 これには、ファイルコピーの作成、手動でのコピーなどが含まれる場合があります。 InnoDB クラスタ を使用すると、単にクラスタにインスタンスを追加し、自動的にプロビジョニングされます。

同様に、InnoDB クラスタ は MySQL Router と緊密に統合されており、AdminAPI を使用してそれらと一緒に作業できます。MySQL Router は、bootstrapping と呼ばれるプロセスで InnoDB クラスタ に基づいて自身を自動的に構成できるため、ルーティングを手動で構成する必要はありません。MySQL Router はクライアントアプリケーションを InnoDB クラスタ に透過的に接続し、クライアント接続のルーティングおよびロードバランシングを提供します。 この統合により、AdminAPI を使用して、InnoDB クラスタ に対してブートストラップされた MySQL Router の一部の側面を管理することもできます。InnoDB クラスタ のステータス情報には、クラスタに対してブートストラップされた MySQL Routers の詳細が含まれます。 操作を使用すると、クラスタレベルで create MySQL Router users を実行したり、クラスタに対してブートストラップされた MySQL Routers を使用したりできます。

これらのテクノロジの詳細は、説明にリンクされているユーザードキュメントを参照してください。 このユーザードキュメントに加えて、MySQL Shell JavaScript API リファレンスまたは MySQL Shell Python API リファレンスのすべての AdminAPI メソッドの開発者ドキュメントもあり、「コネクタおよび API」から入手できます。


関連キーワード:  クラスタ, InnoDB, インスタンス, リファレンス, 提供, Router, Shell, AdminAPI, マニュアル, 管理