目录
迁移拓扑图
例子中的场景是 M-S 3305 转到 G-R 3306
业务方案沟通
1、迁移前检查
a. 表必须使用Innodb引擎
b. 表必须有主键或者唯一索引
c.自增ID非连续,自增列的起始值和步长不是1,业务逻辑不能依赖自增
d. 不使用 CREATE TABLE … SELECT语法
e. 在一个事务中 CREATE TEMPORARY TABLE or DROP TEMPORARY TABLE
f. 在一个事务中或语句中同时更新事务和非事务表,比如在一个事务中更新 innodb表和myisam表。要更新的所有非事务表是临时表除外
g.对MGR集群多机房部署
h.不使用 select xxx for update 语法
2、版本升级到MySQL 5.7
a. 升级MySQL从库实例,通知业务上线 (DBA)
b. 观察一周高版本从库是否正常使用 (业务)
c. MySQL 主库切换到高版本实例。验证写,并观察一段时间 (DBA &业务)
d. 验证没问题后,端口全部实例升级 (DBA)
e. GTID 开启(DBA)
注:
a. 升级将使用滚动升级的方式,5.5升级到5.6,5.6升级到5.7
b. 升级时会保留老版本MySQL实例并保持同步。若遇到不兼容或者其他问题可以快速回滚
c. 升级时若发现语法不兼容,联系DBA修改语法限制
3、MGR 迁移
a.主从集群与MGR集群搭建双向同步(DBA)
b.将读切至新集群验证是否正常(业务方)
c.将写切至新集群(业务方)
d.观察一段时间,确认所有业务迁移至新集群(DBA&业务)
e.断开双向复制 (DBA)
注:
1. 需要将数据库域名配置为新集群域名
2. 做数据迁移时,会保证两个集群为双向复制,老集