aws mysql 复制_将 Amazon RDS MySQL 数据库实例复制到本地环境

如何使用二进制日志将 Amazon RDS for MySQL 活动数据库实例复制到本地备用实例?

上次更新时间:2020 年 8 月 14 日

如何使用二进制日志,将 Amazon Relational Database Service (Amazon RDS) for MySQL 数据库实例复制到外部本地环境?

简短描述

要将数据从 Amazon RDS for MySQL 迁移到本地数据库服务器,请在 AWS 上创建只读副本,然后将复制目标从 Amazon RDS MySQL 只读副本切换到本地服务器。

如果您使用基于 GTID 的复制,请参阅使用外部主实例配置基于 GTID 的复制。

解决方法

1.    确认已在您想要复制的数据库实例上启用自动备份。在本例中,该数据库实例称为 RDS-active。

注意:最短备份保留期为一天。

2.    使用相同配置创建数据库实例的只读副本。在本例中,该副本为 RDS-standby。

3.    登录 RDS-standby 数据库实例,然后确认该副本与 RDS-active 同步:

mysql> show slave status \G

注意:seconds_behind_master 必须为 0,这表明没有副本延迟。

4.    在 RDS-standby 上停止复制:

mysql> call mysql.rds_stop_replication;

5.    记录副本中的数据,然后记下 -log_file 和 -log_position 参数:

mysql> show slave status \G

注意:-log_file 是 Relay_Master_Log_File 的值,-log_position 是 Exec_Master_Log_Pos 的值。

6.    退出终端,并使用 mysqldump(或类似的实用工具)来创建将复制到目标服务器的 RDS-standby 的备份。在本例中,目标本地服务器为 MySQL-target。

$ mysqldump -h hostname -u username -p dbname > backup_file_name.sql

7.    创建备份后,通过登录到 MySQL-target 将该备份文件传输到目标本地服务器。

8.    创建新数据库,并使用转储文件将数据库还原到新的外部数据库实例:

$ mysql -h hostname -u username -p dbname < backup_file_name.sql

9.    登录 RDS-active 数据库实例,设置复制用户,并授予该用户必要的权限:

mysql> create user repl_user@'%' identified by 'repl_user';

mysql>grant replication slave, replication client on *.* to repl_user@'%';

mysql>show grants for repl_user@'%';

注意:请务必将 repl_user替换为您自己的复制用户名。

10.    登录到目标数据库实例并停止 MySQL 服务器。

11.    修改 my.cnf 文件参数以指向您的唯一服务器 ID(如 server_id=2),以及要从数据库实例复制的数据库的名称(如 replicate-do-db=test)。

12.    保存文件。

13.    重启 MySQL-target 上的 MySQL 服务器。

14.    建立一个到 RDS-active 数据库实例的连接:

mysql> change master to master_host='rds-endpoint',master_user='repl_user', master_password='password', master_log_file='mysql-bin.000001', master_log_pos= 107;

15.    确认 MySQL-target 可以连接到 RDS-active。

注意:如果您使用 Amazon Elastic Compute Cloud (Amazon EC2) 作为外部 MySQL 实例,则允许从该安全组或者 RDS-active 数据库实例安全组中的 IP 地址建立连接。如果您使用外部 MySQL 服务器,请运行 telnet 以测试连接。有关更多信息,请参阅如何解决连接到 Amazon RDS 数据库实例时出现的问题?

RDS-Endpoint 是 RDS-active数据库实例的终端节点。用户名和密码与您在第 9 步创建的用户名和密码相同。MASTER_LOG_FILE 和MASTER_LOG_POS 是在第 5 步记下的值。

16.    登录到 MySQL-target,并开始复制:

mysql> start slave;

17.    检查复制在 RDS-active 和 MySQL-target 之间是否同步:

mysql> Show slave status\G

18.    在滞后于主实例的秒数等于零之后,您就可以删除 RDS-standby 数据库实例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值