使用 GTID 在 Amazon EC2 上設定 Amazon RDS for MySQL 和 MySQL 之間的資料複寫 - AWS 方案指引

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

使用 GTID 在 Amazon EC2 上設定 Amazon RDS for MySQL 和 MySQL 之間的資料複寫

Rajesh Madiwale,Amazon Web Services

Summary

此模式說明如何使用 MySQL 原生全域交易識別符 (GTID) 複寫,在 Amazon Relational Database Service (Amazon RDS) for MySQL 資料庫執行個體與 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上的 MySQL MySQL 資料庫之間,在 Amazon Web Services (AWS) 雲端上設定資料複寫。

使用 GTIDs當交易在原始伺服器上遞交並由複本套用時,就會識別和追蹤交易。在容錯移轉期間啟動新複本時,您不需要參考日誌檔案。

先決條件和限制

先決條件

  •  作用中的 AWS 帳戶

  • 部署的 Amazon Linux 執行個體

限制

  • 此設定需要內部團隊來執行唯讀查詢。

  • 來源和目標 MySQL 版本必須相同。

  • 複寫是在相同的 AWS 區域和虛擬私有雲端 (VPC) 中設定。

產品版本

  • Amazon RDS 5.7.23 版和更新版本,這是支援 GTID 的版本

架構

來源技術堆疊

  • Amazon RDS for MySQL

目標技術堆疊

  • Amazon EC2 上的 MySQL

目標架構

從 RDS for MySQL 資料庫到相同私有子網路中 Amazon EC2 上的 MySQL 的 GTID 複寫。

工具

AWS 服務

其他服務

史詩

任務描述所需的技能

建立 RDS for MySQL 執行個體。

若要建立 RDS for MySQL 執行個體,請遵循 Amazon RDS 文件中的步驟,使用下一個任務中涵蓋的參數值。

DBA,DevOps 工程師

在資料庫參數群組中啟用 GTID 相關設定。

在 Amazon RDS for MySQL 資料庫參數群組中啟用下列參數。

enforce_gtid_consistency 設定為 on,並將 gtid-mode設定為 on

 

DBA

重新啟動 Amazon RDS for MySQL 執行個體。

必須重新開機,參數變更才會生效。

DBA

建立使用者並授予其複寫許可。

若要安裝 MySQL,請使用下列命令。

CREATE USER 'repl'@'%' IDENTIFIED BY 'xxxx'; GRANT REPLICATION slave ON *.* TO 'repl'@'%' ; FLUSH PRIVILEGES;

 

DBA
任務描述所需的技能

在 Amazon Linux 上安裝 MySQL。

若要安裝 MySQL,請使用下列命令。

sudo yum update sudo wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm sudo yum localinstall mysql57-community-release-el7-11.noarch.rpm sudo yum install mysql-community-server sudo systemctl start mysqld
DBA

在 EC2 執行個體上登入 MySQL 並建立資料庫。

資料庫名稱應與 Amazon RDS for MySQL 中的資料庫名稱相同。在下列範例中,資料庫名稱為 replication

create database replication;
DBA

編輯 MySQL 組態檔案,然後重新啟動資料庫。

新增下列參數/etc/,以編輯位於 中的my.conf檔案。

server-id=3 gtid_mode=ON enforce_gtid_consistency=ON replicate-ignore-db=mysql binlog-format=ROW log_bin=mysql-bin

然後重新啟動mysqld服務。

systemctl mysqld restart
DBA
任務描述所需的技能

從 Amazon RDS for MySQL 資料庫匯出資料傾印。

若要從 Amazon RDS for MySQL 匯出傾印,請使用下列命令。

mysqldump --single-transaction -h mydb.xxxxxxx.amazonaws.com -uadmin -p --databases replication > replication-db.sql
DBA

在 Amazon EC2 的 MySQL 資料庫中還原 .sql 傾印檔案。

若要將傾印匯入 Amazon EC2 上的 MySQL 資料庫,請使用下列命令。

mysql -D replication -uroot -p < replication-db.sql
DBA

將 Amazon EC2 上的 MySQL 資料庫設定為複本。

若要開始複寫並檢查複寫狀態,請登入 Amazon EC2 上的 MySQL 資料庫,然後使用下列命令。

CHANGE MASTER TO MASTER_HOST="mydb.xxxxxxx.amazonaws.com", MASTER_USER="repl", MASTER_PASSWORD="rep123", MASTER_PORT=3306, MASTER_AUTO_POSITION = 1; START SLAVE; SHOW SLAVE STATUS\G
DBA

相關資源