MySQL Shell 9.0  /  MySQL InnoDB 複本集  /  變更主要執行個體

9.7 變更主要執行個體

使用 ReplicaSet.setPrimaryInstance() 操作來安全地將複本集的主要執行個體變更為另一個執行個體。目前的主要執行個體會降級為次要執行個體並設為唯讀,而升級的執行個體會成為新的主要執行個體並設為讀寫。所有其他次要執行個體都會更新,以便從新的主要執行個體進行複寫。已針對複本集進行開機的 MySQL Router 執行個體會自動開始將讀寫用戶端重新導向至新的主要執行個體。

為了安全地變更主要執行個體,MySQL Shell 必須能夠連線所有複本集執行個體,且這些執行個體必須具有一致的 GTID_EXECUTED 集。如果主要執行個體無法使用,且沒有任何方法可以還原它,強制容錯移轉可能是唯一選項,請參閱第 9.8 節「強制使用新的主要執行個體」

在變更主要執行個體期間,升級的執行個體會與舊的主要執行個體同步,確保在認可拓撲變更之前,會套用主要執行個體上的所有交易。如果此同步步驟花費太長時間或在任何次要執行個體上無法執行,則會中止此操作。在這種情況下,必須修復次要執行個體或從複本集中移除,才能進行容錯移轉。