AWS RDS迁移方法
下面是3种模式,第一种是北京迁宁夏,第二种是跨账号同区域迁移,第三种是使用脚本迁移
一 北京迁宁夏或者宁夏迁移到北京
假设是北京迁移到宁夏区,同账号的情况
参照北京区的参数组设置相同的配置,避免迁移到宁夏的数据库不满足业务需求
创建北京区的数据库只读副本,目的选宁夏区,然后提升宁夏区的
在控制台选择出可以直接跨区域副本的概率比较小,可能点10次可以出现1次这个页面
使用cli添加只读
-
首先要在目标区有KMS,应用于对数据库的加密。
-
在命令行执行
aws rds create-db-instance-read-replica \
--db-instance-identifier test-m8-rep --region cn-north-1 \
--source-db-instance-identifier arn:aws-cn:rds:cn-northwest-1:XXXXXX:db:test-m8 \
--source-region cn-northwest-1
[--kms-key-id XXXXXX]
source-db-instance-identifier 原库的ARN,可以在页面的configuration标签中查到
如果目标库要加密,则原库必须加密, kms-key-id 目标端用来加密的密钥ID
提升只读副本的等级,把只读提升为主库
二 跨账号 同区域迁移
1 首先停止线上业务,避免新的数据产生了再新的账号的数据库没有记录
2 共享快照,然后在那个账号同意共享
3 还原快照
按照业务规则填写相关信息
- 新数据库实例标识符
- 选择该账号的VPC为网段
- 选择相关的安全组
三 通过shell还原
快速导出数据库
mysqldump -h <RDS终端节点> -P 3306 -u root -p'数据库密码' <要导的数据库> --single-transaction --quick --set-gtid-purged=OFF --routines --triggers --compress --compact > backup.sql &
导入数据
mysql -u root -p<密码> -h <新的数据库dns> < backup.sql