我以前用过 2 种方式,都是生产环境用的,供参考:
1. 可以使用触发器 trigger ,将 insert 、update 、delete 的唯一标识记录到新一个新表 tblrecordlog 中,然后写一个同步程序根据 tblrecordlog 同步数据。
2. 有一个项目,背景:只读对方数据库,对方不允许对他们的数据库做任何变更(甲方核心业务系统,没人肯背锅,没法用方案 1 )。需要将对方业务数据每天导入到我们的数据库里做数据分析。数据量大概是 10 万条/天,在开协调会的时候,对方信誓旦旦的承诺业务数据不会变更昨天及之前的数据。
然后项目跑起来,发现对方系统会偷偷变更以前的数据,1 个月会出现几条到十几条。我们的应对措施是先根据日期汇总前 90 天的金额和笔数与我们数据库做比较,如果不相同就同步整天的所有记录。 |