在線上升級程序期間,如果群組處於單主機模式,所有目前未離線進行升級的伺服器會如先前一樣運作。群組會在必要時選出新的主要伺服器,並遵循第 20.1.3.1 節「單主機模式」中描述的選取原則。請注意,如果您需要主要伺服器在整個過程中保持不變 (除非它本身正在升級),您必須先將所有次要伺服器升級至高於或等於目標主要成員版本的版本,然後最後升級主要伺服器。除非主要伺服器執行群組中最低的 MySQL 伺服器版本,否則它無法保持為主要伺服器。在主要伺服器升級完成後,您可以使用 group_replication_set_as_primary()
函數重新指定其為主要伺服器。
如果群組處於多主機模式,則在升級程序期間,可執行寫入的線上成員會較少,因為升級後的成員會在升級後以唯讀模式加入。當所有成員都升級至相同的版本時,它們會自動變回讀寫模式。
若要處理問題狀況,例如,如果您必須將升級回滾至先前的主要版本,或是在緊急情況下將額外的容量新增至群組,可以允許成員從其他無法允許的版本加入線上群組。在這種情況下,可以使用已淘汰的群組複製系統變數 group_replication_allow_local_lower_version_join
來覆寫一般的相容性原則。
將 group_replication_allow_local_lower_version_join
設定為 ON
並不會使新成員與群組相容;這樣做會允許它加入群組,而不會有任何針對現有成員不相容行為的防護措施。因此,這只能在特定情況下謹慎使用,而且您必須採取額外的預防措施,以避免新成員因正常的群組活動而失敗。如需更多資訊,請參閱此變數的說明。
您應該知道 group_replication_allow_local_lower_version_join
已被淘汰;預期在 MySQL 的未來版本中會移除。設定它會產生 ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT
層級警告。沒有計劃進行取代。