在Oracle转储导入期间避免错误行

时间:2012-05-15 10:27:22

标签: oracle dump

我正在使用Oracle的imp/exp实用程序将数据库传输到另一台服务器。 首先,我创建了一个空数据库,其中包含与源数据库相同的表空间。

当我使用full mode时导入的结果很好,数据库工作正常,但由于现有的系统对象,我得到了大量的错误。 这是相当令人不安的,我无法检查是否有“真正的”错误消息。 一个选项是使用ignore=Y,但根据docs,这意味着表数据可能会重复。这听起来不太好。或者,如果我只导入一次就没有重复?

我也可以使用user mode导入,但根据this table,我认为重要的部分不会以这种方式导入,我认为也应该避免。

可能是什么解决方案?

我应该使用expdp/impdp,他们是否解决了这个问题?

提前致谢。

2 个答案:

答案 0 :(得分:2)

出于多种原因(可用性,性能等),您绝对应该使用expdp / impdp。当然,它可以卸载/加载整个数据库。您可以使用TABLE_EXISTS_ACTION来控制表中已经存在的内容(SKIP | APPEND | TRUNCATE | REPLACE)已存在于目标数据库中。您还可以使用EXCLUDE参数来避免导入未更改/不需要的架构对象。

答案 1 :(得分:0)

通常,您只对某些架构感兴趣,并且您不想导入系统架构。如果转储文件包含完整导出,则可以导入您感兴趣的模式,如下所示:

imp system/<password>@<database> file=yourdump.dmp fromuser=<user1>,<user2>...<user_n>