假设我有2个数据库,A和B,它们最初具有相同的模式,表等,并且这些表中的数据相同。
然后,用户只能修改数据库A一个月,而B在该月内不会更改。在月底,我想将数据从A移动到B.
如果可能的话,我只想从A中获取修改后的数据。我可以使用expdp从A导出,使用查询检查在该月内添加或更新的记录,但我不确定是否/如何使用impdp导入数据。
我可能会弄错,但它看起来不像任何TABLE_EXISTS_ACTION选项(SKIP,APPEND,TRUNCATE,REPLACE),因为impdp句柄导入新的AND更改的行而不重新加载所有行。
在Oracle网站上," APPEND从源加载行并保持现有行不变。",因此根据我的理解不能使用,因为它不会处理导入目标(A)中存在但在源(B)中修改的任何行。
impdp是否可以导入新行并更新现有行?或者我是否必须从A导出所有数据并导入到B?
答案 0 :(得分:1)
“如果可能,我只想从A”
中获取修改后的数据
为什么要关心?无论您是拆除所有内容还是仅应用增量,结束状态都是相同的。
一般来说,truncate + wholesale insert
比append + selective update
更有效,特别是在规模上,这可能是数据泵导入不包括更新操作的原因。