Oracle 12C导入报错ORA-56935
一、背景
在Oracle 12.1.0.2导出的dmp文件导入到12.2.0.1发生报错ORA-56935,具体如下:
[oracle@sdw2 dump]$ impdp cs/oracle@cs directory=dump dumpfile=cs_expdp.dmp logfile=xx.log schemas=cs remap_tablespace=p_2015:cs,p_2016:cs,p_max:cs
Import: Release 12.2.0.1.0 - Production on Wed Nov 14 16:35:56 2018
Copyright © 1982, 2017, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
ORA-39006: internal error
ORA-39065: unexpected master process exception in DISPATCH
ORA-56935: existing datapump jobs are using a different version of time zone data file
ORA-06512: at "SYS.DBMS_DST", line 1837
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "SYS.DBMS_DST", line 1800
ORA-06512: at "SYS.KUPM$MCP", line 19749
ORA-06512: at "SYS.KUPM$MCP", line 12206
ORA-06512: at "SYS.KUPM$MCP", line 11616
ORA-06512: at "SYS.KUPM$MCP", line 14215
ORA-06512: at "SYS.KUPM$MCP", line 9426
ORA-39097: Data Pump job encountered unexpected error -56935
二、解决方法
1、在pdb级别登录管理用户
[oracle@sdw2 dump]$ sqlplus cs/oracle@cs
2、查看当前pdb的DST_UPGRADE_STATE
SQL> SELECT PROPERTY_NAME, SUBSTR (property_value, 1, 30) value
2 FROM DATABASE_PROPERTIES
3 WHERE PROPERTY_NAME LIKE 'DST_%'
4 ORDER BY PROPERTY_NAME;
PROPERTY_NAME VALUE
---------------------------------- -----------------------
DST_PRIMARY_TT_VERSION 26
DST_SECONDARY_TT_VERSION 0
DST_UPGRADE_STATE DATAPUMP(1)
3、修改pdb的level
SQL> ALTER SESSION SET EVENTS '30090 TRACE NAME CONTEXT FOREVER, LEVEL 32';
Session altered.
4、执行系统包
SQL> exec dbms_dst.unload_secondary;
PL/SQL procedure successfully completed.
5、再次查看DST_UPGRADE_STATE 参数
SQL> SELECT PROPERTY_NAME, SUBSTR (property_value, 1, 30) value
2 FROM DATABASE_PROPERTIES
3 WHERE PROPERTY_NAME LIKE 'DST_%'
4 ORDER BY PROPERTY_NAME;
PROPERTY_NAME VALUE
---------------------------------- -----------------------
DST_PRIMARY_TT_VERSION 26
DST_SECONDARY_TT_VERSION 0
DST_UPGRADE_STATE NONE ------->已修改为none
SQL> exit
三、参考文献
MOS文档 ID 1307959.1