EC2 使用 GTID 在亚马逊 RDS for MySQL 和亚马逊上的 MySQL 之间设置数据复制 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

EC2 使用 GTID 在亚马逊 RDS for MySQL 和亚马逊上的 MySQL 之间设置数据复制

Rajesh Madiwale,Amazon Web Services

摘要

此模式描述了如何使用 MySQL 原生全局交易标识符 (GTID) 复制,在亚马逊网络服务 (AWS) 云上设置适用于 MySQL 数据库实例的亚马逊关系数据库服务 (Amazon RDS) 和亚马逊弹性计算云 (Amazon EC2) 实例上的 MySQL 数据库之间的数据复制。

使用 GTIDs,当事务提交到源服务器并由副本应用时,可以识别和跟踪事务。在失效转移期间启动新副本时,不需要参考日志文件。

先决条件和限制

先决条件

  •  一个有效的 Amazon Web Services account

  • 已部署 Amazon Linux 实例

限制

  • 此设置需要内部团队运行只读查询。

  • 源 MySQL 版本必须相同。

  • 复制设置在同一 AWS 区域 和虚拟私有云(VPC)中。

产品版本

  • Amazon RDS 5.7.23 和更高的 Amazon RDS 版本,这些版本支持 GTID

架构

源技术堆栈

  • Amazon RDS for MySQL

目标技术堆栈

  • 亚马逊上的 MySQL EC2

目标架构

GTID 在同一个私有子网中从 RDS for MySQL 数据库复制到亚马逊 EC2 上的 MySQL。

工具

Amazon Web Services

其他服务

  • 全局事务标识符 (GTIDs) 是为已提交的 MySQL 事务生成的唯一标识符。

  • mysqldump 是客户端实用程序,用于通过生成 SQL 语句来执行逻辑备份,运行这些语句可以重现源数据库对象定义和表数据。

  • mysql 是 MySQL 的命令行客户端。

操作说明

Task描述所需技能

创建 RDS for MySQL 实例。

若要创建 RDS for MySQL 实例,请使用下一个任务中介绍的参数值,按照 Amazon RDS 文档中的步骤进行操作。

数据库管理员、工程师 DevOps

在数据库参数组中启用 GTID 相关的设置。

在 Amazon RDS for MySQL 数据库参数组启用以下参数。

enforce_gtid_consistency 设置为 on,将 gtid-mode 设置为 on

 

数据库管理员

重启 Amazon RDS for MySQL 实例。

若要使参数更改生效,必须先重启系统。

数据库管理员

创建用户并授予其复制权限

要安装 MySQL,请使用以下命令。

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

 

数据库管理员
Task描述所需技能

在 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
数据库管理员

在 EC2 实例上登录 MySQL 并创建数据库。

数据库名称应与 Amazon RDS for MySQL 数据库名称相同。在以下示例中,数据库名为 replication

create database replication;
数据库管理员

编辑 MySQL 配置文件,然后重新启动此数据库。

通过添加以下参数来编辑位于 my.conf 中的文件 /etc/

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
数据库管理员
Task描述所需技能

从 Amazon RDS for MySQL 数据库导出数据转储。

若要从 Amazon RDS for MySQL 导出转储,请使用以下命令。

mysqldump --single-transaction -h mydb.xxxxxxx.amazonaws.com -uadmin -p --databases replication > replication-db.sql
数据库管理员

在亚马逊 EC2的 MySQL 数据库中恢复.sql 转储文件。

要将转储导入亚马逊上的 MySQL 数据库 EC2,请使用以下命令。

mysql -D replication -uroot -p < replication-db.sql
数据库管理员

将 Amazon 上的 MySQL 数据库配置 EC2 为副本。

要开始复制并检查复制状态,请登录 Amazon 上的 MySQL 数据库 EC2,然后使用以下命令。

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
数据库管理员

相关的资源