rds mysql 5.7基础版本无法下载物理备份,在业务不允许中断,并且本地数据库没有公网的情况下,如果要迁移数据到本地可以利用mysqldump 导出的dump 文件然后结合binlog 增量把rds数据迁移到本地。
本地环境数据库需要也是mysql5.7版本
mysql -uroot -p123456 -S /tmp/mysql57.sock 这个是本地数据库启动连接方式。
以下是迁移步骤:
mysqldump -uroot -p密码 -hrds地址 c1 --single-transaction --set-gtid-purged=OFF --master-data=2 > c1.sql
参数说明:
c1 数据库名字
--single-transaction 参数避免表级锁等待
--set-gtid-purged=OFF 在mysqldump输出中不包含 SET @@GLOBAL.GTID_PURGED 语句避免导入本地报错
--master-data 使用此参数作用是在导出的dump文件记录需要增量的binlog 和位点
执行以下命令导入到本地数据库
mysql -uroot -p123456 c1 -S /tmp/mysql57.sock < c1.sql
执行以下命令获取需要增量使用的binlog名字和位点
cat c1.sql | grep MASTER_LOG_FILE
mysqlbinlog --start-position=384 mysql-bin.001035 -uroot -prds密码 -hrds地址 --read-from-remote-server >aa.sql
--start-position 指定位点
--read-from-remote-server 参数实现远程读取并保存到本地的aa.sql文件中
vim aa.sql 打开文件把SET @@GLOBAL.GTID_PURGED 信息注释一下。
mysql -uroot -p123456 -S /tmp/mysql57.sock c1 < aa.sql