本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您要遷移至作用中叢集的資料庫執行個體資料庫引擎版本必須是下列其中一個版本:
-
所有 MySQL 8.4 版本
-
我的SQL 8.0.35 和更新次要版本
如果您需要升級引擎版本,請參閱 RDS 適用於 MySQL 資料庫引擎的 升級。
如果您要在多個 中設定具有資料庫執行個體的作用中叢集VPC,請務必在 中完成先決條件準備跨VPC作用中叢集。
請完成下列步驟,將現有的資料庫執行個體遷移至 RDS for My 的作用中叢集SQL。
主題
步驟 1:在一或多個自訂參數群組中設定主動-主動叢集參數
作用中-作用中叢集中的 RDS for MySQL 資料庫執行個體必須與具有必要參數正確設定的自訂參數群組相關聯。如需參數和每個參數所需設定的相關資訊,請參閱 主動-主動叢集的必要參數設定。
您可以在新的參數群組或現有的參數群組中設定這些參數。不過,為了避免意外影響不屬於主動-主動叢集的資料庫執行個體,強烈建議您建立新的自訂參數群組。作用中-作用中叢集中的資料庫執行個體可與相同的資料庫參數群組或不同的資料庫參數群組相關聯。
您可以使用 AWS Management Console 或 AWS CLI 建立新的自訂參數群組。如需詳細資訊,請參閱在 Amazon RDS Amazon 中創建數據庫參數組。下列範例執行 create-db-parameter-group AWS CLI 命令,以建立名為 for MySQL 8.0
RDS的自訂資料庫參數群組:myactivepg
用於 Linux, macOS、 或 Unix:
aws rds create-db-parameter-group \ --db-parameter-group-name
myactivepg
\ --db-parameter-group-family mysql8.0 \ --description "Parameter group for active-active clusters
"
用於 Windows:
aws rds create-db-parameter-group ^ --db-parameter-group-name
myactivepg
^ --db-parameter-group-family mysql8.0 ^ --description "Parameter group for active-active clusters
"
您也可以使用 AWS Management Console 或 AWS CLI 來設定自訂參數群組中的參數。如需詳細資訊,請參閱修改 Amazon RDS Amazon 數據庫參數組中的參數。
下列範例會執行 modify-db-parameter-group AWS CLI 命令來設定RDS適用於 MySQL 8.0 的 參數。若要將此範例與 RDS MySQL 8.4 搭配使用,請將 slave_preserve_commit_order
變更為 。 replica_preserve_commit_order
用於 Linux, macOS、 或 Unix:
aws rds modify-db-parameter-group \ --db-parameter-group-name
myactivepg
\ --parameters "ParameterName='rds.group_replication_enabled',ParameterValue='1',ApplyMethod=pending-reboot" \ "ParameterName='rds.custom_dns_resolution',ParameterValue='1',ApplyMethod=pending-reboot" \ "ParameterName='enforce_gtid_consistency',ParameterValue='ON',ApplyMethod=pending-reboot" \ "ParameterName='gtid-mode',ParameterValue='ON',ApplyMethod=pending-reboot" \ "ParameterName='binlog_format',ParameterValue='ROW',ApplyMethod=immediate" \ "ParameterName='slave_preserve_commit_order',ParameterValue='ON',ApplyMethod=immediate" \ "ParameterName='group_replication_group_name',ParameterValue='11111111-2222-3333-4444-555555555555
',ApplyMethod=pending-reboot"
用於 Windows:
aws rds modify-db-parameter-group ^ --db-parameter-group-name myactivepg ^ --parameters "ParameterName='rds.group_replication_enabled',ParameterValue='1',ApplyMethod=pending-reboot" ^ "ParameterName='rds.custom_dns_resolution',ParameterValue='1',ApplyMethod=pending-reboot" ^ "ParameterName='enforce_gtid_consistency',ParameterValue='ON',ApplyMethod=pending-reboot" ^ "ParameterName='gtid-mode',ParameterValue='ON',ApplyMethod=pending-reboot" ^ "ParameterName='binlog_format',ParameterValue='ROW',ApplyMethod=immediate" ^ "ParameterName='slave_preserve_commit_order',ParameterValue='ON',ApplyMethod=immediate" ^ "ParameterName='group_replication_group_name',ParameterValue='
11111111-2222-3333-4444-555555555555
',ApplyMethod=pending-reboot"
步驟 2:將資料庫執行個體與具有所需群組複寫參數設定的資料庫參數群組建立關聯
將資料庫執行個體與您在上一個步驟中建立或修改的參數群組建立關聯。如需說明,請參閱 將資料庫參數群組與 RDS 亞馬遜 Aurora 中的資料庫執行個體建立關聯。
重新啟動資料庫執行個體,讓新參數設定生效。如需說明,請參閱 重新啟動中的資料庫執行個體。
步驟 3:建立主動-主動叢集
在與資料庫執行個體相關聯的資料庫參數群組中,將 group_replication_group_seeds
參數設定為您要轉換之資料庫執行個體的端點。
您可以使用 AWS Management Console 或 AWS CLI 來設定 參數。設定此參數後,您不需要重新啟動資料庫執行個體。如需設定參數的詳細資訊,請參閱修改 Amazon RDS Amazon 數據庫參數組中的參數。
下列範例會執行 modify-db-parameter-group AWS CLI 命令來設定參數:
用於 Linux, macOS、 或 Unix:
aws rds modify-db-parameter-group \ --db-parameter-group-name
myactivepg
\ --parameters "ParameterName='group_replication_group_seeds',ParameterValue='myactivedb1.123456789012.us-east-1.rds.amazonaws.com:3306
',ApplyMethod=immediate"
用於 Windows:
aws rds modify-db-parameter-group ^ --db-parameter-group-name
myactivepg
^ --parameters "ParameterName='group_replication_group_seeds',ParameterValue='myactivedb1.123456789012.us-east-1.rds.amazonaws.com:3306
',ApplyMethod=immediate"
步驟 4:RDS為作用中叢集的 MySQL 資料庫執行個體建立其他
若要為作用中叢集建立其他資料庫執行個體, point-in-time請在您要轉換的資料庫執行個體上執行復原。如需說明,請參閱 使用 point-in-time復原將資料庫執行個體新增至作用中叢集。
主動-主動叢集最多可以有九個資料庫執行個體。在 point-in-time資料庫執行個體上執行復原,直到您有叢集所需的資料庫執行個體數量為止。當您執行 時 point-in-recovery,請確定您要新增的資料庫執行個體與rds.group_replication_enabled
設定為 的資料庫參數群組建立關聯1
。否則,群組複寫不會在新增的資料庫執行個體上啟動。
步驟 5:在您轉換的資料庫執行個體上初始化群組
初始化群組並開始複寫:
-
連線到您在SQL用戶端中轉換的資料庫執行個體。如需連線至 RDS for MySQL 資料庫執行個體的詳細資訊,請參閱 連線至執行 MySQL 資料庫引擎的資料庫執行個體。
-
在SQL用戶端中,執行下列預存程序
group_replication_user_password
,並以rdsgrprepladmin
使用者的密碼取代 。rdsgrprepladmin
使用者會保留給作用中叢集中的群組複寫連線。此使用者的密碼在作用中叢集中的所有資料庫執行個體上都必須相同。call mysql.rds_set_configuration('binlog retention hours',
168
); -- 7 days binlog call mysql.rds_group_replication_create_user('group_replication_user_password
'); call mysql.rds_group_replication_set_recovery_channel('group_replication_user_password
'); call mysql.rds_group_replication_start(1);此範例將
binlog retention hours
值設定為168
,這表示二進位日誌檔案會在資料庫執行個體上保留七天。您可以調整此值以符合您的需求。此範例
1
在mysql.rds_group_replication_start
預存程序中指定 ,以使用目前的資料庫執行個體初始化新的群組。如需 範例中名為 之預存程序的詳細資訊,請參閱 管理主動-主動叢集。
步驟 6:在作用中叢集中的其他資料庫執行個體上開始複寫
對於作用中叢集中的每個資料庫執行個體,請使用SQL用戶端連線至執行個體,並執行下列預存程序。group_replication_user_password
將 取代為 rdsgrprepladmin
使用者的密碼。
call mysql.rds_set_configuration('binlog retention hours',
168
); -- 7 days binlog call mysql.rds_group_replication_create_user('group_replication_user_password
'); call mysql.rds_group_replication_set_recovery_channel('group_replication_user_password
'); call mysql.rds_group_replication_start(0);
此範例會將 binlog retention hours
值設定為 168
,這表示二進位日誌檔案會在每個資料庫執行個體上保留七天。您可以調整此值以符合您的需求。
此範例0
在mysql.rds_group_replication_start
預存程序中指定 ,將目前的資料庫執行個體加入現有的 群組。
提示
請確定您在作用中叢集中所有其他資料庫執行個體上執行這些預存程序。
步驟 7:(建議) 檢查主動-主動叢集的狀態
若要確保叢集的每個成員都已正確設定,請連線至作用中叢集中的資料庫執行個體,並執行下列SQL命令來檢查叢集的狀態:
SELECT * FROM performance_schema.replication_group_members;
您的輸出應ONLINE
會顯示每個資料庫執行個體MEMBER_STATE
的 ,如下列範例輸出所示:
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | 9854d4a2-5d7f-11ee-b8ec-0ec88c43c251 | ip-10-15-3-137 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL |
| group_replication_applier | 9e2e9c28-5d7f-11ee-8039-0e5d58f05fef | ip-10-15-3-225 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL |
| group_replication_applier | a6ba332d-5d7f-11ee-a025-0a5c6971197d | ip-10-15-1-83 | 3306 | ONLINE | PRIMARY | 8.0.35 | MySQL |
+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+
3 rows in set (0.00 sec)
如需有關可能MEMBER_STATE
值的資訊,請參閱 MySQL 文件中的群組複寫伺服器狀態