我完成了以下伴侣:

expdp system/password@localdb ^
schemas=SCH directory=dumps_dir dumpfile=SCH_%date%.dmp logfile=expdpSCH_%date%.log
.

它跑得很好,没有错误。但是当我使用命令时:

impdp system/password@localdb ^
schemas=SCH directory=dumps_dir dumpfile=SCH_%date%.dmp logfile=impdpSCH_%date%.log
.

它给了我一堆错误,表,序列和其他已经存在的东西。所以我有一个问题,我可以使用这样的方法,否则这是错误的,我应该使用别的东西吗?

有帮助吗?

解决方案

检查文档以获取更多信息或类型生成的。有一个参数( table_exists_action ),它定义了如果要覆盖现有对象,或者是否要附加。

table_exists_action
如果导入的对象已经存在,则采取操作。
有效关键字是:附加,替换,[跳过]和截断。

其他提示

no,这不是可能的方式:

  • 大多数非表对象都将存在于架构中。您已经获得了这样的错误消息。导入不会覆盖它。
  • 您可以配置出口的工作原理如果表达已经存在,但如果有一个表由另一个表引用的表,则截断并替换将无法正常工作。
  • 即使没有对表索引没有外键引用,将剧烈缩小导入
  • 可能发生很多其他问题(关于触发,分区,对其他表格的引用,也许更多)
因此,使用Expdp / IMPDP同步架构的唯一合理方式是在导入之前删除架构。

如果您不想出于某种原因删除架构,但替换表的数据需要大量的额外操作。

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top