標準ソースからレプリカレプリケーションの場合は MySQL 8.0.22 から、Group Replication の場合は MySQL 8.0.23 から使用可能な次の機能を使用すると、レプリケーションチャネルのソースリストに対してレプリケーションソースサーバーを追加および削除できます。 非同期接続フェイルオーバーメカニズムは、レプリカからソースへの既存の接続が失敗した後、適切なリストから新しいソースへの非同期 (ソースからレプリカへの) レプリケーション接続を自動的に確立します。 MySQL 8.0.23 からは、現在接続されているソースの重み付け優先度がグループ内で最も高い場合にも接続が変更されます。 管理対象グループの一部として定義されている Group Replication ソースサーバーの場合、現在接続されているソースがグループから離れているか、その大部分ではなくなった場合、接続は別のグループメンバーにもフェイルオーバーされます。 メカニズムの詳細は、セクション17.4.9「非同期接続フェイルオーバーによるソースの切替え」 を参照してください。
ソースリストは mysql.replication_asynchronous_connection_failover
および mysql.replication_asynchronous_connection_failover_managed
テーブルに格納され、「パフォーマンススキーマ」テーブル replication_asynchronous_connection_failover
で表示できます。
-
asynchronous_connection_failover_add_source()
レプリケーションソースサーバーの構成情報をレプリケーションチャネルのソースリストに追加します。
構文:
asynchronous_connection_failover_add_source(channel, host, port, network_namespace, weight)
引数:
channel
: このレプリケーションソースサーバーがソースリストの一部であるレプリケーションチャネル。host
: このレプリケーションソースサーバーのホスト名。port
: このレプリケーションソースサーバーのポート番号。network_namespace
: このレプリケーションソースサーバーのネットワークネームスペース。 このパラメータは将来の使用のために予約されているため、空の文字列を指定してください。weight
: レプリケーションチャネルソースリスト内のこのレプリケーションソースサーバーの優先度。 優先度は 1 から 100 で、100 が最高、50 がデフォルトです。 非同期接続フェイルオーバーメカニズムがアクティブ化されると、チャネルのソースリストにリストされている代替ソースの中で優先度が最も高いソースが最初の接続試行に選択されます。 この試行が機能しない場合、レプリカはリストされているすべてのソースを優先度の降順で試行し、優先度の最も高いソースから再開します。 複数のソースの優先度が同じ場合、レプリカはそれらをランダムに順序付けします。 MySQL 8.0.23 では、現在接続されているソースがグループ内で最も重み付けされていない場合、非同期接続フェイルオーバーメカニズムがアクティブ化されます。
戻り値:
成功したかどうかなど、操作の結果を含む文字列。
例:
SELECT asynchronous_connection_failover_add_source('channel2', '127.0.0.1', 3310, '', 80); +-------------------------------------------------------------------------------------------------+ | asynchronous_connection_failover_add_source('channel2', '127.0.0.1', 3310, '', 80) | +-------------------------------------------------------------------------------------------------+ | Source configuration details successfully inserted. | +-------------------------------------------------------------------------------------------------+
詳細は、セクション17.4.9「非同期接続フェイルオーバーによるソースの切替え」を参照してください。
-
asynchronous_connection_failover_delete_source()
レプリケーションチャネルのソースリストからレプリケーションソースサーバーの構成情報を削除します。
構文:
asynchronous_connection_failover_delete_source(channel, host, port, network_namespace)
引数:
channel
: このレプリケーションソースサーバーがソースリストの一部であったレプリケーションチャネル。host
: このレプリケーションソースサーバーのホスト名。port
: このレプリケーションソースサーバーのポート番号。network_namespace
: このレプリケーションソースサーバーのネットワークネームスペース。 このパラメータは将来の使用のために予約されているため、空の文字列を指定してください。
戻り値:
成功したかどうかなど、操作の結果を含む文字列。
例:
SELECT asynchronous_connection_failover_delete_source('channel2', '127.0.0.1', 3310, ''); +------------------------------------------------------------------------------------------------+ | asynchronous_connection_failover_delete_source('channel2', '127.0.0.1', 3310, '') | +------------------------------------------------------------------------------------------------+ | Source configuration details successfully deleted. | +------------------------------------------------------------------------------------------------+
詳細は、セクション17.4.9「非同期接続フェイルオーバーによるソースの切替え」を参照してください。
-
asynchronous_connection_failover_add_managed()
管理対象グループ (Group Replication グループメンバー) の一部であるレプリケーションソースサーバーの構成情報を、レプリケーションチャネルのソースリストに追加します。 追加する必要があるグループメンバーは 1 つだけです。 レプリカは、現在のグループメンバーシップから残りを自動的に追加し、メンバーシップの変更に応じてソースリストを更新します。
構文:
asynchronous_connection_failover_add_managed(channel, managed_type, managed_name, host, port, network_namespace, primary_weight, secondary_weight)
引数:
channel
: このレプリケーションソースサーバーがソースリストの一部であるレプリケーションチャネル。managed_type
: 非同期接続フェイルオーバーメカニズムがこのサーバーに提供する必要がある管理対象サービスのタイプ。 現在受け入れられている値はGroupReplication
のみです。managed_name
: サーバーが属する管理対象グループの識別子。GroupReplication
管理サービスの場合、identifier はgroup_replication_group_name
システム変数の値です。host
: このレプリケーションソースサーバーのホスト名。port
: このレプリケーションソースサーバーのポート番号。network_namespace
: このレプリケーションソースサーバーのネットワークネームスペース。 このパラメータは将来の使用のために予約されているため、空の文字列を指定してください。primary_weight
: 管理対象グループのプライマリとして機能している場合の、レプリケーションチャネルソースリスト内のこのレプリケーションソースサーバーの優先度。 重みは 1~100 で、100 が最高です。 プライマリの場合、80 が適切な重みです。 非同期接続フェイルオーバーメカニズムは、現在接続されているソースがグループ内で最も重み付けされていない場合にアクティブになります。 プライマリに高い重みを与え、セカンダリに低い重みを与えるように管理対象グループを設定した場合、プライマリが変更されると、その重みが増加し、レプリカは接続を介して変更されます。secondary_weight
: このレプリケーションソースサーバーが管理対象グループのセカンダリとして機能している場合の、レプリケーションチャネルソースリスト内での優先度。 重みは 1~100 で、100 が最高です。 セカンダリの場合、60 が適切な重みです。
戻り値:
成功したかどうかなど、操作の結果を含む文字列。
例:
SELECT asynchronous_connection_failover_add_managed('channel2', 'GroupReplication', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', '127.0.0.1', 3310, '', 80, 60); +----------------------------------------------------------------------------------------------------------------------------------------------------+ | asynchronous_connection_failover_add_source('channel2', 'GroupReplication', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', '127.0.0.1', 3310, '', 80, 60) | +----------------------------------------------------------------------------------------------------------------------------------------------------+ | Source managed configuration details successfully inserted. | +----------------------------------------------------------------------------------------------------------------------------------------------------+
詳細は、セクション17.4.9「非同期接続フェイルオーバーによるソースの切替え」を参照してください。
-
asynchronous_connection_failover_delete_managed()
レプリケーションチャネルのソースリストから管理対象グループ全体を削除します。 この UDF を使用すると、管理対象グループで定義されたすべてのレプリケーションソースサーバーがチャネルソースリストから削除されます。
構文:
asynchronous_connection_failover_delete_managed(channel, managed_name)
引数:
channel
: このレプリケーションソースサーバーがソースリストの一部であったレプリケーションチャネル。managed_name
: サーバーが属する管理対象グループの識別子。GroupReplication
管理サービスの場合、identifier はgroup_replication_group_name
システム変数の値です。
戻り値:
成功したかどうかなど、操作の結果を含む文字列。
例:
SELECT asynchronous_connection_failover_delete_managed('channel2', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'); +-----------------------------------------------------------------------------------------------------+ | asynchronous_connection_failover_delete_managed('channel2', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa') | +-----------------------------------------------------------------------------------------------------+ | Source managed configuration details successfully deleted. | +-----------------------------------------------------------------------------------------------------+
詳細は、セクション17.4.9「非同期接続フェイルオーバーによるソースの切替え」を参照してください。