暂无图片
暂无图片
10
暂无图片
暂无图片
暂无图片

Oracle impdp全库导入报错总结

原创 Root__Liu 2022-05-23
8089

impdp全库导入报错总结

问题表述:impdp全库导入时,会遇到大量报错,有些报错可以忽略,有些报错需要处理,做个总结。

操作系统:aix–>linux

数据库版本:11.1.0.7–>11.2.0.4

操作:impdp

参考文档:详见各具体报错

详细报错及处理过程:

报错1: Cannot set an SCN larger than the current SCN

Processing object type DATABASE_EXPORT/SYSTEM_PROCOBJACT/PRE_SYSTEM_ACTIONS/PROCACT_SYSTEM
>>> Cannot set an SCN larger than the current SCN. If a Streams Capture configuration was imported then the Apply that processes the captured messages needs to be dropped and recreated. See My Oracle Support article number 1380295.1.

Processing object type DATABASE_EXPORT/SYSTEM_PROCOBJACT/PROCOBJ
Processing object type DATABASE_EXPORT/SYSTEM_PROCOBJACT/POST_SYSTEM_ACTIONS/PROCACT_SYSTEM

解决:

添加参数STREAMS_CONFIGURATION=N


报错2:ORA-39083 ORA-01031

ORA-39083: Object type TABLE:"ORDDATA"."ORDDCM_DOCS_TMP" failed to create with error:
ORA-01031: insufficient privileges

Failing sql is:
CREATE GLOBAL TEMPORARY TABLE "ORDDATA"."ORDDCM_DOCS_TMP" ("DOC_ID" NUMBER(*,0) NOT NULL ENABLE, "DOC_NAME" VARCHAR2(100 CHAR) NOT NULL ENABLE, "DOC_TYPE_ID" NUMBER NOT NULL ENABLE, "DOC_CONTENT" "SYS"."XMLTYPE"  NOT NULL ENABLE, "ORACLE_INSTALL" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE, "CREATE_DATE" DATE DEFAULT SYSDATE NOT NULL ENABLE) ON COMMIT PRESERVE ROWS

解决:

忽略,也可以手动执行失败的sql,可以执行成功。

参考:ORA-39083/ORA-1031 While Importing An ORDDATA Table (Doc ID 1909772.1)


报错3:ORA-39083 ORA-23327

ORA-39083: Object type PRE_TABLE_ACTION failed to create with error:
ORA-23327: imported deferred rpc data does not match GLOBAL NAME of importing db

解决:

源库和目标库的global_name不一致。导入的时候,重新设置global_name,导入完成后,再改回去。或者可以忽略。

参考:IMPDP - ORA-23327 (does Not Match GLOBAL NAME) On PRE_TABLE_ACTION (Doc ID 1568721.1)


报错4:ORA-39117 ORA-39083 ORA-31000

