【发布时间】:2016-04-20 16:54:35
【问题描述】:
我有一个 Oracle 数据库和一个 SQL Server 数据库。有一张表说Inventory,它在两个数据库表中都包含数百万行,并且还在不断增长。
我想每天将Oracle表数据与SQL Server数据进行比较,找出SQL Server表中缺少哪些记录。
什么是最好的方法?
- 创建 SSIS 包。
- 创建 Windows 服务。
我想消耗更少的资源来实现这个需要更少时间和资源的功能。
例如:oracle 中有 1800 万条记录,SQL Server 中有 16/17 百万条记录
出现这种两种不同数据库的情况是因为两个不同的应用程序在线和离线
编辑:如何通过Oracle网关将SQL服务器从oracle连接到SQL服务器到
1) 从 Oracle 直接查询 SQL Server 以第一次更新 SQL Server 中缺失的记录。
2) 在 Oracle 上创建一个触发器,该触发器在从 Oracle 中删除记录时执行,并将已删除的记录插入到新的 oracle 表中。
3) 创建 SSIS 包,将新创建的 oracle 表映射到 SQL Server 以更新 SQL Server 记录。这样每天只需通过 SSIS 处理少量记录。
您如何看待这种方法?
【问题讨论】:
-
我认为一个好的长期策略是不要将您的状态存储在不同的 RDBMS 中。您能否更新解释您如何解决此问题的问题?
-
您能解释一下目前记录是如何复制的吗?
-
Oracle 数据库有所有记录.. 并且记录有可能从 oracle 数据库中删除,我们必须更新从 oracle 数据库中删除的 SQL 服务器记录
-
因此,您不仅要比较,还要插入(和更新?)更改。您可能想将其添加到您的问题中。
-
是的,您的编辑正在谈论我在下面提到的差异复制。
标签: sql-server database oracle ssis