ggponti Asked: 2009-05-07 05:44:56 +0800 CST2009-05-07 05:44:56 +0800 CST 2009-05-07 05:44:56 +0800 CST SQL Server 到 Oracle 数据同步的最佳实践 772 我在 SQL Server 数据库中有一些表,我希望这些表可供 Oracle 数据库使用。 请记住,数据完整性是重中之重,保持数据同步的最佳实践是什么? sql-server oracle 2 个回答 Voted Best Answer Harper Shelby 2009-05-07T06:00:15+08:002009-05-07T06:00:15+08:00 这是 DTS/SSIS 常用的那种东西。但是,一个主要警告是,用于加载到 Oracle 数据库的开箱即用组件对于超过 1000 的行数来说速度慢得令人无法接受(如果您需要非常快速的加载,则速度会更慢)。如果我定期执行此操作(例如,每隔一小时左右),我可能会使用 SSIS 创建一个包,但我对 Oracle 的负载将通过 SQL*Loader(这是一吨快点)。至于数据完整性部分,假设你有相对简单的外键关系,使用 SSIS 来做数据的验证并不难。如果您有极其复杂的完整性约束,最好在目标数据库上创建一个存储过程,在将 SQL Server 数据加载到临时表后调用它(这是 Oracle EBS 使用的方法,所以它几乎根据定义必须是最佳实践)。 Mark Harrison 2009-05-07T22:14:14+08:002009-05-07T22:14:14+08:00 我们也有类似的情况,并且使用Golden Gate软件。 http://www.goldengate.com 它非常可靠并且 - 保持事务完整性 - 可以在任何一方的服务器停机时间中幸存下来 它的开销也很低,因为它跟踪日志文件并重建事务,而不是在源数据库上执行查询。
这是 DTS/SSIS 常用的那种东西。但是,一个主要警告是,用于加载到 Oracle 数据库的开箱即用组件对于超过 1000 的行数来说速度慢得令人无法接受(如果您需要非常快速的加载,则速度会更慢)。如果我定期执行此操作(例如,每隔一小时左右),我可能会使用 SSIS 创建一个包,但我对 Oracle 的负载将通过 SQL*Loader(这是一吨快点)。至于数据完整性部分,假设你有相对简单的外键关系,使用 SSIS 来做数据的验证并不难。如果您有极其复杂的完整性约束,最好在目标数据库上创建一个存储过程,在将 SQL Server 数据加载到临时表后调用它(这是 Oracle EBS 使用的方法,所以它几乎根据定义必须是最佳实践)。
我们也有类似的情况,并且使用Golden Gate软件。
它非常可靠并且 - 保持事务完整性 - 可以在任何一方的服务器停机时间中幸存下来
它的开销也很低,因为它跟踪日志文件并重建事务,而不是在源数据库上执行查询。