3种方式
1)一般:停止服务 -> 迁移 -〉 在新机器恢复服务
简单,用户不友好(遇到迁移失败,中断几天,企业业务就不用做了)
2)双机:数据写两份
资源消耗大,一台成功,一台失败该如何办?
3)全量 + 增量
在某时间点为间隔,写入原机器的定位增量数据
先复制全量数据,再复制增量数据(因为增量数据少,所以机器中断的时间就短了几个小时)
设计:
写原数据库前,先写log
另一线程读log并写入新数据库
(新原数据差距就很小了)
特殊的操作,让用户自己编写(可能就是复杂的sql语句,让熟悉这表的开发写,数据导入的时候执行就是)
XA协议:分布式事务协议,但估计开发有难度,支持有限
http://zh.wikipedia.org/zh/X/Open_XA
Tungsten: 钨
Tungsten Replicator: 可以在异构数据库中增量复制数据(可能是异步log 来实现的)
https://code.google.com/p/tungsten-replicator/