使用 GTID 在亞馬遜 EC2 上設置 Amazon RDS for MySQL 和 MySQL 之間的數據複寫 - AWS 方案指引

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

使用 GTID 在亞馬遜 EC2 上設置 Amazon RDS for MySQL 和 MySQL 之間的數據複寫

創建者:拉傑什·馬迪瓦利 (AWS)

環境:PoC 或試點

技術:資料庫

工作負載:開源

Summary

此模式說明如何透過使 Amazon Web Services MySQL 原生全域交易識別碼 (GTID) 複寫,在適用於 MySQL 資料庫執行個體的 Amazon Relational Database Service 服務 (AWS RDS) 與 Amazon 彈性運算雲端 (Amazon EC2) 執行個體上的 MySQL 資料庫之間設定資料複寫。

使用 GTID 時,在原始伺服器上認可並由複本套用交易時,就會識別和追蹤這些交易。在容錯移轉期間啟動新複本時,不需要參考記錄檔。

先決條件和限制

先決條件

  •  有效的 AWS 帳戶

  • 已部署 Amazon Linux 執行個體

限制

  • 此設定需要內部小組執行唯讀查詢。

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

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

產品版本

架構

源, 技術, 堆棧

  • Amazon RDS for MySQL

目標技術堆疊

  • Amazon EC2

目標架構

在同一個私有子網路中,將 RDS 版 MySQL 資料庫的 GTID 複寫到 Amazon EC2 上的 MySQL。

工具

AWS 服務

其他服務

史诗

任務描述所需技能

建立適用於 MySQL 的 RDS 執行個體。

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

DBA,工程師 DevOps

啟用 DB 參數群組中的 GTID 相關設定。

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

設定enforce_gtid_consistencyon,並設定gtid-modeon

 

DBA

重新啟動 Amazon RDS for MySQL 適用於 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 (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 適用於 MySQL 資料庫匯出資料傾印。

若要從 Amazon RDS for MySQL 版 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

相關資源