ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【导出导入】IMPDP table_exists_action 参数的应用

【导出导入】IMPDP table_exists_action 参数的应用

原创 Linux操作系统 作者:杨奇龙 时间:2011-03-14 16:06:29 5 删除 编辑
当使用IMPDP完成数据库导入时,如遇到表已存在时,Oracle提供给我们如下四种处理方式:
a.忽略(SKIP,默认行为);
b.在原有数据基础上继续增加(APPEND);
c.先DROP表,然后创建表,最后完成数据插入(REPLACE);
d.先TRUNCATE,再完成数据插入(TRUNCATE)。
下面做实验来看看几种方式的效果:
==============================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 完成)

===============================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 完成)

===========================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 完成)

===========================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 完成)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22664653/viewspace-689403/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
MySQL DBA NoSQL DEVOPS

注册时间:2009-10-07

  • 博文量
    1026
  • 访问量
    7702405