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


13.4.2.11 ソースリストを構成する関数

標準ソースからレプリカレプリケーションの場合は 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「非同期接続フェイルオーバーによるソースの切替え」を参照してください。


関連キーワード:  ステートメント, ソース, CREATE, TABLE, グループ, 接続, asynchronous, connection, failover, リスト