oracle导出数据作业已存在,记一次Oracle数据库导入出现“致命错误”终止导入

问题描述

环境:

Windows Server 2008 R2

Oracle 10.2.0.5.0

导出命令

expdp system/******** directory=expdp_dir1 dumpfile=17_full_2017-12-14_12_00_%U.dmp filesize=8192M logfile=17_full_2017-12-14_12_00.log parallel=1 full=y

导入命令

impdp system/****** directory=data_pump_dir dumpfile=17_full_2017-12-14_12_00_%U.dmp logfile=17_full_2017-12-14_12_00.log full=y

导入过程中出现以下错误:

cab77b387c3b1f5cff4de8b1653eea4f.png

最终终止日志:

b259317bc24cb138cff567e27dc5260e.png

解决方法

百度了一波ORA-31693报错后,大部分文档给出的是:EXPDP导出的DMP文件损坏

efd924b36f685cba01714a1f4593599d.png

a2b3fbe8de47a0664fcf347c54ff947e.png

在咨询一个大佬后,在导入时,加入了下面的参数再次导入

TABLE_EXISTS_ACTION=TRUNCATE

成功导入!

有时候我们会需要清除一个表格中的所有资料。要达到者个目的,一种方式是我们在 SQL DROP 那一页 看到 的 DROP TABLE 指令。不过这样整个表格就消失,而无法再被用了。另一种方式就是运用 TRUNCATE TABLE 的指令。在这个指令之下,表格中的资料会完全消失,可是表格本身会继续存在

拓展

当使用IMPDP完成数据库导入时,如遇到表已存在时,Oracle提供给我们如下四种处理方式:

a.忽略(SKIP,默认行为);

b.在原有数据基础上继续增加(APPEND);

c.先DROP表,然后创建表,最后完成数据插入(REPLACE);

d.先TRUNCATE,再完成数据插入(TRUNCATE)(表格中的所有资料会丢失,但是表格本身会继续存在)

看看这四种处理方式的效果:

1、REPLACE

C:\Users\aaaa>impdp \"system/yang as sysdba \" remap_schema=scott:scott directory=dumpdir

dumpfile=scott_%U.dmp table_exists_action=replace logfile=scott_impdp_replace.log

Import: Release 11.1.0.6.0 - Production on 星期一, 14 3月, 2011 15:40:26

Copyright (c) 2003, 2007, Oracle. All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

已成功加载/卸载了主表 "SYS"."SYS_IMPORT_FULL_01"

启动 "SYS"."SYS_IMPORT_FULL_01": "system/******** AS SYSDBA" remap_schema=scott:scott directory=dum

pdir dumpfile=scott_%U.dmp table_exists_action=replace logfile=scott_impdp_replace.log

处理对象类型 SCHEMA_EXPORT/USER

ORA-31684: 对象类型 USER:"SCOTT" 已存在

处理对象类型 SCHEMA_EXPORT/SYSTEM_GRANT

处理对象类型 SCHEMA_EXPORT/ROLE_GRANT

处理对象类型 SCHEMA_EXPORT/DEFAULT_ROLE

处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

处理对象类型 SCHEMA_EXPORT/TABLE/TABLE

处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA

. . 导入了 "SCOTT"."DEPT" 5.937 KB 4 行

. . 导入了 "SCOTT"."EMP" 8.570 KB 14 行

. . 导入了 "SCOTT"."EXPTAB" 5.015 KB 2 行

. . 导入了 "SCOTT"."SALGRADE" 5.867 KB 5 行

. . 导入了 "SCOTT"."BONUS" 0 KB 0 行

处理对象类型 SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT

处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX

处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

处理对象类型 SCHEMA_EXPORT/FUNCTION/FUNCTION

ORA-31684: 对象类型 FUNCTION:"SCOTT"."EXP_FUNC" 已存在

处理对象类型 SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION

处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

处理对象类型 SCHEMA_EXPORT/POST_SCHEMA/PROCACT_SCHEMA

作业 "SYS"."SYS_IMPORT_FULL_01" 已经完成, 但是有 2 个错误 (于 15:40:31 完成)

2、APPEND

C:\Users\aaaa>impdp \"system/yang as sysdba \" remap_schema=scott:scott directory=dumpdir dumpfil

e=scott_%U.dmp table_exists_action=append logfile=scott_impdp_append.log

Import: Release 11.1.0.6.0 - Production on 星期一, 14 3月, 2011 15:42:24

Copyright (c) 2003, 2007, Oracle. All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

已成功加载/卸载了主表 "SYS"."SYS_IMPORT_FULL_01"

启动 "SYS"."SYS_IMPORT_FULL_01": "system/******** AS SYSDBA" remap_schema=scott:scott directory=dum

pdir dumpfile=scott_%U.dmp table_exists_action=append logfile=scott_impdp_append.log

处理对象类型 SCHEMA_EXPORT/USER

ORA-31684: 对象类型 USER:"SCOTT" 已存在

处理对象类型 SCHEMA_EXPORT/SYSTEM_GRANT

处理对象类型 SCHEMA_EXPORT/ROLE_GRANT

处理对象类型 SCHEMA_EXPORT/DEFAULT_ROLE

处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

处理对象类型 SCHEMA_EXPORT/TABLE/TABLE

ORA-39152: 表 "SCOTT"."DEPT" 已存在。由于附加了 table_exists_action, 数据将附加到现有表, 但是将跳过

所有相关元数据。

ORA-39152: 表 "SCOTT"."EMP" 已存在。由于附加了 table_exists_action, 数据将附加到现有表, 但是将跳过所

有相关元数据。

ORA-39152: 表 "SCOTT"."BONUS" 已存在。由于附加了 table_exists_action, 数据将附加到现有表, 但是将跳过

所有相关元数据。

ORA-39152: 表 "SCOTT"."SALGRADE" 已存在。由于附加了 table_exists_action, 数据将附加到现有表, 但是将

跳过所有相关元数据。

ORA-39152: 表 "SCOTT"."EXPTAB" 已存在。由于附加了 table_exists_action, 数据将附加到现有表, 但是将跳

过所有相关元数据。

处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA

ORA-31693: 表数据对象 "SCOTT"."DEPT" 无法加载/卸载并且被跳过, 错误如下:

ORA-00001: 违反唯一约束条件 (SCOTT.PK_DEPT)

ORA-31693: 表数据对象 "SCOTT"."EMP" 无法加载/卸载并且被跳过, 错误如下:

ORA-00001: 违反唯一约束条件 (SCOTT.PK_EMP)

. . 导入了 "SCOTT"."EXPTAB" 5.015 KB 2 行

. . 导入了 "SCOTT"."SALGRADE" 5.867 KB 5 行

. . 导入了 "SCOTT"."BONUS" 0 KB 0 行

处理对象类型 SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT

处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX

处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

处理对象类型 SCHEMA_EXPORT/FUNCTION/FUNCTION

ORA-31684: 对象类型 FUNCTION:"SCOTT"."EXP_FUNC" 已存在

处理对象类型 SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION

处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

处理对象类型 SCHEMA_EXPORT/POST_SCHEMA/PROCACT_SCHEMA

作业 "SYS"."SYS_IMPORT_FULL_01" 已经完成, 但是有 9 个错误 (于 15:42:31 完成)

3、SKIP

C:\Users\aaaa>impdp \"system/yang as sysdba \" remap_schema=scott:scott directory=dumpdir dumpfil

e=scott_%U.dmp table_exists_action=skip logfile=scott_impdp_skip.log

Import: Release 11.1.0.6.0 - Production on 星期一, 14 3月, 2011 16:01:18

Copyright (c) 2003, 2007, Oracle. All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

已成功加载/卸载了主表 "SYS"."SYS_IMPORT_FULL_01"

启动 "SYS"."SYS_IMPORT_FULL_01": "system/******** AS SYSDBA" remap_schema=scott:scott directory=dum

pdir dumpfile=scott_%U.dmp table_exists_action=skip logfile=scott_impdp_skip.log

处理对象类型 SCHEMA_EXPORT/USER

ORA-31684: 对象类型 USER:"SCOTT" 已存在

处理对象类型 SCHEMA_EXPORT/SYSTEM_GRANT

处理对象类型 SCHEMA_EXPORT/ROLE_GRANT

处理对象类型 SCHEMA_EXPORT/DEFAULT_ROLE

处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

处理对象类型 SCHEMA_EXPORT/TABLE/TABLE

ORA-39151: 表 "SCOTT"."DEPT" 已存在。由于跳过了 table_exists_action, 将跳过所有相关元数据和数据。

ORA-39151: 表 "SCOTT"."EMP" 已存在。由于跳过了 table_exists_action, 将跳过所有相关元数据和数据。

ORA-39151: 表 "SCOTT"."BONUS" 已存在。由于跳过了 table_exists_action, 将跳过所有相关元数据和数据。

ORA-39151: 表 "SCOTT"."SALGRADE" 已存在。由于跳过了 table_exists_action, 将跳过所有相关元数据和数据

ORA-39151: 表 "SCOTT"."EXPTAB" 已存在。由于跳过了 table_exists_action, 将跳过所有相关元数据和数据。

处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA

处理对象类型 SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT

处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX

处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

处理对象类型 SCHEMA_EXPORT/FUNCTION/FUNCTION

ORA-31684: 对象类型 FUNCTION:"SCOTT"."EXP_FUNC" 已存在

处理对象类型 SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION

处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

处理对象类型 SCHEMA_EXPORT/POST_SCHEMA/PROCACT_SCHEMA

作业 "SYS"."SYS_IMPORT_FULL_01" 已经完成, 但是有 7 个错误 (于 16:01:22 完成)

4、TRUNCATE

C:\Users\aaaa>impdp \"system/yang as sysdba \" remap_schema=scott:scott directory=dumpdir

dumpfile=scott_%U.dmp table_exists_action=truncate logfile=scott_impdp_truncate.log

Import: Release 11.1.0.6.0 - Production on 星期一, 14 3月, 2011 16:01:45

Copyright (c) 2003, 2007, Oracle. All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

已成功加载/卸载了主表 "SYS"."SYS_IMPORT_FULL_01"

启动 "SYS"."SYS_IMPORT_FULL_01": "system/******** AS SYSDBA" remap_schema=scott:scott directory=dum

pdir dumpfile=scott_%U.dmp table_exists_action=truncate logfile=scott_impdp_truncate.log

处理对象类型 SCHEMA_EXPORT/USER

ORA-31684: 对象类型 USER:"SCOTT" 已存在

处理对象类型 SCHEMA_EXPORT/SYSTEM_GRANT

处理对象类型 SCHEMA_EXPORT/ROLE_GRANT

处理对象类型 SCHEMA_EXPORT/DEFAULT_ROLE

处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

处理对象类型 SCHEMA_EXPORT/TABLE/TABLE

ORA-39120: 无法截断表 "SCOTT"."DEPT", 将跳过数据。引起失败的错误为:

ORA-02266: 表中的唯一/主键被启用的外键引用

ORA-00955: 名称已由现有对象使用

ORA-39153: 表 "SCOTT"."EMP" 已存在且已截断。由于截断了 table_exists_action, 将加载数据, 但是将跳过所

有相关元数据。

ORA-39153: 表 "SCOTT"."BONUS" 已存在且已截断。由于截断了 table_exists_action, 将加载数据, 但是将跳过

所有相关元数据。

ORA-39153: 表 "SCOTT"."SALGRADE" 已存在且已截断。由于截断了 table_exists_action, 将加载数据, 但是将

跳过所有相关元数据。

ORA-39153: 表 "SCOTT"."EXPTAB" 已存在且已截断。由于截断了 table_exists_action, 将加载数据, 但是将跳

过所有相关元数据。

处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA

. . 导入了 "SCOTT"."EMP" 8.570 KB 14 行

. . 导入了 "SCOTT"."EXPTAB" 5.015 KB 2 行

. . 导入了 "SCOTT"."SALGRADE" 5.867 KB 5 行

. . 导入了 "SCOTT"."BONUS" 0 KB 0 行

处理对象类型 SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT

处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX

处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

处理对象类型 SCHEMA_EXPORT/FUNCTION/FUNCTION

ORA-31684: 对象类型 FUNCTION:"SCOTT"."EXP_FUNC" 已存在

处理对象类型 SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION

处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

处理对象类型 SCHEMA_EXPORT/POST_SCHEMA/PROCACT_SCHEMA

作业 "SYS"."SYS_IMPORT_FULL_01" 已经完成, 但是有 7 个错误 (于 16:01:53 完成)

尾巴

感谢大佬

1d19ca1062a98eeff766819568d9983f.png

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值