選取您的 Cookie 偏好設定

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

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

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

焦點模式
使用 GTID 設定 Amazon RDS for MySQL 與 Amazon EC2 上的 MySQL 之間的資料複寫 - AWS 方案指引

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

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

由 Rajesh Madiwale (AWS) 建立

Summary

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

使用 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.或其附屬公司。保留所有權利。