我在 SQL Server 数据库中有一些表,我想让它们可供 Oracle 数据库使用。
记住数据完整性是首要任务,那么保持数据同步的最佳做法有哪些?
答案1
这是 DTS/SSIS 常用的那种东西。不过,一个主要的警告是,对于超过 1000 行的行数(如果您需要真正快速的加载,则速度会更少),用于加载到 Oracle 数据库的现成组件的速度慢得令人无法接受。如果我定期(例如,每小时左右)执行此操作,我可能会使用 SSIS 来创建一个包,但我对 Oracle 的加载将通过 SQL*Loader(它是吨更快)。至于数据完整性部分,假设您有相对简单的外键关系,使用 SSIS 进行数据验证并不太困难。如果您有极其复杂的完整性约束,最好在目标数据库上创建一个存储过程,在将 SQL Server 数据加载到暂存表后使用该存储过程进行调用(这是 Oracle EBS 使用的方法,因此从定义上讲,它几乎必须成为最佳实践)。
答案2
我们有类似的情况,并且使用 Golden Gate 软件。
它非常可靠,并且能够保持交易的完整性,即使任何一方的服务器发生宕机也能安然无恙
它的开销也很低,因为它跟踪日志文件并重建事务,而不是在源数据库上执行查询。