数据库之间的数据同步有以下几种情况:
第一种是在非业务工作时同构数据库之间数据同步,这种情况下,只有存量数据库。只需要将源库中的数据文件拷贝的目标库,目标库加载数据文件即可。
第二种是在非业务工作时异构数据库之间的数据同步,这种情况 下,只有存量数据库。需要将源库中的数据以SQL数据形式导出,然后加载到目标库即可。
第三种是在业务工作时同构数据库之间的数据同步,这种情况下,存量数据同步方法是:将从源库将数据文件导入到目标库。增量数据的同步方法:从源库向目标库同步逻辑日志即可。逻辑日志的时间点需要是开始导存量数据的数据文件之前。
第四种是在业务工作时导构数据库之间的数据同步,这种情况比较复式,解决方案需要依赖特定的条件:
1.若源库支持多版本读,存量数据可以从源库中导出数据文件到目标库,然后再从源库中导出逻辑日志文件进行解析,将开始导出存量数据时间点之后的逻辑日志进行分析,通过SQL形式进行同步。
2.若源库不支持多版本读,存量数据可以从源库中导出数据文件到目标库,然后再从源库中导出逻辑日志文件进行解析,将开始导出存量数据时间点之后的逻辑日志进行分析,通过SQL形式进行同步,此方法的日志解析和SQL拼写需要知道源库中所执行事务的操作的数据从“什么”改变为“什么”。这个不光涉及到逻辑日志文件的解析,也会涉及到数据文件的解析。因为在逻辑日志中只记录了数据文件的位置,并不记录具体的字段的原始值。