MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  グループレプリケーションのローカルでのデプロイ

18.2.2 グループレプリケーションのローカルでのデプロイ

グループレプリケーションをデプロイする最も一般的な方法は、複数のサーバーインスタンスを使用して高可用性を提供することです。 テスト目的などで、グループレプリケーションをローカルにデプロイすることもできます。 このセクションでは、グループレプリケーションをローカルにデプロイする方法について説明します。

重要

グループレプリケーションは、高可用性が保証されるため、通常は複数のホストにデプロイされます。 すべての MySQL サーバーインスタンスが同じ単一ホスト上で実行されているため、このセクションの手順は本番デプロイメントには適していません。 このホストに障害が発生した場合、グループ全体が失敗します。 したがって、この情報はテスト目的で使用する必要があり、本番環境では使用しないでください。

このセクションでは、1 つの物理マシン上に 3 つの MySQL Server インスタンスを持つレプリケーショングループを作成する方法について説明します。 これは、3 つのデータディレクトリ (サーバーインスタンスごとに 1 つ) が必要であり、各インスタンスを個別に構成する必要があることを意味します。 これは - この手順では、MySQL Server がダウンロードおよび解凍されていることを前提としています - mysql-8.0 という名前のディレクトリに格納します。 各 MySQL サーバーインスタンスには、特定のデータディレクトリが必要です。 data という名前のディレクトリを作成し、そのディレクトリに各サーバーインスタンス (s1、s2 および s3 など) のサブディレクトリを作成して、それぞれを初期化します。

mysql-8.0/bin/mysqld --initialize-insecure --basedir=$PWD/mysql-8.0 --datadir=$PWD/data/s1
mysql-8.0/bin/mysqld --initialize-insecure --basedir=$PWD/mysql-8.0 --datadir=$PWD/data/s2
mysql-8.0/bin/mysqld --initialize-insecure --basedir=$PWD/mysql-8.0 --datadir=$PWD/data/s3

data/s1, data/s2, data/s3 内には初期化されたデータディレクトリがあり、mysql システムデータベースや関連テーブルなどが含まれています。 初期化手順の詳細は、セクション2.10.1「データディレクトリの初期化」 を参照してください。

警告

本番環境では -initialize-insecure を使用しないでください。チュートリアルを簡略化するためにここでのみ使用します。 セキュリティ設定の詳細は、セクション18.5「グループレプリケーションセキュリティ」 を参照してください。

ローカルグループレプリケーションメンバーの構成

セクション18.2.1.2「グループレプリケーション用のインスタンスの構成」 をフォローしている場合、前のセクションで追加したデータディレクトリの構成を追加する必要があります。 例:

[mysqld]

# server configuration
datadir=<full_path_to_data>/data/s1
basedir=<full_path_to_bin>/mysql-8.0/

port=24801
socket=<full_path_to_sock_dir>/s1.sock

これらの設定では、以前に作成したデータディレクトリと、サーバーが受信接続のリスニングを開始するポートを使用するように MySQL サーバーを構成します。

注記

このチュートリアルでは、3 つのサーバーインスタンスが同じホスト名を使用するため、24801 のデフォルト以外のポートが使用されます。 3 つの異なるマシンがあるセットアップでは、これは必要ありません。

グループレプリケーションでは、メンバー間のネットワーク接続が必要です。つまり、各メンバーは他のすべてのメンバーのネットワークアドレスを解決できる必要があります。 たとえば、このチュートリアルでは、3 つのインスタンスすべてが 1 つのマシンで実行されるため、メンバーが相互に接続できるように、report_host=127.0.0.1 などのオプションファイルに行を追加できます。

その後、各メンバーは group_replication_local_address 上の他のメンバーに接続できる必要があります。 たとえば、メンバー s1 のオプションファイルで、次のように追加します:

group_replication_local_address= "127.0.0.1:24901"
group_replication_group_seeds= "127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903"

これにより、シードメンバーとの内部グループ通信にポート 24901 を使用するように s1 が構成されます。 グループに追加するサーバーインスタンスごとに、メンバーのオプションファイルでこれらの変更を行います。 メンバーごとに一意のアドレスを指定する必要があるため、group_replication_local_address のインスタンスごとに一意のポートを使用します。 通常、すべてのメンバーを、グループに参加しており、グループで処理されたトランザクションを取得していないメンバーのシードとして機能させる必要があります。 この場合は、前述のように、すべてのポートを group_replication_group_seeds に追加します。

セクション18.2.1「単一プライマリモードでのグループレプリケーションのデプロイ」 の残りのステップは、この方法でローカルにデプロイしたグループにも同様に適用されます。


関連キーワード:  グループ, インスタンス, メンバー, サーバー, リカバリ, 構成, 分散, group, ディレクトリ, 接続