このページは機械翻訳したものです。
このセクションでは、Group Replication プラグインに固有のシステム変数を一覧表示します。 すべての構成オプションには、接頭辞として "group_replication " が付きます。
Group Replication のほとんどのシステム変数は動的と記述され、その値はサーバーの実行中に変更できます。 ただし、ほとんどの場合、変更が有効になるのは、STOP GROUP_REPLICATION ステートメントの後に START GROUP_REPLICATION ステートメントを使用してグループメンバーでグループレプリケーションを停止して再起動した後のみです。 Group Replication を停止および再起動せずに、次のシステム変数への変更が有効になります:
group_replication_advertise_recovery_endpointsgroup_replication_autorejoin_triesgroup_replication_consistencygroup_replication_exit_state_actiongroup_replication_flow_control_applier_thresholdgroup_replication_flow_control_certifier_thresholdgroup_replication_flow_control_hold_percentgroup_replication_flow_control_max_commit_quotagroup_replication_flow_control_member_quota_percentgroup_replication_flow_control_min_quotagroup_replication_flow_control_min_recovery_quotagroup_replication_flow_control_modegroup_replication_flow_control_periodgroup_replication_flow_control_release_percentgroup_replication_force_membersgroup_replication_member_expel_timeoutgroup_replication_member_weightgroup_replication_transaction_size_limitgroup_replication_unreachable_majority_timeout
グループレプリケーションのほとんどのシステム変数は、グループメンバーごとに異なる値を持つことができます。 次のシステム変数では、トランザクションの不要なロールバック、メッセージ配信の失敗またはメッセージリカバリの失敗を回避するために、グループのすべてのメンバーに同じ値を設定することをお薦めします:
group_replication_auto_increment_incrementgroup_replication_communication_max_message_sizegroup_replication_compression_thresholdgroup_replication_message_cache_sizegroup_replication_transaction_size_limit
グループレプリケーション固有のシステム変数や一般的なシステム変数など、グループレプリケーショングループメンバーの一部のシステム変数は、グループ全体の構成設定です。 これらのシステム変数は、すべてのグループメンバーで同じ値を持つ必要があり、グループレプリケーションの実行中は変更できません。また、値の変更を有効にするには、グループの完全な再起動 (group_replication_bootstrap_group=ON を使用したサーバーによるブートストラップ) が必要です。 これらの条件は、次のシステム変数に適用されます:
group_replication_single_primary_modegroup_replication_enforce_update_everywhere_checksgroup_replication_gtid_assignment_block_sizedefault_table_encryptionlower_case_table_namestransaction_write_set_extraction
MySQL 8.0.16 から、group_replication_switch_to_single_primary_mode() および group_replication_switch_to_multi_primary_mode() UDF を使用して、グループの実行中に group_replication_single_primary_mode および group_replication_enforce_update_everywhere_checks の値を変更できます。 詳細は、セクション18.4.1.2「グループモードの変更」を参照してください。
グループレプリケーションの多くのシステム変数は、コマンドライン引数としてサーバーに渡された場合、サーバーの起動時に完全には検証されません。 これらのシステム変数には、
group_replication_group_name,group_replication_single_primary_mode,group_replication_force_members、SSL 変数およびフロー制御システム変数が含まれます。 これらは、サーバーの起動後にのみ完全に検証されます。グループメンバーの IP アドレスまたはホスト名を指定するグループレプリケーションのシステム変数は、
START GROUP_REPLICATIONステートメントが発行されるまで検証されません。 グループレプリケーショングループ通信システム (GCS) は、その時点まで値を検証できません。
Group Replication プラグインに固有のシステム変数は次のとおりです:
-
group_replication_advertise_recovery_endpointsコマンド行形式 --group-replication-advertise-recovery-endpoints=value導入 8.0.21 システム変数 group_replication_advertise_recovery_endpointsスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 DEFAULTこのシステム変数の値は、Group Replication の実行中に変更できます。 変更はすぐにメンバーに反映されます。 ただし、システム変数の以前の値をすでに受け取っている結合メンバーは、その値を引き続き使用します。 値の変更後に結合されたメンバーのみが新しい値を受け取ります。
group_replication_advertise_recovery_endpointsは、結合メンバーが分散リカバリのために状態転送のために既存のメンバーへの接続を確立する方法を指定します。 この接続は、リモートクローニング操作とドナーのバイナリログからの状態転送の両方に使用されます。デフォルト設定の
DEFAULTの値は、参加メンバーが MySQL Serverhostnameおよびportシステム変数で指定されている既存のメンバー標準 SQL クライアント接続を使用することを意味します。report_portシステム変数で代替ポート番号が指定されている場合は、かわりにそのポート番号が使用されます。 「パフォーマンススキーマ」テーブルreplication_group_membersでは、この接続アドレスとポート番号がMEMBER_HOSTおよびMEMBER_PORTフィールドに表示されます。 これは、MySQL 8.0.20 までのリリースでのグループメンバーの動作です。DEFAULTのかわりに、既存のメンバーが使用する参加メンバーに通知する分散リカバリエンドポイントを指定できます。 分散リカバリエンドポイントを提供することで、管理者は、グループメンバーへの通常の MySQL クライアント接続とは別に分散リカバリトラフィックを制御できます。 メンバーの結合では、リストで指定された順序で各エンドポイントが順に試行されます。分散リカバリエンドポイントを IP アドレスとポート番号のカンマ区切りリストとして指定します。次に例を示します:
group_replication_advertise_recovery_endpoints= "127.0.0.1:3306,127.0.0.1:4567,[::1]:3306,localhost:3306"IPv4 アドレスと IPv6 アドレスおよびホスト名は、任意の組合せで使用できます。 IPv6 アドレスは大カッコで囲んで指定する必要があります。 ホスト名はローカル IP アドレスに解決される必要があります。 ワイルドカードアドレス書式は使用できず、空のリストは指定できません。 標準 SQL クライアント接続は、分散リカバリエンドポイントのリストに自動的には含まれないことに注意してください。 エンドポイントとして使用する場合は、リストに明示的に含める必要があります。
分散リカバリエンドポイントとして IP アドレスとポートを選択する方法、およびメンバーを結合する方法の詳細は、セクション18.4.3.1.1「分散リカバリエンドポイントのアドレスの選択」 を参照してください。 要件のサマリーは次のとおりです:
IP アドレスは MySQL Server 用に構成する必要はありませんが、サーバーに割り当てる必要があります。
ポートは、
port、report_portまたはadmin_portシステム変数を使用して MySQL Server 用に構成する必要があります。admin_portを使用する場合は、分散リカバリのレプリケーションユーザーに適切な権限が必要です。group_replication_ip_allowlistまたはgroup_replication_ip_whitelistシステム変数で指定された Group Replication 許可リストに IP アドレスを追加する必要はありません。接続の SSL 要件は、
group_replication_recovery_ssl_*オプションで指定されたとおりです。
-
group_replication_allow_local_lower_version_joinコマンド行形式 --group-replication-allow-local-lower-version-join[={OFF|ON}]システム変数 group_replication_allow_local_lower_version_joinスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFこのシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_allow_local_lower_version_joinでは、現在のサーバーがグループより低いバージョンの MySQL Server を実行している場合でも、グループに参加できます。 デフォルト設定のOFFでは、既存のグループメンバーより低いバージョンを実行しているサーバーはレプリケーショングループに参加できません。 この標準ポリシーは、グループのすべてのメンバーがメッセージを交換し、トランザクションを適用できることを確認します。 MySQL 8.0.17 以上を実行しているメンバーは、互換性をチェックするときにリリースのパッチバージョンを考慮することに注意してください。 MySQL 8.0.16 以下または MySQL 5.7 を実行しているメンバーには、メジャーバージョンのみが考慮されます。次のシナリオでのみ、
group_replication_allow_local_lower_version_joinをONに設定します:グループのフォルトトレランスを改善するには、緊急時にサーバーをグループに追加する必要があり、古いバージョンのみを使用できます。
グループ全体を停止して再度ブートストラップせずに、1 つ以上のレプリケーショングループメンバーのアップグレードをロールバックする場合。
警告このオプションを
ONに設定しても、新しいメンバーはグループと互換性がなく、既存のメンバーによる互換性のない動作から保護されずにグループに参加できます。 新しいメンバーが正しく動作するようにするには、次の予防措置の both を使用します:下位バージョンを実行しているサーバーがグループに参加する前に、そのサーバーでのすべての書込みを停止します。
下位バージョンを実行しているサーバーがグループに参加した時点から、グループ内の他のサーバーに対するすべての書込みを停止します。
これらの予防措置がないと、低いバージョンを実行しているサーバーで問題が発生し、エラーで終了する可能性があります。
-
group_replication_auto_increment_incrementコマンド行形式 --group-replication-auto-increment-increment=#システム変数 group_replication_auto_increment_incrementスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 7最小値 1最大値 65535このシステム変数は、すべてのグループメンバーで同じ値を持つ必要があります。 グループレプリケーションの実行中は、このシステム変数の値を変更できません。 各グループメンバーでグループレプリケーションを停止し、システム変数の値を変更してから、グループレプリケーションを再起動する必要があります。 このプロセス中、システム変数の値はグループメンバー間で異なってもかまいませんが、グループメンバーの一部のトランザクションはロールバックされる可能性があります。
group_replication_auto_increment_incrementは、このサーバーインスタンスで実行されるトランザクションの自動増分カラムの連続する値の間隔を決定します。 間隔を追加すると、グループメンバーに対する書込みに対して重複する自動増分値が選択されないため、トランザクションがロールバックされます。 デフォルト値の 7 は、使用可能な値の数とレプリケーショングループの最大許容サイズ (9 メンバー) のバランスを表します。 グループのメンバー数が多いか少ない場合は、グループレプリケーションが開始される前に、グループメンバーの予想数と一致するようにこのシステム変数を設定できます。グループレプリケーションがサーバーインスタンスで開始されると、サーバーシステム変数
auto_increment_incrementの値がこの値に変更され、サーバーシステム変数auto_increment_offsetの値がサーバー ID に変更されます。 グループレプリケーションが停止すると、変更は元に戻されます。 これらの変更は、auto_increment_incrementおよびauto_increment_offsetのそれぞれのデフォルト値が 1 の場合にのみ行われ、元に戻されます。 これらの値がすでにデフォルトから変更されている場合、Group Replication はそれらを変更しません。 MySQL 8.0 からは、グループレプリケーションが単一プライマリモードで、サーバー書込みが 1 つのみの場合も、システム変数は変更されません。 -
group_replication_autorejoin_triesコマンド行形式 --group-replication-autorejoin-tries=#導入 8.0.16 システム変数 group_replication_autorejoin_triesスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 (≥ 8.0.21) 3デフォルト値 (≤ 8.0.20) 0最小値 0最大値 2016このシステム変数の値は、Group Replication の実行中に変更でき、変更はただちに有効になります。 動作が必要であることを意味する問題が発生すると、システム変数 current 値が読み取られます。
group_replication_autorejoin_triesでは、メンバーが明示された場合、またはgroup_replication_unreachable_majority_timeout設定に到達する前にグループの大部分にアクセスできない場合に、メンバーが自動的にグループに再参加しようとする試行回数を指定します。 メンバー削除または到達不能な大部分のタイムアウトに達すると、(現在のプラグインオプション値を使用して) 再結合を試みてから、指定された試行回数までさらに自動再結合を試みます。 自動再結合の試行に失敗すると、メンバーは次の試行の 5 分前に待機します。 指定された試行回数がメンバーの再参加または停止なしで使い果たされた場合、メンバーはgroup_replication_exit_state_actionシステム変数で指定されたアクションに進みます。MySQL 8.0.20 までは、デフォルト設定は 0 です。つまり、メンバーは自動的に再結合を試みません。 MySQL 8.0.21 からは、デフォルト設定は 3 です。これは、メンバーがグループへの再参加を自動的に 3 回試行し、それぞれの間に 5 分間試行することを意味します。 最大 2016 回の試行を指定できます。
自動再結合の試行中および試行の間、メンバーはスーパー読取り専用モードのままで書込みを受け入れませんが、時間の経過とともに失効した読取りの可能性を高くして、メンバーに対して読取りを実行できます。 一定期間失効した読取りの可能性を許容できない場合は、
group_replication_autorejoin_triesを 0 に設定します。 自動再結合機能、およびこのオプションの値を選択する際の考慮事項の詳細は、セクション18.6.6.3「Auto-Rejoin」 を参照してください。 -
group_replication_bootstrap_groupコマンド行形式 --group-replication-bootstrap-group[={OFF|ON}]システム変数 group_replication_bootstrap_groupスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFgroup_replication_bootstrap_groupは、グループをブートストラップするようにこのサーバーを構成します。 このシステム変数は、グループを初めて起動するとき、またはグループ全体を再起動するときに、あるサーバーおよびのみで設定する必要があります。 グループがブートストラップされたら、このオプションをOFFに設定します。 動的にも構成ファイルでも、OFFに設定する必要があります。 グループの実行中に 2 つのサーバーを起動するか、このオプションを設定して 1 つのサーバーを再起動すると、人工的なスプリットブレーン状況が発生し、同じ名前の独立した 2 つのグループがブートストラップされる場合があります。 -
group_replication_clone_thresholdコマンド行形式 --group-replication-clone-threshold=#導入 8.0.17 システム変数 group_replication_clone_thresholdスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 9223372036854775807最小値 1最大値 9223372036854775807このシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_clone_thresholdでは、分散リカバリプロセス中に参加メンバーへの状態転送のためにリモートクローニング操作の使用をトリガーする既存のメンバー (ドナー) と参加メンバー (受信者) の間のトランザクションギャップを多数のトランザクションとして指定します。 参加メンバーと適切なドナーの間のトランザクションギャップがしきい値を超えると、グループレプリケーションはリモートクローニング操作で分散リカバリを開始します。 トランザクションギャップがしきい値を下回る場合、またはリモートクローニング操作が技術的に可能でない場合、Group Replication はドナーのバイナリログからの状態転送に直接進みます。警告アクティブグループの
group_replication_clone_thresholdには低い設定を使用しないでください。 リモートクローニング操作の進行中にしきい値を超える数のトランザクションがグループで発生した場合、参加メンバーは再起動後にリモートクローニング操作を再度トリガーし、これを無期限に続行できます。 この状況を回避するには、リモートクローニング操作にかかる時間内にグループ内で発生すると予想されるトランザクション数よりも大きい数をしきい値に設定してください。この関数を使用するには、クローニングをサポートするようにドナーと参加メンバーの両方を事前に設定する必要があります。 その手順は、セクション18.4.3.2「分散リカバリのためのクローニング」を参照してください。 リモートクローニング操作が実行されると、
group_replication_start_on_boot=ONが設定されている場合は、グループレプリケーションによって管理され、必要なサーバーの再起動も含まれます。 そうでない場合は、サーバーを手動で再起動する必要があります。 リモートクローニング操作では、結合メンバーの既存のデータディクショナリが置換されますが、結合メンバーに他のグループメンバーに存在しない追加のトランザクションがある場合、これらのトランザクションはクローニング操作によって消去されるため、グループレプリケーションによってチェックされ、続行されません。デフォルト設定 (GTID 内のトランザクションに許可される最大シーケンス番号) は、ドナーのバイナリログからの状態転送が、クローニングではなく実質的に常に試行されることを意味します。 ただし、結合メンバーに必要なトランザクションが既存のグループメンバーのバイナリログで使用できないためなど、ドナーバイナリログからの状態転送が不可能な場合、グループレプリケーションはしきい値に関係なく常にクローニング操作を実行しようとします。 レプリケーショングループでクローニングをまったく使用しない場合は、クローンプラグインをメンバーにインストールしないでください。
-
group_replication_communication_debug_optionsコマンド行形式 --group-replication-communication-debug-options=valueシステム変数 group_replication_communication_debug_optionsスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 GCS_DEBUG_NONE有効な値 GCS_DEBUG_NONEGCS_DEBUG_BASICGCS_DEBUG_TRACEXCOM_DEBUG_BASICXCOM_DEBUG_TRACEGCS_DEBUG_ALLこのシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_communication_debug_optionsは、グループ通信システム (GCS) やグループ通信エンジン (XCom、Paxos バリアント) などの様々なグループレプリケーションコンポーネントに提供するデバッグメッセージのレベルを構成します。 デバッグ情報は、データディレクトリのGCS_DEBUG_TRACEファイルに格納されます。文字列として指定された使用可能なオプションのセットを組み合せることができます。 次のオプションを使用できます。
GCS_DEBUG_NONEでは、GCS と XCom の両方のデバッグレベルがすべて無効になります。GCS_DEBUG_BASICを使用すると、GCS で基本的なデバッグ情報を使用できます。GCS_DEBUG_TRACEは GCS でトレース情報を有効にします。XCOM_DEBUG_BASICを使用すると、XCom の基本的なデバッグ情報を使用できます。XCOM_DEBUG_TRACEを使用すると、XCom でトレース情報を使用できます。GCS_DEBUG_ALLでは、GCS と XCom の両方ですべてのデバッグレベルが有効になります。
デバッグレベルを
GCS_DEBUG_NONEに設定すると、他のオプションを指定せずに指定した場合にのみ有効になります。 デバッグレベルをGCS_DEBUG_ALLに設定すると、他のすべてのオプションがオーバーライドされます。 -
group_replication_communication_max_message_sizeコマンド行形式 --group-replication-communication-max-message-size=#導入 8.0.16 システム変数 group_replication_communication_max_message_sizeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 10485760最小値 0最大値 1073741824このシステム変数は、すべてのグループメンバーで同じ値を持つ必要があります。 グループレプリケーションの実行中は、このシステム変数の値を変更できません。 各グループメンバーでグループレプリケーションを停止し、システム変数の値を変更してから、グループレプリケーションを再起動する必要があります。 このプロセス中、システム変数の値はグループメンバー間で異なってもかまいませんが、グループメンバーの一部のトランザクションはロールバックされる可能性があります。
group_replication_communication_max_message_sizeでは、グループレプリケーション通信の最大メッセージサイズを指定します。 このサイズより大きいメッセージは、個別に送信され、受信者によって再アセンブルされるフラグメントに自動的に分割されます。 詳細は、セクション18.6.4「メッセージの断片化」を参照してください。10485760 バイト (10 MiB) の最大メッセージサイズがデフォルトで設定されています。つまり、MySQL 8.0.16 からのリリースでは、断片化がデフォルトで使用されます。 最大許容値は、
slave_max_allowed_packetシステム変数の最大値 1073741824 バイト (1 GB) と同じです。 アプライヤスレッドはslave_max_allowed_packetより大きいメッセージフラグメントを処理できないため、group_replication_communication_max_message_sizeの設定はslave_max_allowed_packetの設定より小さくする必要があります。 断片化をオフにするには、group_replication_communication_max_message_sizeにゼロ値を指定します。レプリケーショングループのメンバーが断片化を使用するには、グループ通信プロトコルのバージョンが MySQL 8.0.16 以上である必要があります。
group_replication_get_communication_protocol()UDF を使用して、グループ通信プロトコルのバージョンを表示します。 下位バージョンが使用されている場合、グループメンバーはメッセージを断片化しません。 すべてのグループメンバーがサポートしている場合は、group_replication_set_communication_protocol()UDF を使用して、グループ通信プロトコルを上位バージョンに設定できます。 詳細は、セクション18.4.1.4「グループ通信プロトコルバージョンの設定」を参照してください。 -
group_replication_components_stop_timeoutコマンド行形式 --group-replication-components-stop-timeout=#システム変数 group_replication_components_stop_timeoutスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 31536000最小値 2最大値 31536000このシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_components_stop_timeoutでは、グループレプリケーションが停止時に各コンポーネントを待機するタイムアウトを秒単位で指定します。 -
group_replication_compression_thresholdコマンド行形式 --group-replication-compression-threshold=#システム変数 group_replication_compression_thresholdスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 1000000最小値 0最大値 4294967295このシステム変数は、すべてのグループメンバーで同じ値を持つ必要があります。 このシステム変数の値は、Group Replication の実行中に変更できます。 変更は、メンバーでグループレプリケーションを停止して再起動した後、各グループメンバーで有効になります。 このプロセス中、システム変数の値はグループメンバー間で異なってもかまいませんが、メッセージ配信の効率はすべてのメンバーで同じではありません。
group_replication_compression_thresholdでは、グループメンバー間で送信されるメッセージに圧縮が適用されるしきい値をバイト単位で指定します。 このシステム変数をゼロに設定すると、圧縮は無効になります。グループレプリケーションでは、LZ4 圧縮アルゴリズムを使用して、グループで送信されるメッセージを圧縮します。 LZ4 圧縮アルゴリズムでサポートされる最大入力サイズは 2113929216 バイトです。 この制限は、XCom で受け入れられる最大メッセージサイズと一致する、
group_replication_compression_thresholdシステム変数の最大可能値を下回っています。 LZ4 圧縮アルゴリズムでは、メッセージ圧縮が有効な場合、このサイズを超えるトランザクションはコミットできないため、group_replication_compression_thresholdに 2113929216 バイトを超える値を設定しないでください。詳細は、セクション18.6.3「メッセージ圧縮」を参照してください。
-
コマンド行形式 --group-replication-consistency=value導入 8.0.14 システム変数 group_replication_consistencyスコープ グローバル、セッション 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 EVENTUAL有効な値 EVENTUALBEFORE_ON_PRIMARY_FAILOVERBEFOREAFTERBEFORE_AND_AFTERこのシステム変数の値は、Group Replication の実行中に変更できます。
group_replication_consistencyは Group Replication プラグイン固有の変数ではなくサーバーシステム変数であるため、変更を有効にするために Group Replication を再起動する必要はありません。 システム変数のセッション値の変更はただちに有効になり、グローバル値の変更は変更後に開始される新しいセッションに対して有効になります。 このシステム変数のグローバル設定を変更するには、GROUP_REPLICATION_ADMIN権限が必要です。group_replication_consistencyは、グループが提供するトランザクションの一貫性保証を制御します。 一貫性はグローバルに構成することも、トランザクションごとに構成することもできます。group_replication_consistencyは、単一のプライマリグループで新しく選択されたプライマリによって使用されるフェンシングメカニズムも構成します。 変数の効果は、読取り専用 (RO) トランザクションと読取り/書込み (RW) トランザクションの両方で考慮する必要があります。 次のリストは、トランザクションの一貫性保証を高めるために、この変数に指定できる値を示しています:-
EVENTUALRO トランザクションと RW トランザクションはどちらも、実行前に先行するトランザクションが適用されるのを待機しません。 これは、この変数が追加される前の Group Replication の動作です。 RW トランザクションは、他のメンバーがトランザクションを適用するのを待機しません。 つまり、あるメンバーでトランザクションを外部化してから別のメンバーに外部化できます。 つまり、プライマリフェイルオーバーが発生した場合、新しいプライマリは、前のプライマリトランザクションがすべて適用される前に新しい RO および RW トランザクションを受け入れることができます。 RO トランザクションは古い値になる可能性があり、RW トランザクションは競合のためロールバックする可能性があります。
-
BEFORE_ON_PRIMARY_FAILOVER古いプライマリからバックログを適用している、新しく選択されたプライマリを持つ新しい RO または RW トランザクションは、バックログが適用されるまで保持されます (適用されません)。 これにより、プライマリフェイルオーバーが意図的に発生したかどうかにかかわらず、クライアントには常にプライマリの最新の値が表示されます。 これにより一貫性が保証されますが、バックログが適用されている場合、クライアントは遅延を処理できる必要があります。 通常、この遅延は最小限に抑える必要がありますが、バックログのサイズによって異なります。
-
BEFORERW トランザクションは、先行するすべてのトランザクションが完了するまで待機してから適用されます。 RO トランザクションは、先行するすべてのトランザクションが完了するまで待機してから実行されます。 これにより、トランザクションのレイテンシにのみ影響を与えることで、このトランザクションが最新の値を読み取るようになります。 これにより、RO トランザクションでのみ同期が使用されるようになるため、すべての RW トランザクションでの同期のオーバーヘッドが削減されます。 この一貫性レベルには、
BEFORE_ON_PRIMARY_FAILOVERによって提供される一貫性保証も含まれます。 -
AFTERRW トランザクションは、その変更が他のすべてのメンバーに適用されるまで待機します。 この値は RO トランザクションには影響しません。 このモードでは、トランザクションがローカルメンバーでコミットされたときに、後続のトランザクションが書込み値またはグループメンバーのより新しい値を読み取ることが保証されます。 このモードは、主に RO 操作に使用されるグループとともに使用して、適用された RW トランザクションがコミット後のすべての場所に確実に適用されるようにします。 これは、後続の読取りで最新の書込みを含む最新のデータがフェッチされるようにするために、アプリケーションで使用できます。 これにより、RW トランザクションでのみ同期が使用されるようになるため、RO トランザクションごとの同期のオーバーヘッドが削減されます。 この一貫性レベルには、
BEFORE_ON_PRIMARY_FAILOVERによって提供される一貫性保証も含まれます。 -
BEFORE_AND_AFTERRW トランザクションは、1) 前のすべてのトランザクションが適用されるまで待機し、2) 変更が他のメンバーに適用されるまで待機します。 RO トランザクションは、先行するすべてのトランザクションが完了するまで待機してから実行されます。 この一貫性レベルには、
BEFORE_ON_PRIMARY_FAILOVERによって提供される一貫性保証も含まれます。
詳細は、セクション18.4.2「トランザクション一貫性保証」を参照してください。
-
-
group_replication_enforce_update_everywhere_checksコマンド行形式 --group-replication-enforce-update-everywhere-checks[={OFF|ON}]システム変数 group_replication_enforce_update_everywhere_checksスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFこのシステム変数は、グループ全体の構成設定です。 値の変更を有効にするには、すべてのグループメンバーで同じ値を持つ必要があり、グループレプリケーションの実行中は変更できず、グループ (
group_replication_bootstrap_group=ONを使用したサーバーによるブートストラップ) を完全に再起動する必要があります。 MySQL 8.0.16 から、group_replication_switch_to_single_primary_mode()およびgroup_replication_switch_to_multi_primary_mode()UDF を使用して、グループの実行中にこのシステム変数の値を変更できます。 詳細は、セクション18.4.1.2「グループモードの変更」を参照してください。group_replication_enforce_update_everywhere_checksは、マルチプライマリ更新の厳密な整合性チェックをどこでも有効または無効にします。 デフォルトでは、チェックは無効になっています。 シングルプライマリモードでは、すべてのグループメンバーでこのオプションを無効にする必要があります。 マルチプライマリモードでは、このオプションを有効にすると、ステートメントは次のようにチェックされ、マルチプライマリモードと互換性があることが確認されます:トランザクションが
SERIALIZABLE分離レベルで実行される場合、トランザクション自体をグループと同期するとコミットは失敗します。カスケード制約を持つ外部キーを持つテーブルに対してトランザクションが実行される場合、トランザクションはグループとの同期時にコミットに失敗します。
-
group_replication_exit_state_actionコマンド行形式 --group-replication-exit-state-action=value導入 8.0.12 システム変数 group_replication_exit_state_actionスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 (≥ 8.0.16) READ_ONLYデフォルト値 (≥ 8.0.12, ≤ 8.0.15) ABORT_SERVER有効な値 (≥ 8.0.18) ABORT_SERVEROFFLINE_MODEREAD_ONLY有効な値 (≥ 8.0.12, ≤ 8.0.17) ABORT_SERVERREAD_ONLYこのシステム変数の値は、Group Replication の実行中に変更でき、変更はただちに有効になります。 動作が必要であることを意味する問題が発生すると、システム変数 current 値が読み取られます。
group_replication_exit_state_actionでは、たとえばアプライヤエラーが発生した後、大部分が失われた場合、または疑わしいタイムアウトのためにグループの別のメンバーがグループを明示する場合などに、このサーバーインスタンスが意図せずグループを離れたときのグループレプリケーションの動作を構成します。 大部分が失われた場合にメンバーがグループを離れるタイムアウト期間はgroup_replication_unreachable_majority_timeoutシステム変数によって設定され、疑わしい場合のタイムアウト期間はgroup_replication_member_expel_timeoutシステム変数によって設定されます。 削除されたグループメンバーは、グループに再接続するまで削除されたことを認識しないため、指定されたアクションが実行されるのは、メンバーが再接続を管理している場合、またはメンバーがそれ自体で疑わしいことを引き起こして削除した場合のみです。疑わしいタイムアウトまたは大部分の損失が原因でグループメンバーが削除された場合、メンバーの
group_replication_autorejoin_triesシステム変数が自動再結合の試行回数を指定するように設定されていると、最初にスーパー読取り専用モードで指定された回数試行し、次にgroup_replication_exit_state_actionで指定されたアクションに従います。 アプライヤエラーの場合、自動再結合はリカバリできないため試行されません。group_replication_exit_state_actionがREAD_ONLYに設定されている場合、メンバーが誤ってグループを終了するか、自動再結合の試行を使い果たすと、インスタンスは MySQL をスーパー読取り専用モードに切り替えます (システム変数super_read_onlyをONに設定します)。READ_ONLY終了アクションは、システム変数が導入される前の MySQL 8.0 リリースの動作であり、MySQL 8.0.16 から再度デフォルトになりました。group_replication_exit_state_actionがOFFLINE_MODEに設定されている場合、メンバーが誤ってグループを終了するか、自動再結合の試行を使い果たすと、インスタンスは MySQL をオフラインモードに切り替えます (システム変数offline_modeをONに設定します)。 このモードでは、接続クライアントユーザーは次のリクエストで切断され、CONNECTION_ADMIN権限 (または非推奨のSUPER権限) を持つクライアントユーザーを除き、接続は受け入れられなくなります。 Group Replication は、システム変数super_read_onlyをONに設定することもできるため、クライアントがCONNECTION_ADMINまたはSUPER権限で接続されていても更新を行うことはできません。OFFLINE_MODE終了アクションは、MySQL 8.0.18 から使用できます。group_replication_exit_state_actionがABORT_SERVERに設定されている場合、メンバーが意図せずグループを終了するか、自動再結合の試行を使い果たすと、インスタンスは MySQL を停止します。 この設定は、システム変数が MySQL 8.0.15 に追加されたときの MySQL 8.0.12 のデフォルトでした。重要メンバーがグループに正常に参加する前に障害が発生した場合、指定された終了アクション取得されません。 これは、ローカル構成チェック中に障害が発生した場合、または参加メンバーの構成とグループの構成が一致しない場合です。 このような状況では、
super_read_onlyシステム変数は元の値のままで、接続は引き続き受け入れられ、サーバーは MySQL を停止しません。 したがって、Group Replication が起動しなかったときにサーバーが更新を受け入れられないようにするには、起動時にsuper_read_only=ONをサーバー構成ファイルに設定することをお薦めします。これは、正常に起動された後、プライマリメンバー上のOFFにグループレプリケーションが変更されます。 この保護策は、サーバーがサーバー起動時に Group Replication (group_replication_start_on_boot=ON) を起動するように構成されている場合に特に重要ですが、START GROUP_REPLICATIONコマンドを使用して Group Replication を手動で起動する場合にも役立ちます。このオプションの使用方法および exit アクションが実行される状況の完全なリストの詳細は、セクション18.6.6.4「終了処理」 を参照してください。
-
group_replication_flow_control_applier_thresholdコマンド行形式 --group-replication-flow-control-applier-threshold=#システム変数 group_replication_flow_control_applier_thresholdスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 25000最小値 0最大値 2147483647このシステム変数の値は、Group Replication の実行中に変更でき、変更はただちに有効になります。
group_replication_flow_control_applier_thresholdでは、フロー制御をトリガーするアプライヤキュー内の待機中トランザクションの数を指定します。 -
group_replication_flow_control_certifier_thresholdコマンド行形式 --group-replication-flow-control-certifier-threshold=#システム変数 group_replication_flow_control_certifier_thresholdスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 25000最小値 0最大値 2147483647このシステム変数の値は、Group Replication の実行中に変更でき、変更はただちに有効になります。
group_replication_flow_control_certifier_thresholdでは、フロー制御をトリガーする証明者キュー内の待機中トランザクションの数を指定します。 -
group_replication_flow_control_hold_percentコマンド行形式 --group-replication-flow-control-hold-percent=#システム変数 group_replication_flow_control_hold_percentスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 10最小値 0最大値 100このシステム変数の値は、Group Replication の実行中に変更でき、変更はただちに有効になります。
group_replication_flow_control_hold_percentでは、フロー制御下のクラスタがバックログで捕捉できるように、未使用のままになるグループ割当ての割合を定義します。 値 0 は、作業バックログを捕捉するために割当て制限の一部が予約されていないことを意味します。 -
group_replication_flow_control_max_commit_quotaコマンド行形式 --group-replication-flow-control-max-commit-quota=#システム変数 group_replication_flow_control_max_commit_quotaスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0最大値 2147483647このシステム変数の値は、Group Replication の実行中に変更でき、変更はただちに有効になります。
group_replication_flow_control_max_commit_quotaでは、フロー制御が有効になっている間、グループの最大フロー制御割当て制限または任意の期間の最大使用可能割当て制限が定義されます。 値 0 は、最大割当て制限が設定されていないことを意味します。 このシステム変数の値は、group_replication_flow_control_min_quotaおよびgroup_replication_flow_control_min_recovery_quotaより小さくできません。 -
group_replication_flow_control_member_quota_percentコマンド行形式 --group-replication-flow-control-member-quota-percent=#システム変数 group_replication_flow_control_member_quota_percentスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0最大値 100このシステム変数の値は、Group Replication の実行中に変更でき、変更はただちに有効になります。
group_replication_flow_control_member_quota_percentでは、割当て制限の計算時にメンバーが使用可能とみなす必要がある割当て制限の割合が定義されます。 値 0 は、割当て制限を最後の期間のライターであったメンバー間で均等に分割する必要があることを意味します。 -
group_replication_flow_control_min_quotaコマンド行形式 --group-replication-flow-control-min-quota=#システム変数 group_replication_flow_control_min_quotaスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0最大値 2147483647このシステム変数の値は、Group Replication の実行中に変更でき、変更はただちに有効になります。
group_replication_flow_control_min_quotaは、最後の期間に実行された計算済の最小目標とは関係なく、メンバーに割り当てることができる最小フロー制御目標を制御します。 値 0 は、最小割当て制限がないことを意味します。 このシステム変数の値はgroup_replication_flow_control_max_commit_quotaより大きくできません。 -
group_replication_flow_control_min_recovery_quotaコマンド行形式 --group-replication-flow-control-min-recovery-quota=#システム変数 group_replication_flow_control_min_recovery_quotaスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0最大値 2147483647このシステム変数の値は、Group Replication の実行中に変更でき、変更はただちに有効になります。
group_replication_flow_control_min_recovery_quotaは、最後の期間に実行された計算済の最小割当て制限とは関係なく、グループ内の別のリカバリメンバーのためにメンバーに割り当てることができる最小割当て制限を制御します。 値 0 は、最小割当て制限がないことを意味します。 このシステム変数の値はgroup_replication_flow_control_max_commit_quotaより大きくできません。 -
group_replication_flow_control_modeコマンド行形式 --group-replication-flow-control-mode=valueシステム変数 group_replication_flow_control_modeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 QUOTA有効な値 DISABLEDQUOTAこのシステム変数の値は、Group Replication の実行中に変更でき、変更はただちに有効になります。
group_replication_flow_control_modeでは、フロー制御に使用されるモードを指定します。 -
group_replication_flow_control_periodコマンド行形式 --group-replication-flow-control-period=#システム変数 group_replication_flow_control_periodスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 1最小値 1最大値 60このシステム変数の値は、Group Replication の実行中に変更でき、変更はただちに有効になります。
group_replication_flow_control_periodでは、フロー制御メッセージが送信されてフロー制御管理タスクが実行されるまで待機する秒数を定義します。 -
group_replication_flow_control_release_percentコマンド行形式 --group-replication-flow-control-release-percent=#システム変数 group_replication_flow_control_release_percentスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 50最小値 0最大値 1000このシステム変数の値は、Group Replication の実行中に変更でき、変更はただちに有効になります。
group_replication_flow_control_release_percentでは、フロー制御でライターメンバーを制限する必要がなくなった場合に、グループ割当て制限を解放する方法を定義します。この割合は、フロー制御期間ごとの割当て制限の増加です。 値 0 は、フロー制御しきい値が制限内になると、割当て制限が単一のフロー制御反復で解放されることを意味します。 範囲を使用すると、割当て制限を現在の割当て制限の最大 10 倍までリリースできます。これにより、主にフロー制御期間が大きく、割当て制限が非常に小さい場合に、より高度な適応が可能になります。 -
group_replication_force_membersコマンド行形式 --group-replication-force-members=valueシステム変数 group_replication_force_membersスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 このシステム変数は、新しいグループメンバーシップを強制するために使用されます。 このシステム変数の値は、Group Replication の実行中に変更でき、変更はただちに有効になります。 システム変数の値を設定する必要があるのは、グループに残すグループメンバーのいずれかのみです。 新しいグループメンバーシップを強制的に実行する必要がある状況と、このシステム変数を使用する際に従う手順の詳細は、セクション18.4.4「ネットワークパーティション化」 を参照してください。
group_replication_force_membersでは、ピアアドレスのリストをカンマ区切りリスト (host1:port1、host2:port2など) として指定します。 リストに含まれていない既存のメンバーは、グループの新しいビューを受信せず、ブロックされます。 メンバーとして続行する既存のメンバーごとに、各メンバーのgroup_replication_local_addressシステム変数で指定されているように、IP アドレスまたはホスト名とポートを含める必要があります。 IPv6 アドレスは大カッコで囲んで指定する必要があります。 例:"198.51.100.44:33061,[2001:db8:85a3:8d3:1319:8a2e:370:7348]:33061,example.org:33061"Group Replication (XCom) のグループ通信エンジンは、指定された IP アドレスが有効な形式であることをチェックし、現在アクセスできないグループメンバーが含まれていないことをチェックします。 それ以外の場合、新しい構成は検証されないため、グループのアクセス可能なメンバーであるオンラインサーバーのみを含めるように注意する必要があります。 リスト内の不正な値または無効なホスト名があると、グループが無効な構成でブロックされる可能性があります。
新しいメンバーシップ構成を強制的に実行する前に、除外するサーバーが停止していることを確認することが重要です。 そうでない場合は、停止してから続行します。 まだオンラインのグループメンバーは新しい構成を自動的に形成でき、これがすでに行われている場合は、さらに新しい構成を強制すると、グループに人工的なスプリットブレイン状況が作成される可能性があります。
group_replication_force_membersシステム変数を使用して新しいグループメンバーシップを強制し、グループのブロックを解除した後、必ずシステム変数をクリアしてください。START GROUP_REPLICATIONステートメントを発行するには、group_replication_force_membersが空である必要があります。 -
コマンド行形式 --group-replication-group-name=valueシステム変数 group_replication_group_nameスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 このシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_group_nameは、このサーバーインスタンスが属するグループの名前を指定します。これは有効な UUID である必要があります。 この UUID は、バイナリログ内のグループレプリケーショントランザクションの GTID を設定するときに内部的に使用されます。重要一意の UUID を使用する必要があります。
-
コマンド行形式 --group-replication-group-seeds=valueシステム変数 group_replication_group_seedsスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 このシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_group_seedsは、参加メンバーが現在のすべてのグループメンバーの詳細を取得するために接続できるグループメンバーのリストです。 参加メンバーは、これらの詳細を使用してグループメンバーを選択して接続し、グループとの同期に必要なデータを取得します。 このリストは、シードメンバーのgroup_replication_local_addressシステム変数 (MySQL Serverhostnameおよびportシステム変数で指定されたシードメンバーの SQL クライアント接続ではなく) で構成されている、含まれる各シードメンバーの単一の内部ネットワークアドレスまたはホスト名で構成されます。 シードメンバーのアドレスは、host1:port1、host2:port2などのカンマ区切りリストとして指定されます。 IPv6 アドレスは大カッコで囲んで指定する必要があります。 例:group_replication_group_seeds= "198.51.100.44:33061,[2001:db8:85a3:8d3:1319:8a2e:370:7348]:33061, example.org:33061"この変数に指定する値は、
START GROUP_REPLICATIONステートメントが発行され、Group Communication System (GCS) が使用可能になるまで検証されないことに注意してください。通常、このリストはグループのすべてのメンバーで構成されますが、シードするグループメンバーのサブセットを選択できます。 リストには、少なくとも 1 つの有効なメンバーアドレスが含まれている必要があります。 各アドレスは、Group Replication の開始時に検証されます。 リストに有効なメンバーアドレスが含まれていない場合、
START GROUP_REPLICATIONの発行は失敗します。サーバーは、レプリケーショングループに参加するときに、その
group_replication_group_seedsシステム変数にリストされている最初のシードメンバーに接続しようとします。 接続が拒否された場合、参加メンバーはリスト内の他の各シードメンバーに順番に接続しようとします。 結合メンバーがシードメンバーに接続しても、結果としてレプリケーショングループに追加されない場合 (たとえば、シードメンバーの allowlist に結合メンバーアドレスがなく、接続を閉じているため)、結合メンバーはリスト内の残りのシードメンバーを順番に試行し続けます。参加メンバーは、シードメンバーが
group_replication_group_seedsオプションで通知するプロトコル (IPv4 または IPv6) と同じプロトコルを使用してシードメンバーと通信する必要があります。 グループレプリケーションの IP アドレス権限のために、シードメンバーの許可リストには、シードメンバーが提供するプロトコルの参加メンバーの IP アドレス、またはそのプロトコルのアドレスに解決されるホスト名が含まれている必要があります。 このアドレスのプロトコルがシードメンバーに通知されたプロトコルと一致しない場合は、参加メンバーgroup_replication_local_addressに加えて、このアドレスまたはホスト名を設定して許可する必要があります。 参加メンバーに適切なプロトコルの許可されたアドレスがない場合、その接続試行は拒否されます。 詳細は、セクション18.5.1「グループレプリケーション IP アドレスの権限」を参照してください。 -
group_replication_gtid_assignment_block_sizeコマンド行形式 --group-replication-gtid-assignment-block-size=#システム変数 group_replication_gtid_assignment_block_sizeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 1000000最小値 1最大値 (64 ビットプラットフォーム) 9223372036854775807最大値 (32 ビットプラットフォーム) 4294967295このシステム変数は、グループ全体の構成設定です。 値の変更を有効にするには、すべてのグループメンバーで同じ値を持つ必要があり、グループレプリケーションの実行中は変更できず、グループ (
group_replication_bootstrap_group=ONを使用したサーバーによるブートストラップ) を完全に再起動する必要があります。group_replication_gtid_assignment_block_sizeでは、各グループメンバー用に予約されている連続 GTID の数を指定します。 各メンバーは独自のブロックを消費し、必要に応じてより多くのブロックを予約します。 -
group_replication_ip_allowlistコマンド行形式 --group-replication-ip-allowlist=value導入 8.0.22 システム変数 group_replication_ip_allowlistスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 AUTOMATICgroup_replication_ip_allowlistは、group_replication_ip_whitelistのかわりに MySQL 8.0.22 から使用できます。 グループレプリケーションの実行中は、このシステム変数の値を変更できません。group_replication_ip_allowlistは、グループへの接続を許可するホストを指定します。group_replication_local_addressの各グループメンバーに指定するアドレスは、レプリケーショングループ内の他のサーバーで許可されている必要があります。 この変数に指定する値は、START GROUP_REPLICATIONステートメントが発行され、Group Communication System (GCS) が使用可能になるまで検証されないことに注意してください。デフォルトでは、このシステム変数は、ホスト上でアクティブなプライベートサブネットワークからの接続を許可する
AUTOMATICに設定されています。 Group Replication (XCom) のグループ通信エンジンは、ホスト上のアクティブなインタフェースを自動的にスキャンし、プライベートサブネットワーク上のアドレスを持つインタフェースを識別します。 IPv4 および (MySQL 8.0.14 から) IPv6 のこれらのアドレスとlocalhostIP アドレスを使用して、Group Replication 許可リストを作成します。 アドレスが自動的に許可される範囲のリストについては、セクション18.5.1「グループレプリケーション IP アドレスの権限」 を参照してください。プライベートアドレスの自動許可リストは、プライベートネットワーク外のサーバーからの接続には使用できません。 異なるマシン上にあるサーバーインスタンス間のグループレプリケーション接続の場合、パブリック IP アドレスを指定し、明示的な許可リストとして指定する必要があります。 許可リストにエントリを指定した場合、プライベートアドレスは自動的に追加されないため、これらのいずれかを使用する場合は、明示的に指定する必要があります。
localhostIP アドレスは自動的に追加されます。group_replication_ip_allowlistオプションの値として、次の任意の組合せを指定できます:IPv4 アドレス (
198.51.100.44など)CIDR 表記を使用した IPv4 アドレス (
192.0.2.21/24など)MySQL 8.0.14 からの IPv6 アドレス (
2001:db8:85a3:8d3:1319:8a2e:370:7348など)MySQL 8.0.14 からの CIDR 表記の IPv6 アドレス (
2001:db8:85a3:8d3::/64など)ホスト名 (
example.orgなど)CIDR 表記法を使用したホスト名 (
www.example.com/24など)
MySQL 8.0.14 より前では、ホスト名は IPv4 アドレスにのみ解決できました。 MySQL 8.0.14 から、ホスト名は IPv4 アドレス、IPv6 アドレス、またはその両方に解決できます。 ホスト名が IPv4 アドレスと IPv6 アドレスの両方に解決される場合、IPv4 アドレスは常にグループレプリケーション接続に使用されます。 CIDR 表記をホスト名または IP アドレスと組み合せて使用すると、特定のネットワーク接頭辞を持つ IP アドレスのブロックを許可できますが、指定したサブネット内のすべての IP アドレスが制御下にあることを確認してください。
allowlist の各エントリはカンマで区切る必要があります。 例:
"192.0.2.21/24,198.51.100.44,203.0.113.0/24,2001:db8:85a3:8d3:1319:8a2e:370:7348,example.org,www.example.com/24"結合メンバーに IPv4
group_replication_local_addressがある場合、またはその逆の場合に、グループのシードメンバーのいずれかが IPv6 アドレスとともにgroup_replication_group_seedsオプションにリストされている場合は、シードメンバーによって提供されるプロトコル (またはそのプロトコルのアドレスに解決されるホスト名) の結合メンバーの代替アドレスも設定して許可する必要があります。 詳細は、セクション18.5.1「グループレプリケーション IP アドレスの権限」を参照してください。たとえば、異なるサブネットを分離しておくために、セキュリティ要件に応じて異なるグループメンバーに異なる許可リストを構成できます。 ただし、これにより、グループの再構成時に問題が発生する可能性があります。 それ以外の場合に特定のセキュリティ要件がない場合は、グループのすべてのメンバーで同じ許可リストを使用します。 詳細は、セクション18.5.1「グループレプリケーション IP アドレスの権限」を参照してください。
ホスト名の場合、名前解決は、別のサーバーによって接続リクエストが行われた場合にのみ行われます。 解決できないホスト名は許可リストの検証で考慮されず、警告メッセージがエラーログに書き込まれます。 前方確認の逆引き DNS (FCrDNS) 検証は、解決されたホスト名に対して実行されます。
警告ホスト名は本質的に許可リストの IP アドレスより安全性が低くなります。 FCrDNS の検証は適切なレベルの保護を提供しますが、特定のタイプの攻撃によって危険にさらされる可能性があります。 厳密に必要な場合にのみ許可リストにホスト名を指定し、名前解決に使用されるすべてのコンポーネント (DNS サーバーなど) が制御下に保持されていることを確認します。 外部コンポーネントを使用しないように、hosts ファイルを使用して名前解決をローカルに実装することもできます。
-
group_replication_ip_whitelistコマンド行形式 --group-replication-ip-whitelist=value非推奨 8.0.22 システム変数 group_replication_ip_whitelistスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 AUTOMATICMySQL 8.0.22 からは、
group_replication_ip_whitelistは非推奨であり、group_replication_ip_allowlistを使用して置き換えられます。 どちらのシステム変数の場合も、デフォルト値はAUTOMATICです。 いずれかのシステム変数がユーザー定義値に設定されていて、もう一方が設定されていない場合は、変更された値が使用されます。 両方のシステム変数がユーザー定義の値に設定されている場合は、group_replication_ip_allowlistの値が使用されます。新しいシステム変数は古いシステム変数と同じように機能しますが、用語のみが変更されています。
group_replication_ip_allowlistの動作の説明は、古いシステム変数と新しいシステム変数の両方に適用されます。 -
group_replication_local_addressコマンド行形式 --group-replication-local-address=valueシステム変数 group_replication_local_addressスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 このシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_local_addressは、メンバーが他のメンバーからの接続用に提供するネットワークアドレスを、host:portフォーマット文字列として指定して設定します。 このアドレスは、リモート XCom インスタンス間の TCP 通信用のグループレプリケーション (XCom、Paxos バリアント) のためにグループ通信エンジンによって使用されるため、グループのすべてのメンバーがアクセスできる必要があります。 ローカルインスタンスとの通信は、共有メモリーを使用して入力チャネルを介して行われます。警告メンバーとの通信にこのアドレスを使用しないでください。 これは、MySQL サーバーの SQL プロトコルのホストおよびポートではありません。
group_replication_local_addressで指定するアドレスまたはホスト名は、グループレプリケーションによって、レプリケーショングループ内のグループメンバーの一意の識別子として使用されます。 ホスト名または IP アドレスがすべて異なるかぎり、レプリケーショングループのすべてのメンバーに同じポートを使用でき、ポートがすべて異なるかぎり、すべてのメンバーに同じホスト名または IP アドレスを使用できます。group_replication_local_addressの推奨ポートは 33061 です。 この変数に指定した値は、START GROUP_REPLICATIONステートメントが発行され、Group Communication System (GCS) が使用可能になるまで検証されないことに注意してください。group_replication_local_addressによって構成されたネットワークアドレスは、すべてのグループメンバーが解決できる必要があります。 たとえば、各サーバーインスタンスが固定ネットワークアドレスを持つ異なるマシン上にある場合、10.0.0.1 などのマシンの IP アドレスを使用できます。 ホスト名を使用する場合は、完全修飾名を使用し、DNS、正しく構成された/etc/hostsファイルまたはその他の名前解決プロセスを介して解決できることを確認する必要があります。 MySQL 8.0.14 からは、IPv6 アドレス (またはそれらに解決されるホスト名) と IPv4 アドレスを使用できます。 IPv6 アドレスは、ポート番号を区別するために大カッコで囲む必要があります。次に例を示します:group_replication_local_address= "[2001:db8:85a3:8d3:1319:8a2e:370:7348]:33061"サーバーインスタンスのグループレプリケーションのローカルアドレスとして指定されたホスト名が IPv4 アドレスと IPv6 アドレスの両方に解決される場合、IPv4 アドレスは常にグループレプリケーション接続に使用されます。 IPv6 ネットワークおよび IPv4 を使用するメンバーと IPv6 を使用するメンバーが混在するレプリケーショングループに対するグループレプリケーションサポートの詳細は、セクション18.4.5「IPv6 および IPv6 と IPv4 の混合グループのサポート」 を参照してください。
グループレプリケーションの IP アドレス権限のために、
group_replication_local_addressの各グループメンバーに指定するアドレスを、レプリケーショングループ内の他のサーバー上のgroup_replication_ip_allowlist(MySQL 8.0.22 から) またはgroup_replication_ip_whitelistシステム変数のリストに追加する必要があります。 グループのシードメンバーのいずれかが IPv6 アドレスとともにgroup_replication_group_seedsオプションにリストされている場合このメンバーが IPV4group_replication_local_addressであれば (またはその逆の場合)、必要なプロトコル (またはそのプロトコルのアドレスに解決されるホスト名) に対してこのメンバーの代替アドレスを設定して許可する必要もあります。 詳細は、セクション18.5.1「グループレプリケーション IP アドレスの権限」を参照してください。 -
group_replication_member_expel_timeoutコマンド行形式 --group-replication-member-expel-timeout=#導入 8.0.13 システム変数 group_replication_member_expel_timeoutスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 (≥ 8.0.21) 5デフォルト値 (≤ 8.0.20) 0最小値 0最大値 (≥ 8.0.14) 3600最大値 (≤ 8.0.13) 31536000このシステム変数の値は、Group Replication の実行中に変更でき、変更はただちに有効になります。 Group Replication がタイムアウトをチェックするたびに、システム変数の現在の値が読み取られます。 グループのすべてのメンバーが同じ設定を持つことは必須ではありませんが、予期しない実行を回避するためにお薦めします。
group_replication_member_expel_timeoutでは、疑わしいグループを作成した後、メンバーが失敗した疑いがあるグループから追い出されるまでにグループレプリケーショングループメンバーが待機する期間を秒単位で指定します。 疑いが作成される前の最初の 5 秒間の検出期間は、この時間の一部としてカウントされません。 MySQL 8.0.20 まで、group_replication_member_expel_timeoutの値はデフォルトで 0 に設定されます。これは、待機期間がなく、疑わしいメンバーが 5 秒間の検出期間の終了直後に実行できることを意味します。 MySQL 8.0.21 からは、値はデフォルトで 5 に設定されます。つまり、疑わしいメンバーは、5 秒間の検出期間の 5 秒後に強制的に実行されます。グループメンバーの
group_replication_member_expel_timeoutの値の変更は、そのグループメンバーの既存および将来の疑いに対してただちに有効になります。 したがって、これを方法として使用すると、疑わしいメンバーを強制的にタイムアウトして削除し、グループ構成を変更できます。 詳細は、セクション18.6.6.1「Expel タイムアウト」を参照してください。group_replication_member_expel_timeoutの値を大きくすると、低速または安定していないネットワークで不要な削除が発生しないようにしたり、一時的なネットワークの停止やマシンの速度低下が予想される場合に役立ちます。 疑わしいメンバーがタイムアウトする前に再度アクティブになると、残りのグループメンバーによってバッファされたすべてのメッセージが適用され、オペレータの介入なしでONLINE状態になります。 最大 3600 秒 (1 時間) までのタイムアウト値を指定できます。 XCom メッセージキャッシュが、指定した期間内の予想されるメッセージ量と最初の 5 秒間の検出期間を含むのに十分な大きさであることを確認することが重要です。そうでない場合、メンバーは再接続できません。group_replication_message_cache_sizeシステム変数を使用して、キャッシュサイズ制限を調整できます。 詳細は、セクション18.6.5「XCom キャッシュ管理」を参照してください。タイムアウトを超えた場合、疑わしいメンバーは疑わしいタイムアウトの直後に削除する責任があります。 メンバーが通信を再開でき、削除されたビューを受信し、メンバーに自動再結合の試行回数を指定する
group_replication_autorejoin_triesシステム変数が設定されている場合、スーパー読取り専用モードでは、指定された回数グループへの再参加を試行します。 メンバーに自動再結合の試行が指定されていない場合、または指定された試行回数を使い果たした場合は、システム変数group_replication_exit_state_actionで指定されたアクションに従います。group_replication_member_expel_timeout設定の使用の詳細は、セクション18.6.6.1「Expel タイムアウト」 を参照してください。 このシステム変数が使用できない場合に不要な削除を回避するための代替軽減戦略については、セクション18.9.2「グループレプリケーションの制限事項」 を参照してください。 -
group_replication_member_weightコマンド行形式 --group-replication-member-weight=#システム変数 group_replication_member_weightスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 50最小値 0最大値 100このシステム変数の値は、Group Replication の実行中に変更でき、変更はただちに有効になります。 システム変数の現在の値は、フェイルオーバー状況が発生したときに読み取られます。
group_replication_member_weightでは、既存のプライマリが単一プライマリグループから離れる場合など、フェイルオーバー時にプライマリとして選択されるメンバーの可能性に影響を与えるためにメンバーに割り当てることができる重みの割合を指定します。 プライマリのスケジュールされたメンテナンス中やフェイルオーバー時に特定のハードウェアが優先されるように、メンバーに数値の重みを割り当てて特定のメンバーが選択されるようにします。メンバーが次のように構成されているグループの場合:
member-1: group_replication_member_weight=30, server_uuid=aaaamember-2: group_replication_member_weight=40, server_uuid=bbbbmember-3: group_replication_member_weight=40, server_uuid=ccccmember-4: group_replication_member_weight=40, server_uuid=dddd
新しいプライマリの選択時に、前述のメンバーは
member-2,member-3,member-4およびmember-1としてソートされます。 これにより、フェイルオーバー時に新しいプライマリとしてmember-2 が選択されます。 詳細は、セクション18.1.3.1「シングルプライマリモード」を参照してください。 -
group_replication_message_cache_sizeコマンド行形式 --group-replication-message-cache-size=#導入 8.0.16 システム変数 group_replication_message_cache_sizeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 1073741824 (1 GB)最小値 (64 ビットプラットフォーム, ≥ 8.0.21) 134217728 (128 MB)最小値 (64 ビットプラットフォーム, ≤ 8.0.20) 1073741824 (1 GB)最小値 (32 ビットプラットフォーム, ≥ 8.0.21) 134217728 (128 MB)最小値 (32 ビットプラットフォーム, ≤ 8.0.20) 1073741824 (1 GB)最大値 (64 ビットプラットフォーム) 18446744073709551615 (16 EiB)最大値 (32 ビットプラットフォーム) 315360004294967295 (4 GB)このシステム変数は、すべてのグループメンバーで同じ値を持つ必要があります。 このシステム変数の値は、Group Replication の実行中に変更できます。 変更は、メンバーでグループレプリケーションを停止して再起動した後、各グループメンバーで有効になります。 このプロセス中、システム変数の値はグループメンバー間で異なってもかまいませんが、切断された場合にメンバーが再接続できないことがあります。
group_replication_message_cache_sizeは、グループレプリケーション (XCom) のグループ通信エンジンでメッセージキャッシュに使用可能なメモリーの最大量を設定します。 XCom メッセージキャッシュには、コンセンサスプロトコルの一部としてグループメンバー間で交換されるメッセージ (およびそのメタデータ) が保持されます。 メッセージキャッシュは、他のグループメンバーと通信できなかった期間後にグループに再接続するメンバーによる、欠落したメッセージのリカバリに使用されます。group_replication_member_expel_timeoutシステム変数は、メンバーが明示されるのではなくグループに戻るための最初の 5 秒間の検出期間に加えて許可される待機期間 (最大 1 時間) を決定します。 XCom メッセージキャッシュのサイズは、メンバーが正常に戻るために必要なすべての欠落メッセージが含まれるように、この期間内の予想されるメッセージ量を参照して設定する必要があります。 MySQL 8.0.20 までは、デフォルトは 5 秒の検出期間のみですが、MySQL 8.0.21 からは、合計 10 秒間、5 秒の検出期間後の待機期間は 5 秒です。MySQL Server の他のキャッシュおよびオブジェクトプールのサイズを考慮して、選択したキャッシュサイズ制限に十分なメモリーがシステムで使用可能であることを確認します。 デフォルト設定は 1073741824 バイト (1 GB) です。 最小設定は、MySQL 8.0.20 まで 1 GB です。 MySQL 8.0.21 からは、最小設定は 134217728 バイト (128 MB) で、使用可能なメモリー量が制限されたホストへのデプロイメントが可能になり、グループメンバーの接続の一時的な損失の頻度と期間を最小限に抑えるための適切なネットワーク接続が可能になります。
group_replication_message_cache_sizeを使用して設定された制限はキャッシュに格納されているデータにのみ適用され、キャッシュ構造には追加の 50 MB のメモリーが必要です。キャッシュサイズ制限は、実行時に動的に増減できます。 キャッシュサイズ制限を小さくすると、XCom では、現在のサイズが制限を下回るまで、決定および配信された最も古いエントリが削除されます。 Group Replication Group Communication System (GCS) は、現在アクセスできないメンバーによるリカバリに必要と思われるメッセージがメッセージキャッシュから削除されたときに、警告メッセージでアラートを生成します。 メッセージキャッシュサイズのチューニングの詳細は、セクション18.6.5「XCom キャッシュ管理」 を参照してください。
-
group_replication_poll_spin_loopsコマンド行形式 --group-replication-poll-spin-loops=#システム変数 group_replication_poll_spin_loopsスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0最大値 (64 ビットプラットフォーム) 18446744073709551615最大値 (32 ビットプラットフォーム) 4294967295このシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_poll_spin_loopsでは、グループ通信スレッドが通信エンジン mutex の解放を待機する回数を指定します。この回数を超えると、スレッドは追加の着信ネットワークメッセージを待機します。 -
group_replication_recovery_complete_atコマンド行形式 --group-replication-recovery-complete-at=valueシステム変数 group_replication_recovery_complete_atスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 TRANSACTIONS_APPLIED有効な値 TRANSACTIONS_CERTIFIEDTRANSACTIONS_APPLIEDこのシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_complete_atでは、既存のメンバーからの状態転送後にキャッシュされたトランザクションを処理する際に、分散リカバリプロセス中に適用されるポリシーを指定します。 メンバーがグループ (TRANSACTIONS_CERTIFIED) に参加する前に見逃したすべてのトランザクションを受信して認証した後、または受信、認証および適用した後 (TRANSACTIONS_APPLIED) にのみ、メンバーをオンラインとしてマークするかどうかを選択できます。 -
group_replication_recovery_compression_algorithmコマンド行形式 --group-replication-recovery-compression-algorithm=value導入 8.0.18 システム変数 group_replication_recovery_compression_algorithmスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Set デフォルト値 uncompressed有効な値 zlibzstduncompressedこのシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_compression_algorithmでは、ドナーバイナリログからの状態転送用のグループレプリケーション分散リカバリ接続に許可される圧縮アルゴリズムを指定します。 使用可能なアルゴリズムは、protocol_compression_algorithmsシステム変数の場合と同じです。 詳細は、セクション4.2.8「接続圧縮制御」を参照してください。この設定は、クローニングをサポートするようにサーバーが設定されており (セクション18.4.3.2「分散リカバリのためのクローニング」 を参照)、分散リカバリ中にリモートクローニング操作が使用されている場合は適用されません。 この状態転送方法では、クローンプラグインの
clone_enable_compression設定が適用されます。 -
group_replication_recovery_get_public_keyコマンド行形式 --group-replication-recovery-get-public-key[={OFF|ON}]システム変数 group_replication_recovery_get_public_keyスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFこのシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_get_public_keyは、RSA キーペアベースのパスワード交換に必要な公開キーをソースからリクエストするかどうかを指定します。group_replication_recovery_public_key_pathが有効な公開キーファイルに設定されている場合は、group_replication_recovery_get_public_keyよりも優先されます。 この変数は、group_replication_recoveryチャネル (group_replication_recovery_use_ssl=ON) を介した分散リカバリに SSL を使用せず、グループレプリケーションのレプリケーションユーザーアカウントがcaching_sha2_passwordプラグイン (MySQL 8.0 のデフォルト) で認証される場合に適用されます。 詳細は、セクション18.5.3.1.1「キャッシュ SHA-2 認証プラグインを使用するレプリケーションユーザー」を参照してください。 -
group_replication_recovery_public_key_pathコマンド行形式 --group-replication-recovery-public-key-path=file_nameシステム変数 group_replication_recovery_public_key_pathスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 ファイル名 デフォルト値 NULLこのシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_public_key_pathでは、RSA キーペアベースのパスワード交換のソースで必要な公開キーのレプリカ側コピーを含むファイルへのパス名を指定します。 ファイルは PEM 形式である必要があります。group_replication_recovery_public_key_pathが有効な公開キーファイルに設定されている場合は、group_replication_recovery_get_public_keyよりも優先されます。 この変数は、group_replication_recoveryチャネルを介した分散リカバリに SSL を使用しておらず (group_replication_recovery_use_sslがOFFに設定されている場合)、Group Replication のレプリケーションユーザーアカウントがcaching_sha2_passwordプラグイン (MySQL 8.0 のデフォルト) またはsha256_passwordプラグインで認証される場合に適用されます。 (sha256_passwordの場合、group_replication_recovery_public_key_pathの設定は、MySQL が OpenSSL を使用して構築された場合にのみ適用されます。) 詳細は、セクション18.5.3.1.1「キャッシュ SHA-2 認証プラグインを使用するレプリケーションユーザー」を参照してください。 -
group_replication_recovery_reconnect_intervalコマンド行形式 --group-replication-recovery-reconnect-interval=#システム変数 group_replication_recovery_reconnect_intervalスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 60最小値 0最大値 31536000このシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_reconnect_intervalでは、分散リカバリに適したドナーがグループに見つからなかった場合の再接続試行の間隔を秒単位で指定します。 -
group_replication_recovery_retry_countコマンド行形式 --group-replication-recovery-retry-count=#システム変数 group_replication_recovery_retry_countスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 10最小値 0最大値 31536000このシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_retry_countは、参加しているメンバーが分散リカバリに使用可能なドナーへの接続を試みる回数を指定します。 -
group_replication_recovery_ssl_caコマンド行形式 --group-replication-recovery-ssl-ca=valueシステム変数 group_replication_recovery_ssl_caスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 このシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_ssl_caは、分散リカバリ接続用の信頼できる SSL 認証局のリストを含むファイルへのパスを指定します。 分散リカバリのための SSL の構成の詳細は、セクション18.5.2「Secure Socket Layer (SSL) を使用したグループ通信接続の保護」 を参照してください。このサーバーがクローニングをサポートするように設定されていて (セクション18.4.3.2「分散リカバリのためのクローニング」 を参照)、
group_replication_recovery_use_sslをONに設定している場合、Group Replication はクローン SSL オプションclone_ssl_caの設定をgroup_replication_recovery_ssl_caの設定と一致するように自動的に構成します。 -
group_replication_recovery_ssl_capathコマンド行形式 --group-replication-recovery-ssl-capath=valueシステム変数 group_replication_recovery_ssl_capathスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 このシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_ssl_capathは、分散リカバリ接続用の信頼できる SSL 認証局証明書を含むディレクトリへのパスを指定します。 分散リカバリのための SSL の構成の詳細は、セクション18.5.2「Secure Socket Layer (SSL) を使用したグループ通信接続の保護」 を参照してください。 -
group_replication_recovery_ssl_certコマンド行形式 --group-replication-recovery-ssl-cert=valueシステム変数 group_replication_recovery_ssl_certスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 このシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_ssl_certでは、分散リカバリ用のセキュアな接続を確立するために使用する SSL 証明書ファイルの名前を指定します。 分散リカバリのための SSL の構成の詳細は、セクション18.5.2「Secure Socket Layer (SSL) を使用したグループ通信接続の保護」 を参照してください。このサーバーがクローニングをサポートするように設定されていて (セクション18.4.3.2「分散リカバリのためのクローニング」 を参照)、
group_replication_recovery_use_sslをONに設定している場合、Group Replication はクローン SSL オプションclone_ssl_certの設定をgroup_replication_recovery_ssl_certの設定と一致するように自動的に構成します。 -
group_replication_recovery_ssl_cipherコマンド行形式 --group-replication-recovery-ssl-cipher=valueシステム変数 group_replication_recovery_ssl_cipherスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 このシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_ssl_cipherでは、SSL 暗号化に許可される暗号のリストを指定します。 分散リカバリのための SSL の構成の詳細は、セクション18.5.2「Secure Socket Layer (SSL) を使用したグループ通信接続の保護」 を参照してください。 -
group_replication_recovery_ssl_crlコマンド行形式 --group-replication-recovery-ssl-crl=valueシステム変数 group_replication_recovery_ssl_crlスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 ファイル名 このシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_ssl_crlは、証明書失効リストを含むファイルを含むディレクトリへのパスを指定します。 分散リカバリのための SSL の構成の詳細は、セクション18.5.2「Secure Socket Layer (SSL) を使用したグループ通信接続の保護」 を参照してください。 -
group_replication_recovery_ssl_crlpathコマンド行形式 --group-replication-recovery-ssl-crlpath=valueシステム変数 group_replication_recovery_ssl_crlpathスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 ディレクトリ名 このシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_ssl_crlpathは、証明書失効リストを含むファイルを含むディレクトリへのパスを指定します。 分散リカバリのための SSL の構成の詳細は、セクション18.5.2「Secure Socket Layer (SSL) を使用したグループ通信接続の保護」 を参照してください。 -
group_replication_recovery_ssl_keyコマンド行形式 --group-replication-recovery-ssl-key=valueシステム変数 group_replication_recovery_ssl_keyスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 このシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_ssl_keyでは、セキュアな接続の確立に使用する SSL キーファイルの名前を指定します。 分散リカバリのための SSL の構成の詳細は、セクション18.5.2「Secure Socket Layer (SSL) を使用したグループ通信接続の保護」 を参照してください。このサーバーがクローニングをサポートするように設定されていて (セクション18.4.3.2「分散リカバリのためのクローニング」 を参照)、
group_replication_recovery_use_sslをONに設定している場合、Group Replication はクローン SSL オプションclone_ssl_keyの設定をgroup_replication_recovery_ssl_keyの設定と一致するように自動的に構成します。 -
group_replication_recovery_ssl_verify_server_certコマンド行形式 --group-replication-recovery-ssl-verify-server-cert[={OFF|ON}]システム変数 group_replication_recovery_ssl_verify_server_certスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFこのシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_ssl_verify_server_certでは、分散リカバリ接続でドナーによって送信された証明書のサーバー共通名の値をチェックするかどうかを指定します。 分散リカバリのための SSL の構成の詳細は、セクション18.5.2「Secure Socket Layer (SSL) を使用したグループ通信接続の保護」 を参照してください。 -
group_replication_recovery_tls_ciphersuitesコマンド行形式 --group-replication-recovery-tls-ciphersuites=value導入 8.0.19 システム変数 group_replication_recovery_tls_ciphersuitesスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 NULLこのシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_tls_ciphersuitesでは、分散リカバリ接続の接続暗号化に TLSv1.3 が使用され、このサーバーインスタンスが分散リカバリ接続のクライアント (参加メンバー) である場合に、許可されている 1 つ以上の暗号スイートのコロン区切りリストを指定します。 TLSv1.3 の使用時にこのシステム変数がNULLに設定されている場合 (システム変数を設定しない場合のデフォルト)、セクション6.3.2「暗号化された接続 TLS プロトコルおよび暗号」 にリストされているように、デフォルトで有効になっている暗号スイートが許可されます。 このシステム変数が空の文字列に設定されている場合、暗号スイートは許可されないため、TLSv1.3 は使用されません。 このシステム変数は、MySQL 8.0.19 以降で使用できます。 分散リカバリのための SSL の構成の詳細は、セクション18.5.2「Secure Socket Layer (SSL) を使用したグループ通信接続の保護」 を参照してください。 -
group_replication_recovery_tls_versionコマンド行形式 --group-replication-recovery-tls-version=value導入 8.0.19 システム変数 group_replication_recovery_tls_versionスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 文字列 デフォルト値 TLSv1,TLSv1.1,TLSv1.2,TLSv1.3このシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_tls_versionでは、このサーバーインスタンスが分散リカバリ接続のクライアント (参加メンバー) である場合に、接続暗号化に許可される TLS プロトコルのカンマ区切りリストを指定します。 指定したバージョンが連続していることを確認します (たとえば、「TLSv1,TLSv1.1,TLSv1.2」)。 このシステム変数が設定されていない場合、デフォルトの 「TLSv1,TLSv1.1,TLSv1.2,TLSv1.3」 が使用されます。 クライアント (参加メンバー) およびサーバー (ドナー) としての各分散リカバリ接続に含まれるグループメンバーは、どちらもサポートするように設定されている最高のプロトコルバージョンをネゴシエートします。 このシステム変数は、MySQL 8.0.19 から使用できます。 分散リカバリのための SSL の構成の詳細は、セクション18.5.2「Secure Socket Layer (SSL) を使用したグループ通信接続の保護」 を参照してください。 -
group_replication_recovery_use_sslコマンド行形式 --group-replication-recovery-use-ssl[={OFF|ON}]システム変数 group_replication_recovery_use_sslスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 OFFこのシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_use_sslでは、グループメンバー間のグループレプリケーション分散リカバリ接続で SSL を使用するかどうかを指定します。 分散リカバリのための SSL の構成の詳細は、セクション18.5.2「Secure Socket Layer (SSL) を使用したグループ通信接続の保護」 を参照してください。このサーバーがクローニングをサポートするように設定されている場合 (セクション18.4.3.2「分散リカバリのためのクローニング」 を参照)、このオプションを
ONに設定すると、グループレプリケーションでは、リモートクローニング操作およびドナーのバイナリログからの状態転送に SSL が使用されます。 このオプションをOFFに設定すると、グループレプリケーションはリモートクローニング操作に SSL を使用しません。 -
group_replication_recovery_zstd_compression_levelコマンド行形式 --group-replication-recovery-zstd-compression-level=#導入 8.0.18 システム変数 group_replication_recovery_zstd_compression_levelスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 3最小値 1最大値 22このシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_recovery_zstd_compression_levelでは、zstd圧縮アルゴリズムを使用するグループレプリケーション分散リカバリ接続に使用する圧縮レベルを指定します。 許可されるレベルは 1 から 22 で、大きい値は圧縮レベルの増加を示します。 デフォルトのzstd圧縮レベルは 3 です。zstd圧縮を使用しない分散リカバリ接続の場合、この変数は無効です。詳細は、セクション4.2.8「接続圧縮制御」を参照してください。
-
group_replication_single_primary_modeコマンド行形式 --group-replication-single-primary-mode[={OFF|ON}]システム変数 group_replication_single_primary_modeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ONこのシステム変数は、グループ全体の構成設定です。 値の変更を有効にするには、すべてのグループメンバーで同じ値を持つ必要があり、グループレプリケーションの実行中は変更できず、グループ (
group_replication_bootstrap_group=ONを使用したサーバーによるブートストラップ) を完全に再起動する必要があります。 MySQL 8.0.16 から、group_replication_switch_to_single_primary_mode()およびgroup_replication_switch_to_multi_primary_mode()UDF を使用して、グループの実行中にこのシステム変数の値を変更できます。 詳細は、セクション18.4.1.2「グループモードの変更」を参照してください。group_replication_single_primary_modeは、読取り/書込みワークロードを処理する単一のサーバーを自動的に選択するようにグループに指示します。 このサーバーは PRIMARY で、その他はすべて SECONDARIES です。 -
コマンド行形式 --group-replication-ssl-mode=valueシステム変数 group_replication_ssl_modeスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 DISABLED有効な値 DISABLEDREQUIREDVERIFY_CAVERIFY_IDENTITYこのシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_ssl_modeは、グループレプリケーションメンバー間のグループ通信接続のセキュリティ状態を設定します。 使用可能な値は次のとおりです:- DISABLED
暗号化されていない接続を確立します (デフォルト)。
- REQUIRED
サーバーがセキュアな接続をサポートしている場合は、セキュアな接続を確立します。
- VERIFY_CA
REQUIREDと似ていますが、さらに、構成された認証局 (CA) 証明書に対してサーバー TLS 証明書を検証します。- VERIFY_IDENTITY
VERIFY_CAと似ていますが、さらに、サーバー証明書が接続が試行されるホストと一致することを確認します。
グループ通信用の SSL の構成の詳細は、セクション18.5.2「Secure Socket Layer (SSL) を使用したグループ通信接続の保護」 を参照してください。
-
group_replication_start_on_bootコマンド行形式 --group-replication-start-on-boot[={OFF|ON}]システム変数 group_replication_start_on_bootスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Boolean デフォルト値 ONこのシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_start_on_bootでは、サーバーの起動時にグループレプリケーションを自動的に起動するか (ON) 起動しないか (OFF) を指定します。 このオプションをONに設定すると、リモートクローニング操作を分散リカバリに使用した後、グループレプリケーションが自動的に再起動されます。サーバーの起動時に Group Replication を自動的に起動するには、
CHANGE REPLICATION SOURCE TO|CHANGE MASTER TOステートメントを使用して、分散リカバリのユーザー資格証明をサーバー上のレプリケーションメタデータリポジトリに格納する必要があります。 ユーザー資格証明をメモリーにのみ格納するSTART GROUP_REPLICATIONステートメントでユーザー資格証明を指定する場合は、group_replication_start_on_bootがOFFに設定されていることを確認します。 -
コマンド行形式 --group-replication-tls-source=value導入 8.0.21 システム変数 group_replication_tls_sourceスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 列挙 デフォルト値 mysql_main有効な値 mysql_mainmysql_adminこのシステム変数の値は、Group Replication の実行中に変更できますが、変更はグループメンバーで Group Replication を停止して再起動した後にのみ有効になります。
group_replication_tls_sourceは、Group Replication の TLS 材料のソースを指定します。 -
group_replication_transaction_size_limitコマンド行形式 --group-replication-transaction-size-limit=#システム変数 group_replication_transaction_size_limitスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 150000000最小値 0最大値 2147483647このシステム変数は、すべてのグループメンバーで同じ値を持つ必要があります。 このシステム変数の値は、Group Replication の実行中に変更できます。 変更はグループメンバーに対して即時に有効になり、そのメンバーで開始された次のトランザクションから適用されます。 このプロセス中、システム変数の値はグループメンバー間で異なってもかまいませんが、一部のトランザクションは拒否される可能性があります。
group_replication_transaction_size_limitは、レプリケーショングループが受け入れる最大トランザクションサイズをバイト単位で構成します。 このサイズより大きいトランザクションは受信側メンバーによってロールバックされ、グループにブロードキャストされません。 大規模なトランザクションでは、システムの速度が低下する原因となる可能性のあるメモリー割当て、または大規模なトランザクションの処理がビジー状態であるためにメンバーに障害が発生した疑いがあるネットワーク帯域幅消費の観点から、レプリケーショングループの問題が発生する可能性があります。このシステム変数が 0 に設定されている場合、グループが受け入れるトランザクションのサイズに制限はありません。 MySQL 8.0 からは、このシステム変数のデフォルト設定は 150000000 バイト (約 143 MB) です。 トランザクションの処理にかかる時間はそのサイズに比例することに注意して、グループが許容する必要がある最大メッセージサイズに応じて、このシステム変数の値を調整します。
group_replication_transaction_size_limitの値は、すべてのグループメンバーで同じである必要があります。 大規模トランザクションの軽減戦略の詳細は、セクション18.9.2「グループレプリケーションの制限事項」 を参照してください。 -
group_replication_unreachable_majority_timeoutコマンド行形式 --group-replication-unreachable-majority-timeout=#システム変数 group_replication_unreachable_majority_timeoutスコープ グローバル 動的 はい SET_VARヒントの適用いいえ 型 Integer デフォルト値 0最小値 0最大値 31536000このシステム変数の値は、Group Replication の実行中に変更でき、変更はただちに有効になります。 システム変数の現在の値は、動作が必要であることを意味する問題が発生したときに読み取られます。
group_replication_unreachable_majority_timeoutでは、ネットワークパーティションが不足し、大部分のメンバーがグループを離れるまで待機できないメンバーの秒数を指定します。 5 つのサーバー (S1、S2、S3、S4、S5) のグループでは、(S1、S2) と (S3、S4、S5) の間に切断がある場合、ネットワークパーティションがあります。 最初のグループ (S1、S2) は、半分を超えるグループにコンタクトできないため、少数民族になりました。 大多数のグループ (S3、S4、S5) が実行されている間、少数民族グループはネットワークの再接続を指定された時間待機します。 このシナリオの詳細は、セクション18.4.4「ネットワークパーティション化」 を参照してください。デフォルトでは、
group_replication_unreachable_majority_timeoutは 0 に設定されています。これは、ネットワークパーティションのために少数民族で自身を検索するメンバーが、グループから離れるまで永久に待機することを意味します。 タイムアウトを設定した場合、指定した時間が経過すると、その少数民族によって処理されたすべての保留中のトランザクションがロールバックされ、少数パーティション内のサーバーはERROR状態に移行します。 メンバーのgroup_replication_autorejoin_triesシステム変数が自動再結合の試行回数を指定するように設定されている場合、スーパー読取り専用モードでは、指定された回数だけグループへの再結合が試行されます。 メンバーに自動再結合の試行が指定されていない場合、または指定された試行回数を使い果たした場合は、システム変数group_replication_exit_state_actionで指定されたアクションに従います。警告対称グループがあり、たとえば (S0、S2) のメンバーが 2 つのみで、ネットワークパーティションがあり、大部分がない場合、構成されたタイムアウトの後、すべてのメンバーが
ERROR状態になります。このオプションの使用方法の詳細は、セクション18.6.6.2「使用できない大多数のタイムアウト」 を参照してください。
このセクションでは、グループレプリケーションに関する情報を提供する status 変数について説明します。 変数の意味は次のとおりです:
-
group_replication_primary_memberグループがシングルプライマリモードで動作している場合、プライマリメンバー UUID を表示します。 グループがマルチプライマリモードで動作している場合は、空の文字列が表示されます。
警告group_replication_primary_memberステータス変数は非推奨になり、将来のバージョンで削除される予定です。セクション18.1.3.1.2「プライマリの検索」を参照してください。