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_CHECK
が ON
ではなく STREAM
のデフォルトに設定されています。
Group Replication (セクション18.4.3.2「分散リカバリのためのクローニング」 を参照) の分散リカバリにリモートクローニング操作が使用されている場合、MySQL 8.0.19 から、ドナーの PRIVILEGE_CHECKS_USER
アカウントおよび関連設定が結合メンバーにクローニングされます。 参加メンバーがブート時にグループレプリケーションを開始するように設定されている場合、適切なレプリケーションチャネルの権限チェックにアカウントが自動的に使用されます。
MySQL 8.0.18 では、多くの制限により、グループレプリケーションチャネルで PRIVILEGE_CHECKS_USER
アカウントを使用しないことをお薦めします。