Oracle EXPDP/IMPDP 错误UDI-00018: Data Pump client is incompatible with database version 11.2.0.1.0 解决方法
作者:
dave
在执行expdp 或者 impdp 的时候可能会遇到以下错误:
UDI-00018: Data Pump client is incompatible with database version 11.2.0.1.0
根据错误提示是工具的不兼容,比如执行expdp 和 impdp的数据库版本不一致。 但实际上,在数据库版本相同的情况,也可能发生这种情况, 这里主要有两种原因。
1. 数据泵依赖的包无效
数据泵是一个服务端的工具,他正真的工作都是在数据库端执行,所以需要依赖数据库的包,比如DBMS_METADATA ,所以要先保证包是正常的。
[oracle@www.cndba.cn ~]$ sqlplus / as sysdba
SQL>select object_name,object_type from dba_objects where status='INVALID';
OBJECT_NAME OBJECT_TYPE
------------------------------ ------------------------------
DBMS_METADATA_INT PACKAGE BODY
DBMS_METADATA_UTIL PACKAGE BODY
如果执行出现以上结果,就需要对这些包进行编译:
[oracle@www.cndba.cn ~]$ sqlplus / as sysdba
SQL>alter package sys.dbms_metadata_int compile body;
SQL>alter package sys.dbms_metadata_util compile body;
SQL>exec dbms_metadata_util.load_stylesheets;
2. 数据库升级或打补丁等操作导致数据库组件无效
可以通过以下SQL查询组件的状态:
[oracle@www.cndba.cn ~]$ sqlplus / as sysdba
SQL> SELECT comp_id, version, status, SUBSTR (comp_name, 1, 35) COMP_NAME FROM dba_registry;
如果有组件异常,那么执行以下操作,修复组件:
[oracle@www.cndba.cn ~]$ sqlplus / as sysdba
SQL> shutdown immediate
SQL> startup upgrade
SQL> @?/rdbms/admin/catupgrd.sql ------> Run this script to validate the invalid components of database by upgrading the components.
再次检查组件的状态,如果所有组件都正常,那么关闭数据库并正常启动,否则再次运行 “catupgrd.sql” 脚本。
[oracle@www.cndba.cn ~]$ sqlplus / as sysdba
SQL> shutdown immediate
SQL> startup
SQL> @?/rdbms/admin/utlrp.sql ------> Run this script to validate the invalid objects of the database.
版权声明:本文为博主原创文章,未经博主允许不得转载。