本節說明升級群組成員所需的步驟。此程序是 第 20.8.3.3 節「群組複寫線上升級方法」中所述方法的一部分。升級群組成員的過程對所有方法而言都是相同的,並且會先說明。加入已升級成員的方式可能取決於您所遵循的方法,以及其他因素,例如群組是否以單主模式或多主模式運作。您使用就地或佈建方式升級伺服器執行個體的方式,不會影響此處所述的方法。
升級成員的過程包括將其從群組中移除,遵循您選擇的升級成員方法,然後將升級後的成員重新加入群組。在單主群組中升級成員的建議順序是先升級所有次要節點,然後最後升級主要節點。如果主要節點在次要節點之前升級,則會選擇使用較舊 MySQL 版本的新主要節點,但不需要此步驟。
若要升級群組成員
將用戶端連線至群組成員並發出
STOP GROUP_REPLICATION
。在繼續之前,請監控replication_group_members
表格,確保成員的狀態為OFFLINE
。停用群組複寫自動啟動,以便在升級後安全連線至成員並設定它,而不會透過設定
group_replication_start_on_boot=0
重新加入群組。重要如果升級後的成員具有
group_replication_start_on_boot=1
,則它可能會在您執行 MySQL 升級程序之前重新加入群組,並可能導致問題。例如,如果升級失敗並且伺服器再次重新啟動,則可能已損壞的伺服器可能會嘗試加入群組。停止成員,例如使用 mysqladmin shutdown 或
SHUTDOWN
陳述式。群組中的任何其他成員會繼續執行。使用就地或佈建方式升級成員。如需詳細資訊,請參閱 第 3 章《升級 MySQL》。當重新啟動升級後的成員時,由於
group_replication_start_on_boot
設定為 0,因此群組複寫不會在執行個體上啟動,因此它不會重新加入群組。在成員上執行 MySQL 升級程序後,必須將
group_replication_start_on_boot
設定為 1,以確保在重新啟動後正確啟動群組複寫。重新啟動成員。連線至已升級的成員並發出
START GROUP_REPLICATION
。這會將成員重新加入群組。群組複寫中繼資料已在升級後的伺服器上就緒,因此通常不需要重新設定群組複寫。伺服器必須趕上伺服器離線時群組處理的任何交易。一旦它趕上群組,它就會成為群組的線上成員。注意升級伺服器所需的時間越長,成員離線的時間就越長,因此伺服器在新增回群組時趕上的時間就越長。
當已升級的成員加入任何成員執行較早 MySQL 伺服器版本的群組時,已升級的成員會以 super_read_only=on
加入。這可確保在所有成員都執行較新版本之前,不會對升級後的成員進行任何寫入。在多主模式群組中,當升級成功完成且群組已準備好處理交易時,必須將預期作為可寫入主要節點的成員設定為讀寫模式。當群組的所有成員都已升級到相同的版本時,它們都會自動變回讀寫模式。