ORA-39006: internal error

Oracle库中的部分synonym被删,已经不能用闪回恢复。


幸好有昨晚expdp的原数据备份,现尝试用数据库泵impdp的sqlfile功能恢复一下。


以下为恢复的步骤:


执行以下命令会将dumpfile中的内容导出到sqlfile指定的文件中,而不会把数据导入到数据库中。
$ impdp dbuser/dbpassword directory=DPUMPDIR dumpfile=metadata_2015-03-19_01.DMP NCRYPTION_PASSWORD=Encry_password sqlfile=20150319_expdp.sql


dbuser/dbpassword 指连接数据库的用户名和密码


directory参数从以下视图中获取
SELECT *  FROM  dba_directories


dumpfile指expdp导出的原数据文件


NCRYPTION_PASSWORD指expdp备份时指定的密码


sqlfile指要导出的SQL文件




Import: Release 11.2.0.3.0 - Production on Thu Mar 19 11:46:29 2015
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
Master table "dbuser"."SYS_SQL_FILE_FULL_01" successfully loaded/unloaded
Starting "dbuser"."SYS_SQL_FILE_FULL_01":  dbuser/******** directory=DPUMPDIR dumpfile=metadata_2015-03-19_01.DMP ENCRYPTION_PASSWORD=******** sqlfile=20150319_expdp.sql 
Processing object type SCHEMA_EXPORT/USER
...
...
Job "dbuser"."SYS_SQL_FILE_FULL_01" successfully completed at 11:48:19




打开sqlfile指定的导出文件,找到需要恢复的synonym,重建即可。


第一次执行impdp命令遇到的错误:
ORA-39006: internal error
ORA-39213: Metadata processing is not available



解决方法:
以sysdba的身份登录,执行
SQL> exec dbms_metadata_util.load_stylesheets




第二次执行impdp命令遇到的错误:
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Data Mining and Real Application Testing options
ORA-39006: internal error


再次执行还遇到同样的错误,网上也没有其它的办法。


原来是导出库的版本和执行导入命令库的版本不一致。


换个一致的版本,执行导入命令,ok。

你可能感兴趣的:(ORA-39006: internal error)