ORA-39117: Type needed to create table is not included in this operation. Failing sql is:
CREATE TABLE "AR"."AR_REV_REC_QT" ("Q_NAME" VARCHAR2(30 BYTE), "MSGID" RAW(16), "CORRID" VARCHAR2(128 BYTE), "PRIORITY" NUMBER, "STATE" NUMBER, "DELAY" TIMESTAMP (6), "EXPIRATION" NUMBER, "TIME_MANAGER_INFO" TIMESTAMP (6), "LOCAL_ORDER_NO" NUMBER, "CHAIN_NO" NUMBER, "CSCN" NUMBER, "DSCN" NUMBER, "ENQ_TIME" TIMESTAMP (6), "ENQ_UID" NUMBER, "ENQ_TID" VARCHAR2(30 BYTE), "DEQ_TIME" TIMESTAMP (6), "DEQ_UID" NUMBER, "DEQ_TID

ORA-39083: Object type TABLE:"AZ"."AZ_REQUESTS" failed to create with error:
ORA-31000: Resource 'http://isetup.oracle.com/2006/selectionsets.xsd' is not an XDB schema document

Failing sql is:
CREATE TABLE "AZ"."AZ_REQUESTS" ("JOB_NAME" VARCHAR2(45 BYTE) NOT NULL ENABLE, "REQUEST_TYPE" VARCHAR2(1 BYTE) NOT NULL ENABLE, "USER_ID" NUMBER(15,0) NOT NULL ENABLE, "REQUEST_ID" NUMBER(15,0) NOT NULL ENABLE, "INSTANCE_NAME" VARCHAR2(45 BYTE) NOT NULL ENABLE, "JOB_DESC" VARCHAR2(1800 BYTE), "PREVIOUS_REQ_IDS" VARCHA

ORA-39117: Type needed to create table is not included in this operation. Failing sql is:
CREATE TABLE "CS"."CS_SERVICE_REQUEST_IQT" ("Q_NAME" VARCHAR2(30 BYTE), "MSGID" RAW(16), "CORRID" VARCHAR2(128 BYTE), "PRIORITY" NUMBER, "STATE" NUMBER, "DELAY" TIMESTAMP (6), "EXPIRATION" NUMBER, "TIME_MANAGER_INFO" TIMESTAMP (6), "LOCAL_ORDER_NO" NUMBER, "CHAIN_NO" NUMBER, "CSCN" NUMBER, "DSCN" NUMBER, "ENQ_TIME" TIMESTAMP (6), "ENQ_UID" NUMBER, "ENQ_TID" VARCHAR2(30 BYTE), "DEQ_TIME" TIMESTAMP (6), "DEQ_UID" NUMBER,

………    --总共40个失败语句
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA

解决:

经分析,报错语句的定义,有用到system、sys用户的自定义对象,而目标库没有自定义对象,由于导出导入时排除掉system、sys、MDSYS等系统用户,导致建表失败。重新导出,不用排除系统用户,再次重新导入,该报错消失。


报错5:导入时后台alert有告警

导入时,alert告警

Thu Nov 18 11:23:51 2021
The value (225) of MAXTRANS parameter ignored.

解决:

bug ,不需处理。导出导入没有什么影响,可以忽略。

参考:ORA-39083/ORA-1031 While Importing An ORDDATA Table (Doc ID 1909772.1)


报错6:ORA-00955

Processing object type DATABASE_EXPORT/SCHEMA/LIBRARY/LIBRARY
ORA-39083: Object type LIBRARY failed to create with error:
ORA-00955: name is already used by an existing object
Failing sql is:
CREATE LIBRARY "DMSYS"."DMUTIL_LIB" TRUSTED AS STATIC
ORA-39083: Object type LIBRARY failed to create with error:
ORA-00955: name is already used by an existing object
Failing sql is:
CREATE LIBRARY "DMSYS"."DMSVM_LIB" TRUSTED AS STATIC
ORA-39083: Object type LIBRARY failed to create with error:
ORA-00955: name is already used by an existing object

解决:

系统用户对象,新库已存在,所以导入报错,这种报错在ful=y方式导入的时候会遇到很多,包括ORA-29364、ORA-29357等等。对比对象检查无误后,忽略。


报错7:ORA-31693 ORA-39779

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
. . imported "BOM"."BOM_COMPONENTS_B" 256.9 MB 8421374 rows
ORA-31693: Table data object "APPLSYS"."WF_NOTIFICATION_OUT" failed to load/unload and is being skipped due to error:
ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-29400: data cartridge error
ORA-39779: type "SYS"."AQ$_JMS_TEXT_MESSAGE" not found or conversion to latest version is not possible
. . imported "BOM"."BOM_OPERATION_SEQUENCES" 306.9 MB 13609281 rows
。。。。。。
. . imported "APPLSYS"."AQ$_FND_CP_GSM_OPP_AQTBL_T" 12.51 MB 678228 rows
ORA-31693: Table data object "APPLSYS"."WF_JAVA_DEFERRED" failed to load/unload and is being skipped due to error:
ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-29400: data cartridge error
ORA-39779: type "SYS"."AQ$_JMS_TEXT_MESSAGE" not found or conversion to latest version is not possible
. . imported "GL"."XLA_GLT_1198707" 9.822 MB 321263 rows
。。。。。。。

解决:

表APPLSYS.WF_NOTIFICATION_OUT数据未导入。检查源端和目标端的对象及相关信息,除了目标端没有对sys.AQ_JMS_TEXT_MESSAGE的权限外,无其他异常。查询mos,指出错误的原因是源数据库和目标数据库之间类型对象 SYS.AQ_JMS_TEXT_MESSAGE 的哈希码不匹配。

处理:导入时添加选项 TRANSFORM=oid:n

参考:ORA-39779 on SYS.AQ$_JMS_TEXT_MESSAGE During IMPDP (Doc ID 2103360.1)


报错8:ORA-01452 cannot CREATE UNIQUE INDEX; duplicate keys found

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/INDEX/INDEX
ORA-39083: Object type INDEX failed to create with error:
ORA-01452: cannot CREATE UNIQUE INDEX; duplicate keys found
Failing sql is:
CREATE UNIQUE INDEX "ICX"."ICX_SESSION_ATTRIBUTES_U1" ON "ICX"."ICX_SESSION_ATTRIBUTES" ("SESSION_ID", "NAME") PCTFREE 10 INITRANS 11 MAXTRANS 255 STORAGE(INITIAL 131072 NEXT 131072 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "APPS_TS_TX_IDX" PARALLEL 1
ORA-31685: Object type INDEX:"CUX"."QA_RESULTS_N16" failed due to insufficient privileges. Failing sql is:
CREATE INDEX "CUX"."QA_RESULTS_N16" ON "QA"."QA_RESULTS" ("PLAN_ID", "CHARACTER4",·····
。。。。。。。

解决:

手动创建第一个索引成功。

第二个索引,由于表里已存在重复数据,导致无法创建唯一索引,跟业务沟通后,该索引由业务处理。


报错9:ORA-39082

Processing object type DATABASE_EXPORT/SCHEMA/FUNCTION/ALTER_FUNCTION
ORA-39082: Object type ALTER_FUNCTION:"xxxxx"."xxxxx" created with compilation warnings
ORA-39082: Object type ALTER_FUNCTION:"xxxxx"."xxxxx" created with compilation warnings
ORA-39082: Object type ALTER_FUNCTION:"xxxxx"."xxxxx" created with compilation warnings
ORA-39082: Object type ALTER_FUNCTION:"xxxxx"."xxxxx" created with compilation warnings
ORA-39082: Object type ALTER_FUNCTION:"xxxxx"."xxxxx" created with compilation warnings
ORA-39082: Object type ALTER_FUNCTION:"xxxxx"."xxxxx" created with compilation warnings
ORA-39082: Object type ALTER_FUNCTION:"xxxxx"."xxxxx" created with compilation warnings
ORA-39082: Object type ALTER_FUNCTION:"xxxxx"."xxxxx" created with compilation warnings
。。。。。。。

解决:

函数失效,该问题后续处理无效对象时处理。可通过批量重新编译失效对象处理。

与函数失效报错类似的,后面还有存储过程、触发器、视图、包、包体、同义词等等,该类问题可放在数据对比及失效对象处理过程里面处理。


报错10:ORA-00907

ORA-39083: Object type VIEW failed to create with error:
ORA-00923: FROM keyword not found where expected
Failing sql is:
CREATE FORCE VIEW "xxxxx"."xxxxx" ("xxxxxx", "xxxxx", 
ORA-39083: Object type VIEW failed to create with error:
ORA-00933: SQL command not properly ended
Failing sql is:
CREATE FORCE VIEW "xxxxx"."xxxxx" ("xxxxx", "xxxxx", 
ORA-39083: Object type VIEW failed to create with error:
ORA-00907: missing right parenthesis
Failing sql is:
CREATE FORCE VIEW "xxxxx"."xxxxx" ("xxxxx", "xxxxx", "xxxxx"Processing object type DATABASE_EXPORT/SCHEMA/TABLE/INDEX/FUNCTIONAL_AND_BITMAP/INDEX
ORA-39083: Object type INDEX failed to create with error:
ORA-54015: Duplicate column expression was specified
Failing sql is:
CREATE UNIQUE INDEX "xxxxx"."I_SNAP$xxxxx" ON "xxxxx"."xxxxx" (xxxxx("xxxxx"), 
..........
ORA-39083: Object type INDEX failed to create with error:
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/INDEX/STATISTICS/FUNCTIONAL_AND_BITMAP/INDEX_STATISTICS
ORA-39112: Dependent object type INDEX_STATISTICS skipped, base object type INDEX:"xxxxx"."xxxxx" creation failed
ORA-39112: Dependent object type INDEX_STATISTICS skipped, base object type INDEX:"xxxxx"."xxxxx" creation failed
ORA-39112: Dependent object type INDEX_STATISTICS skipped, base object type INDEX:"xxxxx"."xxxxx" creation failed
。。。。。。。

解决:

获取报错索引的ddl语句,手动创建。

set long 99999999
select dbms_metadata.get_ddl('INDEX','&indexname','&owner') from dual;

DBMS_METADATA.GET_DDL('INDEX','tablename','owner')
--------------------------------------------------------------------------------
CREATE UNIQUE INDEX APPS."I_SNAP$_FEM_BAL_NACC_HIER_1"
ON APPS.FEM_BAL_NACC_HIER_L2_MV
(
xxxxx("col1"),
xxxxx("col2"),
xxxxx("col3"),
xxxxx("col4"),
........
)
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS TABLESPACE tablestapcename ;

手动创建报错:

ERROR at line 1:
ORA-54015: Duplicate column expression was specified

原因是11GR2以后不允许创建重复列的函数索引了。去掉重复的列,创建成功。同理,后面报错的索引也去除掉重复的列再次手动创建。

与该问题类似的,还有创建视图时,11GR2 group by的限制加强,导致低版本的部分视图定义无法在高版本创建成功,需人工分析,手动修改ddl语句创建。

最后修改时间:2022-05-23 17:04:48
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论