阿里云企业级PolarDB_MySQL数据迁移

阿里云企业级PolarDB_MySQL数据迁移全过程

  • 升级内容:

    • 内存:4+16 → 8+32

    • MySQL版本:5.6 → 5.7

    • MySQL5.7新特性:

      • 3倍更快的性能
      • InnoDB 相关改进
      • 新的优化器
      • 多源复制
      • GIS 相关改进
      • 原生 JSON 支持

1.购买新集群

1)选购新集群

只购买2个节点即可(一主一从) ,后期不够可再扩容从节点

1.购买PolarDB_MySQL5.7
# 规格:
	2节点:20400,3节点30600
	之前的实例需要手动退订,具体费用还需要根据购买和退订的时费用决定
	先购买一主一从(集群版默认,20400),再增加一个读节点(不支持一次直接选三个节点)
# 配置:
	VPC网络:ES
    VPC交换机:EC-E
    节点规格:8+32(独享)
    时区:UTC +08:00(默认)
    地域:华东2(上海)
    创建方式:创建主集群
    主可用区:可用区E
    网络类型:专有网络
    兼容性:MySQL 5.7
    系列:集群版(2-16个节点)【推荐】
    子系列:独享规格
    节点个数:2
    表名大小写:不区分大小写(默认)
    删除(释放)集群时:保留最后一个备份(释放前自动备份)(默认)
PS:包年包月1年 优惠 7200元 配置费用: 408002.购买下行流量10TB
资源包类型	下行流量
下行流量	10TB
加速区域	全国通用(中国内地)
套餐		中国内地通用流量包
数量		1
购买时长	6个月
费用		1800
优惠		216(飞天会员半年8.8折特惠)
实付		1584

2)优惠政策

基于正常购买页面优惠政策的前提下,叠加优惠

9.1 ~ 9.10 会员节相关优惠政策:1~9号前完成充值,10号当天消费
1.充值满返优惠券(充值送券活动时间:2021年9月1日0点至2021年9月10日24点/优惠券使用时间:仅限9.10号当天使用),共6个挡位:  2000-120、3000-180、5000-300、10000-600、20000-1200、30000-1800
	- 充值 30000+ 返优惠券 1800元(9.1~9.10)	`9.10当天支付自动减去1800

2.购物车满减权益,5000-250、10000-500、20000-1200、30000-2100、50000-4000(官网活动可领取):80000-7200、100000-10000、150000-15000、200000-20000(需联系客户经理申请)
	- 加入购物车,满 300002100`√ 购物车已减2100
	# 购物车满减权益领取,共5个档位:
    1、满¥5000减¥250
    2、满¥10000减¥500
    3、满¥20000减¥1200
    4、满¥30000减¥2100
    5、满¥50000减¥4000

3.消费满额抽奖(限 9.10 当天消费),10000抽1次、30000抽2次、50000抽3次、100000抽4次、150000抽5次iPhone 12 Pro(256G,颜色随机)、switch 游戏机、天猫精灵方糖(颜色随机)。
	- 满 30000 抽奖两次,100%中奖(大概率天猫精灵,仅限 9.10 当日)	`等通知

4.官网优惠券礼包限时领取,更有指定产品首购秒杀,爆品限量秒杀(爆款秒杀:云服务器、数据库、建站、商标、公司注册、短信、OSS、视频云)、单产品折扣、各大分会场等多重优惠!
	- 官网首页优惠券礼包限时领取(仅限9.10号当天)
	- 当用户消费标准达不到满减标准时,才能有此优惠(此项活动与满减权益二者选一)`5.消费返余额

2.配置新集群

1)配置新集群白名单

以下ip只是举例~

ali_dms_group
105.15.6.0/24,105.15.5.0/24

default
172.27.0.15,10.43.5.12

dtspolardb
103.104.26.12/26,101.121.13.0/24

PS:
1.终端连接到数据库,检查是否能正常连接
2.查看集群读写地址,并测试链接
	集群私网地址/主公网地址

2)创建对应权限账号

  • 由于用于数据迁移的数据库账号拥有读写权限,为保障数据库安全性,请在数据迁移完成后,删除相关的数据库账号,并重新建立之前的相关业务数据库账号以及授权
# 先查看存在的用户与权限:
select user,host from mysql.user;

# 查询权限
grant SELECT on *.* to look@'%' identified by 'look';

# 后台代码权限
grant SELECT, INSERT, UPDATE, DELETE, EXECUTE, TRIGGER on *.* to conn@'%' identified by 'conn';

# 运维权限
grant SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, ALTER, EXECUTE, CREATE VIEW, CREATE USER, TRIGGER on *.* to op@'%' identified by 'op';

# 混合云数据库管理权限
grant SELECT, PROCESS, REPLICATION SLAVE, REPLICATION CLIENT on *.* to hunheyun@'%' identified by 'hunheyun';

# 管理员权限(可手动在阿里云创建)
grant SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER
 on *.* to root@'%' identified by 'root';

3)测试ECS连接新集群

- ECS实例连接到	--> MySQL(通过新集群内网地址连接)	# 内网测试
- ECS实例连接到	--> MySQL(通过新集群外网地址连接)	# 外网测试

3.数据迁移

参考:阿里云官方文档

  • 为保障数据一致性,数据迁移期间请勿在源实例中写入新的数据
  • 迁移过程不建议在两端执行DDL操作(对库、表的创建、删除、更改)
  • 建议在业务低峰期进行迁移操作(凌晨2点左右)
1.周日凌晨1:30:执行迁移计划,让三阶段状态达到100%;

2.周一凌晨1:30:增量迁移状态为100%后,停止业务,让其转为无延迟状态;
	- server1	# host55
	- server2	# host131

PS:docker start `docker ps -a | awk '{print $1}' | tail -n +2`
3.开发切换业务地址到新集群、修改新集群备份地址

4.修改nginx仅ip+端口可访问,禁用域名
# 临时将以下.ip文件改为.conf文件结尾,测试完恢复(原配置文件改为*.f)
# PS:cp一份nginx配置文件,将源文件改为以.bak结尾,将cp的文件的对应域名改为ip
# 重启nginx测试ip+端口访问
- host55:
	/etc/nginx/conf.d/cms.conf.ip

- host131:
	/etc/nginx/conf.d/web.conf.ip
	
5.启动业务并测试
	- server1	# host55
	- server2	# host131
	
6.测试成功开放nginx域名配置
#  PS:将现用ip访问的nginx配置文件改为.ip结尾,将源文件改回以.conf结尾,nginx -s reload 恢复域名+ip访问并测试

结束增量迁移任务

4.切换业务到新数据库

1.切换业务到新数据库
	- 将新集群地址交给 --> 开发替换到代码
		- 新集群地址:xxx

2.启动停止的服务
	- 启动服务
	- 测试业务写入

5.后续步骤

1.将数据库备份脚本的连接地址替换为新的连接地址:xxx
PS:若用了第三方数据库工具如【Navicat】,则需要修改为新数据库的连接地址~

6.迁移失败补救方案

- 开发代码切回原数据库地址
- 启动停止的服务
- 测试业务写入
posted @ 2022-06-09 18:36  秋风お亦冷  阅读(142)  评论(0编辑  收藏  举报