您也可以使用 PRIVILEGE_CHECKS_USER
帳戶來保護群組複寫使用的兩個複寫套用程式執行緒。每個群組成員上的 group_replication_applier
執行緒用於套用群組交易,而每個群組成員上的 group_replication_recovery
執行緒用於在成員加入或重新加入群組時,從二進制日誌進行狀態傳輸,作為分散式復原的一部分。
若要保護其中一個執行緒,請停止群組複寫,然後發出 CHANGE REPLICATION SOURCE TO
陳述式,並使用 PRIVILEGE_CHECKS_USER
選項,指定 group_replication_applier
或 group_replication_recovery
作為通道名稱。例如
mysql> STOP GROUP_REPLICATION;
mysql> CHANGE REPLICATION SOURCE TO PRIVILEGE_CHECKS_USER = 'gr_repl'@'%.example.com'
FOR CHANNEL 'group_replication_recovery';
mysql> FLUSH PRIVILEGES;
mysql> START GROUP_REPLICATION;
對於群組複寫通道,當通道建立時,會自動啟用 REQUIRE_ROW_FORMAT
設定,且無法停用,因此您不需要指定此設定。
群組複製 (Group Replication) 要求群組中要複製的每個資料表都必須定義主索引鍵 (primary key),或者具有等效的主索引鍵,其中等效的主索引鍵是指非空的唯一索引鍵 (non-null unique key)。群組複製並非使用 sql_require_primary_key
系統變數執行的檢查,而是有其內建的一組主索引鍵或等效主索引鍵的檢查。您可以將 CHANGE REPLICATION SOURCE TO
陳述式的 REQUIRE_TABLE_PRIMARY_KEY_CHECK
選項設定為 ON
,用於群組複製通道。然而,請注意,您可能會發現某些在群組複製內建檢查下允許的交易,在您設定 sql_require_primary_key = ON
或 REQUIRE_TABLE_PRIMARY_KEY_CHECK = ON
時所執行的檢查下是不允許的。基於這個原因,新的和升級的群組複製通道會將 REQUIRE_TABLE_PRIMARY_KEY_CHECK
設定為預設值 STREAM
,而不是 ON
。
如果在群組複製中為了分散式復原使用了遠端複製操作(請參閱 第 20.5.4.2 節「用於分散式復原的複製」),則捐贈者 (donor) 的 PRIVILEGE_CHECKS_USER
帳戶和相關設定會被複製到加入的成員。如果加入的成員設定為在啟動時啟動群組複製,它會自動使用該帳戶針對適當的複製通道進行權限檢查。