有没有一种方法可以使用DbForge Data Compare for Oracle删除DB1中与DB2中相同的数据?

o4hqfura  于 2023-11-17  发布在  Oracle
关注(0)|答案(1)|浏览(168)

我正在询问DbForge Data Compare for Oracle程序。
我有两个数据库(DB-1和DB-2)各自托管在不同的服务器上。DB-1是生产数据库,DB-2是旧的生产数据库。在DB-2中,有大量数据需要传输到DB-1,这是使用DbForge完成的。经过一些更改后,现在需要删除托管在DB-1中的数据,这些数据仅从DB-2移动,并且在数据事务之前保持原始数据在DB-1中的完整性。但是最后一次备份有点旧,现在不可以进行回滚。
当我进行数据比较时,会出现一些列,指示每个服务器的数据类型(如下图所示)。
reference image of the DbForge Data Compare for Oracle interface here
正如你所看到的,有一些列被称为:“Only in Source”,“Different Records”,“Identical Records”,“Only in Target”,在我的例子中,除了“Identical Records”之外,所有这些列似乎都被检查表选中了。我想有一种方法可以使用检查表来消除DB-1中与DB-2相等的数据。
(由于我公司的安全政策,我没有使用数据库的真实的图像,它仅仅是参考,所以你可以看到比较中出现的界面是什么样的)。
是否有一种方法来大规模删除我需要使用“DbForge数据比较”?如果有,它会怎么做?或者它不包含选项,我将不得不使用SQL查询?

x8diyxa7

x8diyxa71#

如果您仍然拥有用于将数据从DB2传输到DB 1的同步脚本,则可以重新使用它,手动将XSLT转换为XSLT。
第二种选择是创建一个新的数据库,比如DB 3。然后需要用DB 1中存在但DB2中不存在的所有新记录填充它。下面是如何做到这一点:
1.打开DataCompare。将DB 1设置为Source,将DB2设置为Target,然后比较它们。
1.比较之后,您将得到DB 1中存在的Only In Source记录。这些是您需要的记录。

  1. Equal和Different记录在DB 1和DB2中都存在,因此应该删除,因为它们不再相关。
    1.通过“不同记录”和“相同记录”选项,删除所有“相等”和“不同”记录。
    1.创建一个仅包含同步脚本(即,仅在源记录中)并保存它。
    1.创建一个名为DB 3的新数据库。使用Schema Export/Import将DB2的结构传输到DB 3(但不传输数据)。
    1.使用前面保存的同步脚本(步骤5),将数据迁移到DB 3。
    1.因此,您将获得包含所需所有数据的DB 3。
    1.回到DataCompare中,将DB 3设置为Source,将DB 1设置为Target。
    1.比较并同步这些数据库,结果将生成一个脚本来从DB 1中删除所有不相关的记录。

相关问题