通常情况下我能想到的就是先做成双写模式,然后再导老数据,然后切换读库,这样的话很难做到1s之内。
收起精确到1秒以内什么意思?你要最快速的迁移?
库a(老库、源库) 库b(新库、目标库)
假设库生产是oltp库,假设客户端使用dns连接
在业务低峰,比如说半夜时候进行,关闭半夜的备份,收缩表等任务计划
1、老库导出备份,比如xtra,在b库恢复
2、b库搭建为a库的从库
3、等待a库完全追上主库(看回放是否完毕,pos一否一致)
4、b库设置read_only(这段时间业务只读,无法访问)
5、等待b库没有旧的dml语句(因为是oltp库,所以每个语句都很快会结束),等待a库完全追上主库(看回放是否完毕,pos一否一致,这段时间预计不会太久)
6、dns将数据库域名指向到b库
停机的时间是有4和5,但是主从因为基本上实时同步,所以可以控制在很短的时间内完成。