大约的流程就是
0 、准备好 B 库以及变更数据结构脚本,A 、B 库上安装 OGG 并做好相关配置
1 、A 上启动 OGG 抽取投递进程
2 、A 库上导出数据,传输到 B 库导入
3 、B 库上运行变更数据结构脚本
4 、B 库上启动 OGG 应用进程
5 、停止业务应用,等待 A 、B 库上 OGG 完成所有抽取投递应用
6 、更改业务数据源到 B 库
7 、启动业务应用
可以看到这种方案只在最后三步才需要停顿业务,前面实施时间完全可以很充裕(特别是 2T 数据量的导入导出一个周末,稍微不顺利还真不一定搞得定),所以真正对业务影响比较短。这些过程,应该先进行演练,最后三步用业务测试环境来进行最后验证。如果 AB 数据结构变化过大,单靠 OGG 也不一定能适应,就还需要其它方案来弥补。