選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

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

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

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

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

由 Rajesh Madiwale (AWS) 建立

Summary

此模式說明如何使用 MySQL 原生全域交易識別符 (GTID) 複寫,在 Amazon Relational Database Service (Amazon RDS) for MySQL 資料庫執行個體與 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上的 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 RDS for MySQL 資料庫執行個體

任務描述所需的技能

建立 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 EC2 執行個體上安裝和準備 MySQL

任務描述所需的技能

在 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

設定複寫

任務描述所需的技能

從 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

相關資源

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。