MySQL 9.0 版本資訊
本節說明如何變更群組執行的模式,無論是單主節點或多主節點。用於變更群組模式的函式可以在任何成員上執行。
使用 group_replication_switch_to_single_primary_mode()
函式,透過發出以下指令,將以多主節點模式執行的群組變更為單主節點模式
SELECT group_replication_switch_to_single_primary_mode()
當您變更為單主節點模式時,也會在所有群組成員上停用嚴格的一致性檢查,這是單主節點模式所要求的 (group_replication_enforce_update_everywhere_checks=OFF
)。
如果未傳入任何字串,則產生的單主節點群組中新主要節點的選取會遵循第 20.1.3.1 節「單主節點模式」中所述的選取原則。若要覆寫選取程序並將多主節點群組的特定成員設定為程序中的新主要節點,請取得成員的 server_uuid
並將其傳遞至 group_replication_switch_to_single_primary_mode()
。例如,發出以下指令
SELECT group_replication_switch_to_single_primary_mode(member_uuid);
使用 group_replication_switch_to_multi_primary_mode()
函式,透過發出以下指令,將以單主節點模式執行的群組變更為多主節點模式
SELECT group_replication_switch_to_multi_primary_mode()
在一些協調的群組操作以確保您的資料的安全性和一致性之後,屬於該群組的所有成員都會變成主要節點。
當您將以單主節點模式執行的群組變更為以多主節點模式執行時,如果執行 MySQL 8.0.17 或更高版本的成員執行的 MySQL 伺服器版本高於群組中存在的最低版本,則會自動將其置於唯讀模式。執行 MySQL 8.0.16 或更低版本的成員不會執行此檢查,並且一律會置於讀寫模式。
在動作執行時,您可以透過發出以下指令來檢查其進度
SELECT event_name, work_completed, work_estimated FROM performance_schema.events_stages_current WHERE event_name LIKE "%stage/group_rpl%";
+----------------------------------------------------------------------+----------------+----------------+
| event_name | work_completed | work_estimated |
+----------------------------------------------------------------------+----------------+----------------+
| stage/group_rpl/Multi-primary Switch: applying buffered transactions | 0 | 1 |
+----------------------------------------------------------------------+----------------+----------------+