31623 oracle,expdp遭遇ORA-39006/ORA-39213故障解决

解决expdp导出ORA-39006/ORA-39213错误
本文介绍了解决使用expdp导出数据时遇到的ORA-39006/ORA-39213错误的方法。通过检查和安装缺失的数据库组件,并执行dbms_metadata_util.load_stylesheets过程来修复问题。

expdp导出数据遇到ORA-39006/ORA-39213错误,通过执行执行dbms_metadata_util.load_stylesheets解决

expdp工作异常

--导出awr信息

SQL> @?/rdbms/admin/awrextr.sql

…………

Exception encountered in AWR_EXTRACT

ORA-39006: internal error

ORA-39213: Metadata processing is not available

begin

*

ERROR at line 1:

ORA-31623: a job is not attached to this session via the specified handle

ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79

ORA-06512: at "SYS.DBMS_DATAPUMP", line 911

ORA-06512: at "SYS.DBMS_DATAPUMP", line 4710

ORA-06512: at "SYS.DBMS_SWRF_INTERNAL", line 656

ORA-06512: at "SYS.DBMS_SWRF_INTERNAL", line 962

ORA-06512: at line 3

--导出一个表

$ expdp "'/ as sysdba'" dumpfile=xifenfei.dmp tables=scott.t_xifenfei

Export: Release 10.2.0.1.0 - 64bit Production on Wednesday, 31 October, 2012 13:03:20

Copyright (c) 2003, 2005, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options

ORA-39006: internal error

ORA-39213: Metadata processing is not available

错误提示

$ oerr ora 39006

39006, 00000, "internal error"

// *Cause: An unexpected error occurred while processing a Data Pump job.

// Subsequent messages supplied by DBMS_DATAPUMP.GET_STATUS

// will further describe the error.

// *Action: Contact Oracle Customer Support.

$ oerr ora 39213

39213, 00000, "Metadata processing is not available"

// *Cause: The Data Pump could not use the Metadata API. Typically,

// this is caused by the XSL stylesheets not being set up properly.

// *Action: Connect AS SYSDBA and execute dbms_metadata_util.load_stylesheets

// to reload the stylesheets.

解决ORA-39006/ORA-39213问题

--查询数据库已经安装组件

SQL> col COMP_NAME for a35

SQL> select comp_name, version, status from dba_registry;

COMP_NAME VERSION STATUS

----------------------------------- ------------------------------ ----------------------

Oracle Database Catalog Views 10.2.0.1.0 VALID

Oracle Database Packages and Types 10.2.0.1.0 VALID

Oracle Workspace Manager 10.2.0.1.0 VALID

JServer JAVA Virtual Machine 10.2.0.1.0 VALID

Oracle XDK 10.2.0.1.0 VALID

Oracle Database Java Packages 10.2.0.1.0 VALID

Oracle Expression Filter 10.2.0.1.0 VALID

Oracle Data Mining 10.2.0.1.0 VALID

Oracle Text 10.2.0.1.0 VALID

Oracle XML Database 10.2.0.1.0 VALID

Oracle Rules Manager 10.2.0.1.0 VALID

Oracle interMedia 10.2.0.1.0 VALID

OLAP Analytic Workspace 10.2.0.1.0 VALID

Oracle OLAP API 10.2.0.1.0 VALID

OLAP Catalog 10.2.0.1.0 VALID

Spatial 10.2.0.1.0 VALID

Oracle Enterprise Manager 10.2.0.1.0 VALID

17 rows selected.

--如果缺少下面组件,使用下面对应的程序安装

Oracle Database Catalog Views

Oracle Database Packages and Types

JServer JAVA Virtual Machine

Oracle XDK

Oracle Database Java Packages

--使用下面脚本安装(根据组件选择)

SQL> connect / as sysdba

SQL> @$ORACLE_HOME/javavm/install/initjvm.sql

SQL> connect / as sysdba

SQL> @$ORACLE_HOME/xdk/admin/initxml.sql

SQL> connect / as sysdba

SQL> @$ORACLE_HOME/rdbms/admin/catjava.sql

SQL> connect / as sysdba

SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql

--执行sys.dbms_metadata_util.load_stylesheets

SQL> execute sys.dbms_metadata_util.load_stylesheets;

PL/SQL procedure successfully completed.

测试expdp导出

$ expdp "'/ as sysdba'" dumpfile=xifenfei.dmp tables=scott.t_xifenfei Directory=AWR_DIR

Export: Release 10.2.0.1.0 - 64bit Production on Wednesday, 31 October, 2012 14:18:04

Copyright (c) 2003, 2005, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options

Starting "SYS"."SYS_EXPORT_TABLE_01": '/******** AS SYSDBA' dumpfile=xifenfei.dmp

tables=scott.t_xifenfei Directory=AWR_DIR

Estimate in progress using BLOCKS method...

Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 7 MB

Processing object type TABLE_EXPORT/TABLE/TABLE

. . exported "SCOTT"."T_XIFENFEI" 5.374 MB 57376 rows

Master table "SYS"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded

******************************************************************************

Dump file set for SYS.SYS_EXPORT_TABLE_01 is:

/data/enmotech/xifenfei.dmp

Job "SYS"."SYS_EXPORT_TABLE_01" successfully completed at 14:18:11

测试证明,在不缺少相关组件的情况下,使用dbms_metadata_util.load_stylesheets可以解决expdp导出报ORA-39006/ORA-39213错误;如果缺少组件,需要先安装对应组件,然后再执行dbms_metadata_util.load_stylesheets解决该问题

虽然参考引用中未提及ORA - 01426错误的解决办法,但一般来说,ORA - 01426错误是“numeric overflow”,即数值溢出错误,通常在将一个值插入到一个精度或范围不足以容纳该值的列中时发生。在使用`expdp`导出时出现此错误,可能是由于表中的某些数值列的数据超出了定义的范围。以下是可能的解决办法: ### 检查数据类型和精度 检查出现问题的表中数值列的数据类型和精度定义,确保其能够容纳实际的数据。例如,如果有一个`NUMBER(3, 2)`类型的列,它最多只能存储三位数字,其中两位是小数位。如果实际数据超出了这个范围,就会导致数值溢出错误。可以通过以下SQL语句查看表结构: ```sql DESC table_name; ``` 如果发现数据类型或精度定义不合理,可以考虑修改表结构,扩大其范围。修改表结构的示例SQL如下: ```sql ALTER TABLE table_name MODIFY column_name NUMBER(5, 2); ``` ### 数据清理 检查表中的数据,找出超出范围的异常值并进行清理或修正。可以通过以下SQL语句找出可能导致溢出的记录: ```sql SELECT * FROM table_name WHERE column_name > some_max_value; ``` 根据实际情况,对这些异常记录进行修正或删除。 ### 分批次导出 如果数据量较大,可能是某些批次的数据导致了数值溢出错误。可以尝试分批次导出数据,避免一次性导出所有数据。例如,可以按照日期、ID范围等条件进行分批次导出。以下是一个按ID范围分批次导出的示例: ```bash expdp user/password directory=dir_name dumpfile=part1.dmp tables=table_name query='WHERE id BETWEEN 1 AND 1000' expdp user/password directory=dir_name dumpfile=part2.dmp tables=table_name query='WHERE id BETWEEN 1001 AND 2000' ``` ### 联系数据库管理员 如果以上方法都无法解决问题,建议联系数据库管理员,对数据库进行更深入的检查和分析,可能需要调整数据库的配置参数或进行其他操作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值