

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 主動-主動叢集的限制與考量事項
<a name="mysql-active-active-clusters-considerations-limitations"></a>

Amazon RDS 中的主動-主動叢集透過在多個執行個體之間分配工作負載來提供更高的可用性和可擴展性。不過，使用此架構時，需要注意重要的限制和考量事項。

下列各節概述複寫延遲、衝突解決、資源配置和容錯移轉行為等關鍵因素。了解這些考量有助於確保主動-主動叢集部署的最佳效能和可靠性。

**Topics**
+ [RDS for MySQL 主動-主動叢集的限制](#mysql-active-active-clusters-limitations)
+ [RDS for MySQL 主動-主動叢集的考量和最佳實務](#mysql-active-active-clusters-considerations)

## RDS for MySQL 主動-主動叢集的限制
<a name="mysql-active-active-clusters-limitations"></a>

下列限制適用於 RDS for MySQL 的主動-主動叢集：
+ 針對主動-主動叢集中的資料庫執行個體，主要使用者名稱不能為 `rdsgrprepladmin`。此使用者名稱會保留給群組複寫連線。
+ 對於主動-主動叢集中具有僅供讀取複本的資料庫執行個體，`Replicating` 以外的長時間複寫狀態可能會導致日誌檔案超過儲存限制。如需僅供讀取複本狀態的相關資訊，請參閱 [監控僅供讀取複本](USER_ReadRepl.Monitoring.md)。
+ 主動-主動叢集中的資料庫執行個體不支援藍/綠部署。如需詳細資訊，請參閱[使用 Amazon RDS 藍/綠部署進行資料庫更新](blue-green-deployments.md)。
+ 主動-主動叢集中的資料庫執行個體不支援 Kerberos 身分驗證。如需詳細資訊，請參閱[對 Amazon RDS for MySQL 使用 Kerberos 身分驗證](mysql-kerberos.md)。
+ 無法將多可用區域資料庫叢集中的資料庫執行個體新增至主動-主動叢集。不過，多可用區域資料庫執行個體部署中的資料庫執行個體可以新增至主動-主動叢集。如需詳細資訊，請參閱[設定及管理 Amazon RDS 的多可用區域部署](Concepts.MultiAZ.md)。
+ 沒有主索引鍵的資料表不會在主動-主動叢集中進行複寫，因為群組複寫外掛程式會拒絕寫入。
+ 非 InnoDB 資料表不會在主動-主動叢集中進行複寫。
+ 主動-主動叢集不支援叢集中不同資料庫執行個體上的並行 DML 和 DDL 陳述式。
+ 您無法將主動-主動叢集設定為針對群組的複寫模式使用單一主要模式。對於此組態，我們建議改用多可用區域資料庫叢集。如需詳細資訊，請參閱[Amazon RDS 的多可用區域資料庫叢集部署](multi-az-db-clusters-concepts.md)。
+ 主動-主動叢集中的資料庫執行個體不支援多來源複寫。
+ 跨區域主動-主動叢集無法強制執行群組複寫連線的憑證認證機構 (CA) 驗證。

## RDS for MySQL 主動-主動叢集的考量和最佳實務
<a name="mysql-active-active-clusters-considerations"></a>

在使用 RDS for MySQL 主動-主動叢集之前，請檢閱下列考量事項和最佳實務：
+ 主動-主動叢集不能有九個以上的資料庫執行個體。
+ 您可以使用群組複寫外掛程式來控制主動-主動叢集的交易一致性保證。如需詳細資訊，請參閱 MySQL 文件中的[交易一致性保證](https://dev.mysql.com/doc/refman/8.0/en/group-replication-consistency-guarantees.html)。
+ 當不同的資料庫執行個體更新主動-主動叢集中的相同資料列時，可能會發生衝突。如需有關衝突和衝突解決的資訊，請參閱 MySQL 文件中的[群組複寫](https://dev.mysql.com/doc/refman/8.0/en/group-replication-summary.html)。
+ 針對容錯，請在主動-主動叢集中包含至少三個資料庫執行個體。您可以設定僅具有一或兩個資料庫執行個體的主動-主動叢集，但叢集無法容錯。如需容錯的詳細資訊，請參閱 MySQL 文件中的[容錯](https://dev.mysql.com/doc/refman/8.0/en/group-replication-fault-tolerance.html)。
+ 當資料庫執行個體加入現有的主動-主動叢集，並執行與叢集中最低引擎版本相同的引擎版本時，資料庫執行個體會以讀寫模式加入。
+ 當資料庫執行個體加入現有的主動-主動叢集，並執行高於叢集中最低引擎版本的引擎版本時，資料庫執行個體必須保持在讀寫模式。
+ 如果您透過在資料庫參數群組中將資料庫執行個體的 `rds.group_replication_enabled` 參數設定為 `1` 來啟用資料庫執行個體的群組複寫，但複寫尚未啟動或無法啟動，則資料庫執行個體會置於 super-read-only 模式，以防止資料不一致。如需 super-read-only 模式的相關資訊，請參閱 [MySQL 文件](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_super_read_only)。
+ 您可以升級主動-主動叢集中的資料庫執行個體，但資料庫執行個體是唯讀的，直到主動-主動叢集中的所有其他資料庫執行個體都升級至相同的引擎版本或更高的引擎版本為止。升級資料庫執行個體時，資料庫執行個體在升級完成時，會自動加入相同的主動-主動叢集。若要避免意外切換至資料庫執行個體的唯讀模式，請停用其自動次要版本升級。如需升級 MySQL 資料庫執行個體的相關資訊，請參閱[RDS for MySQL 資料庫引擎的升級](USER_UpgradeDBInstance.MySQL.md)。
+ 您可以將多可用區域資料庫執行個體部署中的資料庫執行個體新增至現有的主動-主動叢集。您也可以將主動-主動叢集中的單一可用區域資料庫執行個體轉換為多可用區域資料庫執行個體部署。如果多可用區部署中的主要資料庫執行個體失敗，則該主要執行個體會容錯移轉至待命執行個體。新的主要資料庫執行個體會在容錯移轉完成後自動加入相同的叢集。如需多可用區域資料庫部署的詳細資訊，請參閱 [Amazon RDS 的多可用區域資料庫執行個體部署](Concepts.MultiAZSingleStandby.md)。
+ 我們建議主動-主動叢集中的資料庫執行個體在其維護時段採用不同的時間範圍。此實務可避免叢集中的多個資料庫執行個體同時離線進行維護。如需詳細資訊，請參閱[Amazon RDS 維護時段](USER_UpgradeDBInstance.Maintenance.md#Concepts.DBMaintenance)。
+ 主動-主動叢集可以使用 SSL 進行資料庫執行個體之間的連線。若要設定 SSL 連線，請設定 [ group\$1replication\$1recovery\$1use\$1ssl](https://dev.mysql.com/doc/refman/8.0/en/group-replication-system-variables.html#sysvar_group_replication_recovery_use_ssl) 和 [group\$1replication\$1ssl\$1mode](https://dev.mysql.com/doc/refman/8.0/en/group-replication-system-variables.html#sysvar_group_replication_ssl_mode) 參數。這些參數的值必須符合主動-主動叢集中的所有資料庫執行個體。

  目前，主動-主動叢集不支援 AWS 區域之間連線的憑證認證機構 (CA) 驗證。因此，[group\$1replication\$1ssl\$1mode](https://dev.mysql.com/doc/refman/8.0/en/group-replication-system-variables.html#sysvar_group_replication_ssl_mode) 參數必須設定為 `DISABLED` (預設值) 或 `REQUIRED` (跨區域叢集)。
+ RDS for MySQL 主動-主動叢集會以多重主要模式執行。[ group\$1replication\$1enforce\$1update\$1everywhere\$1checks](https://dev.mysql.com/doc/refman/8.0/en/group-replication-system-variables.html#sysvar_group_replication_enforce_update_everywhere_checks) 的預設值為 `ON`，而參數為靜態。當此參數設為 `ON` 時，應用程式無法插入具有串聯外部金鑰限制條件的資料表。
+ RDS for MySQL 主動-主動叢集使用 MySQL 通訊堆疊來確保連線安全性 (而非 XCOM)。如需詳細資訊，請參閱 MySQL 文件中的[連線安全管理通訊堆疊](https://dev.mysql.com/doc/refman/8.0/en/group-replication-connection-security.html)。
+ 當資料庫參數群組與主動-主動叢集中的資料庫執行個體建立關聯時，我們建議僅將此資料庫參數群組與叢集中的其他資料庫執行個體建立關聯。
+ 主動-主動叢集僅支援 RDS for MySQL 資料庫執行個體。這些資料庫執行個體必須執行支援的資料庫引擎版本。
+ 當主動-主動叢集中的資料庫執行個體發生未預期的失敗時，RDS 會自動開始復原資料庫執行個體。如果資料庫執行個體未復原，我們建議使用叢集中運作狀態良好的資料庫執行個體來執行時間點復原，將其取代為新的資料庫執行個體。如需說明，請參閱[使用時間點復原將資料庫執行個體新增至主動-主動叢集](mysql-active-active-clusters-adding.md#mysql-active-active-clusters-adding-pitr)。
+ 您可以刪除主動-主動叢集中的資料庫執行個體，而不會影響叢集中的其他資料庫執行個體。如需刪除資料庫執行個體的相關資訊，請參閱[刪除資料庫執行個體](USER_DeleteInstance.md)。
+ 當資料庫執行個體意外離開主動-主動叢集時，`group_replication_exit_state_action` 參數預設會變更為 `OFFLINE_MODE`。在此狀態下，資料庫執行個體無法存取，您必須重新啟動資料庫執行個體，才能將其重新上線並重新加入叢集。您可以透過修改自訂參數群組中的 `group_replication_exit_state_action` 參數來變更此行為。透過將參數設定為 `READ_ONLY`，當資料庫執行個體意外離開叢集時，它會進入超級唯讀狀態，而不是離線。