本節說明升級群組成員所需的步驟。此程序是 第 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 Server,則升級後的成員會以 super_read_only=on
的狀態加入。這可確保在所有成員都執行較新版本之前,不會對升級後的成員進行寫入操作。在多主模式群組中,當升級成功完成且群組準備好處理交易時,預期作為可寫入主節點的成員必須設定為讀寫模式。當群組的所有成員都升級到相同的版本時,它們都會自動變回讀寫模式。