如何使用 Oracle Data Pump 获得一致的导出?

如何使用 Oracle Data Pump 获得一致的导出?

我正在尝试从模拟的模式中获取一致的导出(使用数据泵)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')\”

此外,您必须启用自动撤消管理才能使用此功能。

相关内容