天天看点

RDS for mysql5.7 基础版本使用mysqldump 全量加增量恢复到本地

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