ORA-56935
ORA-56935
1 现象
连接到: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production ORA-39006: 内部错误 ORA-39065: DISPATCH 中出现意外的主进程异常错误 ORA-56935: 现有数据泵作业正在使用其他版本的时区数据文件 ORA-06512: 在 "SYS.DBMS_DST", line 1864 ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 79 ORA-06512: 在 "SYS.DBMS_DST", line 1827 ORA-06512: 在 "SYS.KUPM$MCP", line 20451 ORA-06512: 在 "SYS.KUPM$MCP", line 13058 ORA-06512: 在 "SYS.KUPM$MCP", line 12434 ORA-06512: 在 "SYS.KUPM$MCP", line 15078 ORA-06512: 在 "SYS.KUPM$MCP", line 10314 ORA-39097: 数据泵作业出现意外的错误 -56935
2 原因
之前一次的datapump操作没有正常退出,比如强制退出的。没有清除DST_UPGRADE_STATE. 当执行多个job 同时导入时也有可能导致此问题。 这是BUG 11836540. 据MOS文档中说明,在12.2 中已经被修复。但是我在19C 中仍遇到。
3 解决
如果有,进入到pdb操作。
col property_name for a30 col value for a12 SELECT PROPERTY_NAME, SUBSTR (property_value, 1, 30) value FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME= 'DST_UPGRADE_STATE' ORDER BY PROPERTY_NAME; PROPERTY_NAME VALUE ------------------------------ ------------ DST_UPGRADE_STATE DATAPUMP(1)
从上面查询的结果可以看到,DST_UPGRADE_STATE 的 value 值是DATAPUMP(1), 正常应该是NONE. 下面进行修复:
SQL> ALTER SESSION SET EVENTS '30090 TRACE NAME CONTEXT FOREVER, LEVEL 32'; 会话已更改。 SQL> exec dbms_dst.unload_secondary; PL/SQL 过程已成功完成。
再次查看 DST_UPGRADE_STATE的值:
SQL> col property_name for a30 SQL> col value for a12 SQL> SELECT PROPERTY_NAME, SUBSTR (property_value, 1, 30) value 2 FROM DATABASE_PROPERTIES 3 WHERE PROPERTY_NAME ='DST_UPGRADE_STATE' 4 ORDER BY PROPERTY_NAME; PROPERTY_NAME VALUE ------------------------------ ------------ DST_UPGRADE_STATE NONE
修改完成后,再次导入执行成功。
4 参考文档
MOS ID 1307959.1 。
Created: 2020-08-14 Fri 09:50
===================
天行健,君子以自强不息
地势坤,君子以厚德载物
===================