![如何使用 Oracle Data Pump 获得一致的导出?](https://linux22.com/image/484240/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20Oracle%20Data%20Pump%20%E8%8E%B7%E5%BE%97%E4%B8%80%E8%87%B4%E7%9A%84%E5%AF%BC%E5%87%BA%EF%BC%9F.png)
我正在尝试从模拟的模式中获取一致的导出(使用数据泵)CONSISTENT=Y
。目前,我正在以这种方式执行数据泵:
'/ AS SYSDBA' schemas=arrels dumpfile=arrels.dmp nologfile=y flashback_time='2009-06-03 12:00:02'
但是导入时显示不一致的错误:
ORA-02298: cannot enable name - parent keys not found
如果数据泵导出正在使用flashback_time
,当然,导出时约束也会被验证:
- 为什么会发生这种情况?
- 有什么建议可以解决它吗?
答案1
我找到了问题的答案。我输入了准确的当前时间戳:
flashback_time='2009-06-03 12:05:02'
如果我放一个更早的时间戳(比如提前 5 分钟),它就能完美运行......
答案2
您确定要导出的架构 ('arrels') 没有引用其他架构中的对象的引用约束吗?如果 arrels 架构中的一个或多个外键引用引用其他架构中的表,那么您也必须导出/导入它们。
编辑:文档似乎表明您需要在双引号中指定闪回时间,例如:
'...flashback_time='“2009-06-03 12:00:02”'
我遇到的另一个示例是使用 TO_TIMESTAMP 函数:
exp 系统/管理器文件 = exp.dmp flashback_time = \“TO_TIMESTAMP('19-06-2004 13:24:26', 'DD-MM-YYYY HH24:MI:SS')\”
此外,您必须启用自动撤消管理才能使用此功能。