0

假设我有 2 个数据库 A 和 B,它们最初具有相同的架构、表等,并且这些表中的数据相同。

然后,用户只能在一个月内修改数据库 A,而 B 在该月内不会更改。在月底,我想将数据从 A 移动到 B。

如果可能,我只想从 A 获取修改后的数据和新数据。我可以使用 expdp 从 A 导出,使用查询来检查该月内添加或更新的记录,但我不确定该数据是否/如何使用 impdp 导入。

我可能弄错了,但它看起来不像 impdp 处理导入新行和更改行而不重新加载所有行的任何 TABLE_EXISTS_ACTION 选项(SKIP、APPEND、TRUNCATE、REPLACE)。

从 Oracle 站点,“APPEND 从源加载行并保持现有行不变。”,所以据我了解,不能使用它,因为它不会处理导入目标 (A) 中存在的任何行,但是在源 (B) 中修改。

有没有一种方法可以让 impdp 只导入新行并更新现有行?还是我必须从 A 导出所有数据并导入到 B?

4

1 回答 1

1

“如果可能,我只想从 A 获取修改后的数据和新数据”

你为什么在乎?无论您拆除所有内容还是仅应用增量,最终状态都是相同的。

一般来说,truncate + wholesale insert它比append + selective update实际效率更高,尤其是在规模上,这可能是数据泵导入不包括更新操作的原因。

于 2017-07-12T17:19:50.290 回答