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


MySQL 8.0 リファレンスマニュアル  /  ...  /  グループレプリケーションチャネルの権限チェック

17.3.3.2 グループレプリケーションチャネルの権限チェック

MySQL 8.0.19 から、非同期レプリケーションおよび準同期レプリケーションを保護するだけでなく、PRIVILEGE_CHECKS_USER アカウントを使用して、Group Replication で使用される 2 つのレプリケーションアプライヤスレッドを保護することもできます。 各グループメンバーの group_replication_applier スレッドはグループトランザクションの適用に使用され、各グループメンバーの group_replication_recovery スレッドは、メンバーがグループに参加または再参加したときの分散リカバリの一環として、バイナリログからの状態転送に使用されます。

これらのスレッドのいずれかを保護するには、Group Replication を停止し、PRIVILEGE_CHECKS_USER オプションとともに CHANGE REPLICATION SOURCE TO ステートメント (MySQL 8.0.23) または CHANGE MASTER TO ステートメント (MySQL 8.0.23 より前) を発行し、チャネル名として group_replication_applier または group_replication_recovery を指定します。。 例:

mysql> STOP GROUP_REPLICATION;
mysql> CHANGE MASTER TO PRIVILEGE_CHECKS_USER = 'gr_repl'@'%.example.com' 
          FOR CHANNEL 'group_replication_recovery';
mysql> START GROUP_REPLICATION;

Or from MySQL 8.0.23:
mysql> STOP GROUP_REPLICATION;
mysql> CHANGE REPLICATION SOURCE TO PRIVILEGE_CHECKS_USER = 'gr_repl'@'%.example.com' 
          FOR CHANNEL 'group_replication_recovery';
mysql> START GROUP_REPLICATION;

グループレプリケーションチャネルの場合、REQUIRE_ROW_FORMAT 設定はチャネルの作成時に自動的に有効化され、無効化できないため、指定する必要はありません。

重要

MySQL 8.0.19 では、Group Replication の実行中に PRIVILEGE_CHECKS_USER オプションを指定して CHANGE REPLICATION SOURCE TO|CHANGE MASTER TO ステートメントを発行しないでください。 このアクションにより、チャネルのリレーログファイルがパージされ、受信してリレーログにキューに入れられたがまだ適用されていないトランザクションが失われる可能性があります。

グループレプリケーションでは、グループによってレプリケートされるすべてのテーブルに、定義済の主キーまたは同等の主キー (同等のものが NULL 以外の一意キー) がある必要があります。 グループレプリケーションには、sql_require_primary_key システム変数によって実行されるチェックを使用するかわりに、主キーまたは主キーに相当する独自の組込みチェックセットがあります。 グループレプリケーションチャネルの場合、CHANGE REPLICATION SOURCE TO | CHANGE MASTER TO ステートメントの REQUIRE_TABLE_PRIMARY_KEY_CHECK オプションを ON に設定できます。 ただし、グループレプリケーションの組込みチェックで許可されている一部のトランザクションは、sql_require_primary_key = ON または REQUIRE_TABLE_PRIMARY_KEY_CHECK = ON の設定時に実行されるチェックでは許可されない場合があることに注意してください。 このため、MySQL 8.0.20 の新規およびアップグレードされたグループレプリケーションチャネル (オプションが導入された場合) では、REQUIRE_TABLE_PRIMARY_KEY_CHECKON ではなく STREAM のデフォルトに設定されています。

Group Replication (セクション18.4.3.2「分散リカバリのためのクローニング」 を参照) の分散リカバリにリモートクローニング操作が使用されている場合、MySQL 8.0.19 から、ドナーの PRIVILEGE_CHECKS_USER アカウントおよび関連設定が結合メンバーにクローニングされます。 参加メンバーがブート時にグループレプリケーションを開始するように設定されている場合、適切なレプリケーションチャネルの権限チェックにアカウントが自動的に使用されます。

MySQL 8.0.18 では、多くの制限により、グループレプリケーションチャネルで PRIVILEGE_CHECKS_USER アカウントを使用しないことをお薦めします。


関連キーワード:  グループ, チャネル, 設定, ソース, ステートメント, トランザクション, チェック, バイナリ, ベース, GTID