0

目前我正在进行数据库迁移,为此我使用的是 Pentaho Kettle 和 Perl 脚本。迁移是从 Tumor-registry SQL Server 数据库到 CIDER IBM DB2 数据库。

在这项任务中,我想实现两个目标。

  1. 初始迁移:在此我将所有行(例如 100000)从 Tumor-registry (SQL Server) 迁移到 CIDER (IBM DB2)。

  2. 后续迁移:Tumor-registry SQL Server 数据库不断更新。它不断地添加新行或编辑已经存在的行。

我已经弄清楚了第一步,但在第二步中遇到了两个问题。

a) 如果 Tumor-registry SQL Server 数据库更新为新的 10 行;我怎样才能得到那些新的 10 行?

b)如果已经更新了 10 行,那么我怎样才能获得这 10 行并且还想知道哪些列被更新了。

我的肿瘤登记数据库包含大约 50 个表。

任何帮助是极大的赞赏。

4

3 回答 3

0

您可以使用 IBM Change Data Capture,它将获取源数据库中的所有 DDL 和 DML,并将它们适当地复制到目标数据库中。

http://www-01.ibm.com/software/data/infosphere/change-data-capture/

好像还有其他厂商的解决方案,看看:http ://en.wikipedia.org/wiki/Change_data_capture

于 2012-12-03T13:44:52.380 回答
0

我认为这将通过使用触发器提供 ua 解决方案

插入后在表名上创建触发器触发器名称声明@variablename_1 数据类型;选择 @variablename_1 = column_name 从插入;

如果要将数据保存在最后插入的另一个表中,则创建另一个表

插入表名值(@variablename_1);

于 2012-12-03T11:27:29.600 回答
0

使用TIMESTAMP数据类型创建一个新列。这将跟踪表中最新编辑的记录。

或者

您可以在 Sql server中使用CHECKSUM函数。

于 2012-12-03T06:14:25.993 回答