群組複寫可讓您藉由將系統狀態複寫到一組伺服器,來建立具有備援的容錯系統。即使部分伺服器後續發生故障,只要不是全部或大多數,系統仍然可用。視故障伺服器的數量而定,群組的效能或可擴展性可能會降低,但仍然可用。伺服器故障是獨立且各自隔離的。群組成員服務會追蹤這些故障,該服務依賴分散式故障偵測器,該偵測器能夠在任何伺服器離開群組時發出訊號,無論是自願離開或因意外停止而離開。有一種分散式復原程序,可確保伺服器在加入群組時,會自動更新到最新狀態。不需要伺服器容錯移轉,而且多來源到處更新的特性可確保即使在單一伺服器故障的情況下,更新也不會遭到封鎖。總而言之,MySQL 群組複寫保證資料庫服務持續可用。
務必瞭解,雖然資料庫服務可用,但在發生意外伺服器退出事件時,連線到它的那些用戶端必須重新導向,或容錯移轉到不同的伺服器。這並非群組複寫嘗試解決的問題。連線器、負載平衡器、路由器或某種形式的中介軟體更適合處理這個問題。例如,請參閱 MySQL Router 8.4。
總而言之,MySQL 群組複寫提供高度可用、高度彈性、可靠的 MySQL 服務。
提示
若要部署 MySQL 的多個執行個體,您可以使用 InnoDB 叢集,讓您可以在 MySQL Shell 中輕鬆管理一組 MySQL 伺服器執行個體。InnoDB 叢集會在程式化環境中封裝 MySQL 群組複寫,讓您能夠輕鬆部署 MySQL 執行個體叢集,以實現高可用性。此外,InnoDB 叢集會與 MySQL Router 無縫介接,讓您的應用程式能夠連線到叢集,而無需撰寫自己的容錯移轉程序。不過,對於不需要高可用性的類似使用案例,您可以使用 InnoDB ReplicaSet。MySQL Shell 的安裝指示可以在這裡找到。