本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon 中的主動主動叢集透過在多個執行個體之間分配工作負載,RDS提供增強的可用性和可擴展性。不過,使用此架構時,需要注意重要的限制和考量事項。
以下各節概述複寫延遲、衝突解決、資源分配和容錯移轉行為等關鍵因素。了解這些考量因素有助於確保主動-主動叢集部署的最佳效能和可靠性。
RDS 適用於 MySQL Active-active 叢集的限制
下列限制適用於 RDS for My 的主動-主動叢集SQL:
-
主要使用者名稱不能
rdsgrprepladmin
用於作用中-作用中叢集中的資料庫執行個體。此使用者名稱會保留給群組複寫連線。 -
對於作用中叢集中具有僅供讀取複本的資料庫執行個體,除了 以外的長時間複寫狀態
Replicating
可能會導致日誌檔案超過儲存限制。如需僅供讀取複本狀態的資訊,請參閱 監控僅供讀取複本。 -
作用中叢集中的資料庫執行個體不支援藍/綠部署。如需詳細資訊,請參閱使用 Amazon RDS 藍/綠部署進行資料庫更新。
-
作用中-作用中叢集中的資料庫執行個體不支援 Kerberos 身分驗證。如需詳細資訊,請參閱使用 Kerberos Amazon RDS for My 的身分驗證SQL。
-
多可用區域資料庫叢集中的資料庫執行個體無法新增至作用中叢集。不過,多可用區域資料庫執行個體部署中的資料庫執行個體可以新增至作用中叢集。如需詳細資訊,請參閱設定和管理 Amazon 的多可用區部署 RDS。
-
沒有主索引鍵的資料表不會在作用中叢集中複寫,因為群組複寫外掛程式會拒絕寫入。
-
非 InnoDB 資料表不會在作用中叢集中複寫。
-
主動-主動叢集不支援叢集中不同資料庫執行個體的並行DML和DDL陳述式。
-
您無法將作用中叢集設定為針對群組的複寫模式使用單一主要模式。對於此組態,我們建議您改用多可用區域資料庫叢集。如需詳細資訊,請參閱適用於 Amazon 的多可用區域資料庫叢集部署 RDS。
-
作用中-作用中叢集中的資料庫執行個體不支援多來源複寫。
-
跨區域作用中叢集無法強制對群組複寫連線進行憑證授權機構 (CA) 驗證。
我的SQL主動-主動叢集RDS的考量和最佳實務
將 RDS 用於 MySQL Active-active 叢集之前,請檢閱下列考量事項和最佳實務:
-
主動-主動叢集不能有九個以上的資料庫執行個體。
-
使用群組複寫外掛程式,您可以控制作用中叢集的交易一致性保證。如需詳細資訊,請參閱 MySQL 文件中的交易一致性保證
。 -
當不同的資料庫執行個體更新作用中叢集中的相同資料列時,可能會發生衝突。如需衝突和衝突解決的相關資訊,請參閱我的SQL文件中的群組複寫
。 -
若要容錯,請在作用中叢集中包含至少三個資料庫執行個體。可以使用一個或兩個資料庫執行個體來設定作用中叢集,但叢集無法容錯。如需容錯能力的詳細資訊,請參閱 MySQL 文件中的容錯能力
。 -
當資料庫執行個體加入現有的作用中叢集,並且執行與叢集中最低引擎版本的相同引擎版本時,資料庫執行個體會以讀寫模式加入。
-
當資料庫執行個體加入現有的作用中叢集,且執行的引擎版本高於叢集中最低的引擎版本時,資料庫執行個體必須維持唯讀模式。
-
如果您在資料庫
rds.group_replication_enabled
參數群組1
中將資料庫執行個體的參數設定為 以啟用資料庫執行個體的群組複寫,但複寫尚未啟動或無法啟動,則資料庫執行個體會處於 super-read-only 模式,以防止資料不一致。如需模式的相關資訊 super-read-only,請參閱我的SQL文件。 -
您可以升級作用中叢集中的資料庫執行個體,但資料庫執行個體是唯讀的,直到作用中叢集中的所有其他資料庫執行個體升級至相同的引擎版本或更高的引擎版本為止。當您升級資料庫執行個體時,資料庫執行個體會在升級完成時自動聯結相同的作用中叢集。若要避免意外切換為資料庫執行個體的唯讀模式,請停用自動次要版本升級。如需有關升級 MySQL 資料庫執行個體的資訊,請參閱 RDS 適用於 MySQL 資料庫引擎的 升級。
-
您可以將多可用區域資料庫執行個體部署中的資料庫執行個體新增至現有的作用中叢集。您也可以將作用中叢集中的單一可用區域資料庫執行個體轉換為多可用區域資料庫執行個體部署。如果多可用區域部署中的主要資料庫執行個體失敗,則該主要執行個體會容錯移轉至待命執行個體。新的主要資料庫執行個體會在容錯移轉完成後自動加入相同的叢集。如需多可用區域資料庫執行個體部署的詳細資訊,請參閱 Amazon 的多可用區域資料庫執行個體部署 RDS。
-
我們建議作用中-作用中叢集中的資料庫執行個體有不同的維護時段時間範圍。此做法可避免叢集中的多個資料庫執行個體同時離線進行維護。如需詳細資訊,請參閱Amazon RDS維護時段。
-
主動-主動叢集可用於資料庫執行個體之間的SSL連線。若要設定SSL連線,請設定 group_replication_recovery_use_ssl
和 group_replication_ssl_mode 參數。這些參數的值必須符合作用中-作用中叢集中的所有資料庫執行個體。 目前,主動-主動叢集不支援憑證授權單位 (CA) 驗證其之間的連線 AWS 區域。因此,group_replication_ssl_mode
參數必須設定為 DISABLED
(預設值) 或跨區域叢集REQUIRED
的 參數。 -
RDS for MySQL 主動-主動叢集以多主要模式執行。 group_replication_enforce_update_everywhere_checks
的預設值為 ON
,而 參數為靜態。當此參數設為 時ON
,應用程式無法插入到具有層疊外部金鑰限制條件的資料表。 -
RDS for MySQL Active-active 叢集使用 MySQL 通訊堆疊來確保連線安全,而不是 XCOM。如需詳細資訊,請參閱 MySQL 文件中的連線安全管理通訊堆疊
。 -
當資料庫參數群組與作用中叢集中的資料庫執行個體建立關聯時,我們建議僅將此資料庫參數群組與叢集中的其他資料庫執行個體建立關聯。
-
主動-主動叢集僅支援 RDS MySQL 資料庫執行個體。這些資料庫執行個體必須執行支援的資料庫引擎版本。
-
當作用中叢集中的資料庫執行個體發生非預期的故障時, 會自動RDS開始復原資料庫執行個體。如果資料庫執行個體未復原,建議您使用叢集中運作狀態良好的資料庫執行個體執行 point-in-time復原,以新的資料庫執行個體取代它。如需說明,請參閱 使用 point-in-time復原將資料庫執行個體新增至作用中叢集。
-
您可以刪除作用中叢集中的資料庫執行個體,而不會影響叢集中的其他資料庫執行個體。如需刪除資料庫執行個體的相關資訊,請參閱刪除資料庫執行個體。
-
當資料庫執行個體意外離開作用中叢集時,預設會將
group_replication_exit_state_action
參數變更為OFFLINE_MODE
。在此狀態下,資料庫執行個體無法存取,您必須重新啟動資料庫執行個體,才能將其恢復上線,並重新加入叢集。您可以透過修改自訂group_replication_exit_state_action
參數群組中的 參數來變更此行為。透過將 參數設定為READ_ONLY
,當資料庫執行個體意外離開叢集時,它會進入超級唯讀狀態,而不是離線。