Oracle 11g数据库我用EXPDP和IMPDP备份与还原,impdp还原时我用参数TABLE_EXISTS_ACTION=replace,由于表有关联,有外键约束,所以还原一直出错,请有用过EXPDP和IMPDP的高手帮我解答下,谢谢了!以下是还原过程,在线等,急急
C:\Documents and Settings\anonymous>impdp test/joyce directory=data_pump_dir sch
emas=test  dumpfile=user1.dmp TABLE_EXISTS_ACTION=replaceImport: Release 11.1.0.7.0 - Production on 星期二, 01 9月, 2009 11:55:49Copyright (c) 2003, 2007, Oracle.  All rights reserved.连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加载/卸载了主表 "TEST"."SYS_IMPORT_SCHEMA_01"
启动 "TEST"."SYS_IMPORT_SCHEMA_01":  test/******** directory=data_pump_dir schem
as=test dumpfile=user1.dmp TABLE_EXISTS_ACTION=replace
处理对象类型 SCHEMA_EXPORT/USER
ORA-31684: 对象类型 USER:"TEST" 已存在
处理对象类型 SCHEMA_EXPORT/SYSTEM_GRANT
处理对象类型 SCHEMA_EXPORT/ROLE_GRANT
处理对象类型 SCHEMA_EXPORT/DEFAULT_ROLE
处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE
ORA-39121: 无法替换表 "TEST"."TT", 将跳过数据。引起失败的错误为:
ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
ORA-00955: 名称已由现有对象使用
ORA-39121: 无法替换表 "TEST"."RR", 将跳过数据。引起失败的错误为:
ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
ORA-00955: 名称已由现有对象使用
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX
ORA-39112: 跳过从属对象类型 INDEX:"TEST"."PK_TT_ID", 创建基本对象类型 TABLE:"TES
T"."TT" 失败
ORA-39112: 跳过从属对象类型 INDEX:"TEST"."PK_RR_ID", 创建基本对象类型 TABLE:"TES
T"."RR" 失败
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
ORA-39112: 跳过从属对象类型 CONSTRAINT:"TEST"."PK_RR_ID", 创建基本对象类型 TABLE
:"TEST"."RR" 失败
ORA-39112: 跳过从属对象类型 CONSTRAINT:"TEST"."PK_TT_ID", 创建基本对象类型 TABLE
:"TEST"."TT" 失败
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
ORA-39112: 跳过从属对象类型 INDEX_STATISTICS, 创建基本对象类型 INDEX:"TEST"."PK_
TT_ID" 失败
ORA-39112: 跳过从属对象类型 INDEX_STATISTICS, 创建基本对象类型 INDEX:"TEST"."PK_
RR_ID" 失败
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
ORA-39112: 跳过从属对象类型 REF_CONSTRAINT:"TEST"."FK_TT_ID", 创建基本对象类型 T
ABLE:"TEST"."RR" 失败
处理对象类型 SCHEMA_EXPORT/POST_SCHEMA/PROCACT_SCHEMA
作业 "TEST"."SYS_IMPORT_SCHEMA_01" 已经完成, 但是有 10 个错误 (于 11:55:52 完成)

解决方案 »

  1.   

    EXCLUDE 排除特定的对象类型EXCLUDE=CONSTRAINTreplace是指的,如果有表存在,先删除,然后建立。你这里出错是不是这些表还在被其他的session在使用呀。或者相关这个对象的事务没有结束
      

  2.   


    C:\Documents and Settings\anonymous>impdp test/joyce directory=data_pump_dir sch
    emas=test  dumpfile=user.dmp  EXCLUDE=CONSTRAINT  TABLE_EXISTS_ACTION=replaceImport: Release 11.1.0.7.0 - Production on 星期二, 01 9月, 2009 14:53:48Copyright (c) 2003, 2007, Oracle.  All rights reserved.连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    ORA-39002: 操作无效
    ORA-39168: 未找到对象路径 CONSTRAINT。为什么还是出错,什么原因
    #1楼这句话什么意思,我不懂,可不可以详细说下怎么弄,我刚学用EXPDP和IMPDP谢谢(你这里出错是不是这些表还在被其他的session在使用呀。或者相关这个对象的事务没有结束)
      

  3.   

    解决了,只要把TABLE__EXISTS_ACTION=TRUNCATE就可以了,就会直接覆盖不会出现外键约束出现之类的,谢谢大家的帮忙。