AWS RDS - 将 RDS MySQL 实例作为 自建MySQL 实例的从库

tech2024-12-16  4

首先需要创建源数据的副本。 (1) 修改您的源端数据库配置文件 , 打开 binlog 配置。 log-bin=mysql-bin server-id=1

(2) 重启源端数据库

(3) 使用 mysqldump 备份数据库(如果多个数据库,就写为 db1 db2 db3 ) mysqldump –databases database_name –master-data=2 –single-transaction –order-by-primary -r backup.sql -u local_user -p password

(4) 将该备份文件压缩。

**注意: 将 --single-transaction 选项与 mysqldump 结合使用 从转储文件中排除以下架构:sys、performance_schema 和 information_schema。默认情况下,mysqldump 实用工程序包括这些架构。 如果您需要迁移用户和权限,请考虑使用生成数据控制语言 (DCL) 的工具 (如 pt-show-grants 实用程序) 来重新创建用户和权限。 您必须在 Amazon RDS 数据库中手动创建任何存储过程、触发器、函数或事件。如果您所复制的数据库中有上述任一对象,请在运行 mysqldump 时排除这些对象,方式是将以下参数与 mysqldump 命令一起包含:–routines=0 --triggers=0 --events=0。

创建 Amazon EC2 实例和复制压缩的数据库 (1) 创建一个EC2 实例,将 1 中的压缩备份文件上传至 EC2 实例, 并解压。 (2) EC2 中安装

创建 Amazon RDS MySQL 或 MariaDB 数据库实例,并从 Amazon EC2 实例导入数据 (1) 创建 Amazon RDS MySQL 实例 (2) 通过 EC2 实例 中的 mysql 客户端,连接 RDS mysql 实例, 并导入 2 中解压的数据文件。

在外部数据库和新的 Amazon RDS 数据库实例之间进行复制 (1) 确保自建数据库和 RDS MySQL 实例间可以建立连接。 (2) 在自建数据库中创建复制用户, 并授权。 (3) 在 2 中的解压备份文件中 查看当前的 binlog的文件以及位置点 (4) 连接至 RDS MySQL 实例, 并使用如下命令设置 master 信息 CALL mysql.rds_set_external_master (‘myserver.mydomain.com’, 3306, ‘repl_user’, ‘password’, ‘mysql-bin-changelog.000031’, 107, 0); (5) 在 RDS MySQL 实例中 启动复制 CALL mysql.rds_start_replication; (6) 在 Amazon RDS 数据库实例上,运行 SHOW SLAVE STATUS 命令以确定副本何时与源复制实例实现同步. (7) 在 Amazon RDS 数据库实例同步后,启用自动备份以便您能在需要时还原数据库。

参考文档: [1] https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.NonRDSRepl.html

最新回复(0)