父文章 传统部分业务机房迁移_个人渣记录仅为自己搜索用的博客-CSDN博客
迁移几点原则
1. 是否状态型?
2.是否停服?
1.全站迁移停服避免不了. 2.单表迁移,可以局部锁
3. 流量切流
4. 回滚策略?
id不能冲突
数据类型
同构:
两边都是mysql,比较简单. 先dump会有一个checkpoint, 然后用这个checkpoint进行数据主从同步.
异构:
一边是mysql单表,另外一边是mysql 分库分表.
先启动触发器,把所有的增删改查 数据都记录下来. 然后dump .然后去确定触发器从哪个id开始执行. insert,delete,update语句.
比较死,但是不需要通过binlog解析. 比较简单.
数据部分:
1.mysql.
全量 dump 输出, 序列号
不停服增量. 序列号 (或者可以开启 master-master 同步,只要保证只有主从服务只有一个启动)
设置数据库禁止写入,用于验证流量已经没有了.
停服后+readonly增量
验证已全部增量完毕?
开启迁移机房服务
回滚:
打开readonly
切换master.增量 序列号
停服master+readonly 增量
验证已全部增量完毕?
2. mongo类似
增量通过 oplog写脚本, 有主控制,可能数据丢失.
3. redis
直接主从同步--数据量不大.
要么停服,全量拷贝.
没有oplog,无法得到序列号. ?
4. zoonkeeper
流量切换
rpc/端流量
dns切换的问题是有延迟,有些已经解析出来,有缓存. dns服务器在全世界各地.
mq流量
定时任务流量
步骤
1.停主服
2.开slave服务
3.切换dns服务
3.一段时间后开启lvs负载均衡(低峰期)到外网
阿里云的lvs 负载均衡到外网,这里会有大量流量进来.(外网带宽是否支持得住)
4. 没有流量后关闭lvs负载导向.