Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例

Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一些自己使用数据泵(Data Dump)过程当中遇到的问题以及解决方法。都是在使用过程中遇到的问题,以后陆续遇到数据泵(Data Dump)的错误案例,都会补充在此篇。

错误案例1:

ORA-39065: DISPATCH 中出现意外的主进程异常错误;ORA-44002: 对象名无效

Windows 平台错误提示:

Linux平台错误提示

解决方法:

[oracle@DB-Server admin]$ oerr ora 39065
39065, 00000, "unexpected master process exception in %s"
// *Cause: An unhandled exception was detected internally within the master
// control process for the Data Pump job. This is an internal error.
// messages will detail the problems.
// *Action: If problem persists, contact Oracle Customer Support.
[oracle@DB-Server admin]$ oerr ora 39097
39097, 00000, "Data Pump job encountered unexpected error %s"
// *Cause: An unexpected, potentially non-fatal error occurred while
// processing a Data Pump job.
// *Action: Contact Oracle Customer Support.

执行$ORACLE_HOME/rdbms/admin目录下面的catmet2.sql,utlrp.sql 两个SQL文件即可解决这个问题。

[oracle@DB-Server ~]$ cd $ORACLE_HOME/rdbms/admin

[oracle@DB-Server admin]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Sun Sep 7 08:24:23 2014

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

Connected to an idle instance.

SQL> @catmet2.sql 

SQL> @utlrp.sql 

错误案例2:

使用expdp/impdp时遭遇ORA-39006: internal error;ORA-39213: Metadata processing is notavailable错误

[oracle@DB-Server backup]$ impdp frnt/frnt directory=dum_dir dumpfile=20120420.FRNT_02.dmp tablespaces=TBS_TR_DATA;

Import: Release 10.2.0.1.0 - 64bit Production on Wednesday, 25 April, 2012 14:41:48

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

解决方法:

错误原因如下所示,因为Data Pump不能使用Metadata API, 这个是因为XSL stylesheets 没有正确设置缘故。需要以SYSDBA执行dbms_metadata_util.load_stylesheets

[oracle@DB-Server admin]$ 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.

SQL>exec dbms_metadata_util.load_stylesheets

错误案例3:

错误如下所示:

etl@NMS_ODS_NDB1[/jkfile/klbtmp]#expdp userid=username/password@tnsname dumpfile=ref.dmp directory=DUMP_TEST schemas=ref content=all logfile=ref.log 

Export: Release 10.2.0.3.0 - 64bit Production on Saturday, 02 March, 2013 10:28:25 

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

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

With the Partitioning, Real Application Clusters, OLAP and Data Mining options 

ORA-39002: invalid operation 

ORA-39070: Unable to open the log file. 

ORA-29283: invalid file operation 

ORA-06512: at "SYS.UTL_FILE", line 475 

ORA-29283: invalid file operation

解决方法:

出现这个错误,需要检查DIRECTORY目录,创建DIRECTORY时,ORACLE并不检查操作系统目录是否已经存在

首先检查DIRECTORY目录DUMP_TEST对应的DIRECTORY_PATH,然后检查操作系统下,验证该目录是否存在。

SQL> SELECT * FROM DBA_DIRECTORIES WHERE DIRECTORY_NAME='DUMP_TEST';

OWNER              DIRECTORY_NAME      DIRECTORY_PATH

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

SYS                DUMP_TEST       /jkfile/klbtmp/

SQL> 

结果检查发现该目录被删除了,创建该目录即可解决问题。

另外一种情况,如果创建DIRECTORY目录时,出现了换行,也会出现上面错误信息,这种错误玩玩很难发现,非常折腾人。所以需要非常细心。

SQL> create directory DUMP_TEST as '/jkfile/klbtmp/

';

错误案例4:

如下所示:

etl@NMS_ODS_NDB1[/jkfile/work/klb]#expdp userid=etl/sunrise@wgods1 dumpfile=ref.dmp directory=DUMP_DIR schemas=ref content=all logfile=ref.log 

Export: Release 10.2.0.3.0 - 64bit Production on Saturday, 02 March, 2013 10:50:25 

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

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

With the Partitioning, Real Application Clusters, OLAP and Data Mining options 

ORA-31631: privileges are required 

ORA-39109: Unprivileged users may not operate upon other users' schemas

解决方法:

主要是etl账号缺少exp_full_database 权限,给etl账号授予exp_full_database 权限后,上述问题解决。

# su - oracle 

$ sqlplus / as sysdba 

SQL*Plus: Release 10.2.0.3.0 - Production on Sat Mar 2 10:58:37 2013 

Copyright (c) 1982, 2006, Oracle. All Rights Reserved. 

Connected to: 

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production 

With the Partitioning, Real Application Clusters, OLAP and Data Mining options 

SQL> grant exp_full_database to etl; 

Grant succeeded.

错误案例5:

etl@NMS_ODS_NDB1[/etl1_cx/etl]expdp etl/sunrise@wgods1 dumpfile=DM.TM_ALARM_LOG.dmp directory=DUMP_DIR tables=DM.TM_ALARM_LOG query='DATE_CD >=20121201 AND DATE_CD <=20130131'; 

LRM-00101: unknown parameter name '>'

解决方法:

etl@NMS_ODS_NDB1[/etl1_cx/etl]expdp etl/sunrise@wgods1 dumpfile=DM.TM_ALARM_LOG.dmp directory=DUMP_DIR tables=DM.TM_ALARM_LOG query="DATE_CD \>\=20121201 AND DATE_CD \<\=20130131";

错误案例6:

LRM-00121: 'DATA_ONLY' is not an allowable value for 'compression'。如下所示:

etl@NMS_ODS_NDB1[/etl1_cx/etl]#expdp etl/sunrise@wgods1 dumpfile=ref.dmp directory=DUMP_DIR dumpfile=DM.TM_ALARM_LOG201212.dmp tables=DM.TM_ALARM_LOG COMPRESSION=DATA_ONLY query='DATE_CD >=20121201 AND DATE_CD <=20130131'; 

LRM-00121: 'DATA_ONLY' is not an allowable value for 'compression'

解决方法:

首先查看EXPDP工具的版本,如下所示:

etl@NMS_ODS_NDB1[/etl1_cx/etl]#expdp version 

Export: Release 10.2.0.3.0 - 64bit Production on Monday, 04 March, 2013 14:46:47 

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

Password:

请注意,在ORACLE 10g下 COMPRESSION只有METADATA_ONLY和NONE两个选项,ORACLE 11g下才有DATA_ONLY选项。所以报如上错误。所以在使用前,请注意一下EXPDP工具的版本。

错误案例7:

[oracle@DB-Server]$ expdp system/***** TABLES=INVENRTY.INV_STK_HD dumpfile=INV_STK_HD.dmp logfile=1.log DIRECTORY=CUR_DUMP_DIR 

Export: Release 10.2.0.4.0 - Production on Sunday, 14 July, 2013 8:27:16 

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

Connected to: Oracle Database 10g Release 10.2.0.4.0 - Production 

ORA-31626: job does not exist 

ORA-31637: cannot create job SYS_EXPORT_TABLE_01 for user SYSTEM 

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

ORA-06512: at "SYS.KUPV$FT_INT", line 600 

ORA-39080: failed to create queues "KUPC$C_1_20130714082716" and "KUPC$S_1_20130714082716" for Data Pump job 

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

ORA-06512: at "SYS.KUPC$QUE_INT", line 1606 

ORA-00832: no streams pool created and cannot automatically create one

解决方法:

这个案例我以前已经介绍过,具体参考我的博客 Expdp 导数错误 ORA-00832

错误案例8:

[oracle@testlnx01 u03]$ cd tmp/ 

[oracle@testlnx01 tmp]$ expdp system/***** directory=DUMPDIR dumpfile=ESCMUSER.dmp schemas=ESCMUSER logfile=ESCMUSER.log 

Export: Release 10.2.0.4.0 - 64bit Production on Wednesday, 27 August, 2014 16:30:46 

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

Connected to: Oracle Database 10g Release 10.2.0.4.0 - 64bit Production 

ORA-31626: job does not exist 

ORA-31633: unable to create master table "SYSTEM.SYS_EXPORT_SCHEMA_05" 

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

ORA-06512: at "SYS.KUPV$FT", line 871 

ORA-00959: tablespace 'TOOLS' does not exist

解决方法:

这个案例有点特别,刚遇到的时候,确实有点莫名其妙,经过苦苦求索、求证后才发现,本来有一个TOOLS的表空间,不知道是哪位头脑发热的人,居然指定SYSTEM用户的默认表空间为TOOLS,但是这个表空间又被人删除了。于是便有了这样一个案例。

SQL> ALTER USER SYSTEM DEFAULT TABLESPACE SYSTEM; 

User altered.

修改用户SYSTEM的默认表空间后,问题解决。

(0)

相关推荐

  • oracle 数据泵导入导出介绍

    1.首先建立目录: create directory 目录名称 as '数据库服务器上的一个目录',如: create directory 别名 as 'd:\服务器目录名'; 将导入或导出的文件放在这个目录下 2.导出及导入 以SID=orcl,导出dmp的账号为test,导入dmp的账号为test为例. 若将数据从sfz中导出: expdp test/test@orcl directory=别名 dumpfile=导出文件名 导入到test中: impdp test/test@orcl di

  • Oracle常用dump命令,记录一下备查。

    一.Memory Dumps 1).Global Area ALTER SESSION SET EVENTS 'immediate trace name global_area level n'; 1 包含PGA 2 包含SGA 4 包含UGA 8 包含indrect memory 2).Library Cache ALTER SESSION SET EVENTS 'immediate trace name library_cache level n'; 1 library cache统计信息

  • Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例

    Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一些自己使用数据泵(Data Dump)过程当中遇到的问题以及解决方法.都是在使用过程中遇到的问题,以后陆续遇到数据泵(Data Dump)的错误案例,都会补充在此篇. 错误案例1: ORA-39065: DISPATCH 中出现意外的主进程异常错误:ORA-44002: 对象名无效 Windows 平台错误提示: Linux平台错误提示 解决方法: [oracle@DB-Server admin]$

  • Oracle数据泵的导入与导出实例详解

    前言 今天王子要分享的内容是关于Oracle的一个实战内容,Oracle的数据泵. 网上有很多关于此的内容,但很多都是复制粘贴别人的,导致很多小伙伴想要使用的时候不能直接上手,所以这篇文章一定能让你更清晰的理解数据泵. 开始之前王子先介绍一下自己的环境,这里使用的是比较常用的WIN10系统,Oracle数据库也是安装在本机上的,环境比较简单. 数据泵的导入 导入的数据文件可能是别人导出给你的,也可能是你自己导出的,王子这里就是别人导出的,文件名字是YD.DMP. 在进行操作之前,一定要问清楚表空

  • Oracle数据泵实现不同用户导入导出表级

    前言: 先认识一个单词,schema:模式. 再来了解一个概念. 当创建一个用户的时候,会同时创建一个与用户同名的schema,这个schema的官方解释是对象的集合. 举个例子,比如说我就是一个用户,叫A,住在某个公寓里,假如我住在4-404,那么这个4-404这个房间就是schema,房间名也叫A(意思是用户A的房间,在oracle里的意思是用户A的schema).那么房间里面的东西就是对象了,比如说桌子,冰箱,床之类的.所以说schema是对象的集合.(个人理解,不对之处,请以斧正) 在使

  • 抽取oracle数据到mysql数据库的实现过程

    在oracle数据库迁移至mysql数据库,除了oracle数据库模型移到mysql外,还一个重要环节就是要将oracle数据库的数据移到mysql数据库,本人尝试用过多款数据迁移程序,性能都不是很好的,于是自己动手写一个针对于oracle数据库数据迁移到mysql数据程序,其具体过程如下: 1.要抽取mysql表.字段及过滤条件的配制文件imp_data.sql 2.建立一个目录ETL_DIR 3.运行oracle数据库程序P_ETL_ORA_DATA,生成各表的csv数据文件,同时也生成一个

  • Oracle停止数据泵导入数据的方法详解

    目录 前言 一.操作 二.总结 前言 这篇博客所描述的是,停止数据的导入只能时停止后面的数据的导入并不会把已经到入的数据进行回滚和删除. 一.操作 使用数据泵 impdp 开始导入数据后,突然想停止导入,这时可以通过以下操作停止. 在导入窗口使用 Ctrl + C 停止,但是这时不能叉掉窗口!界面接着会弹出下面的操作. 上面我使用了 stop_job 这条命令只是暂时停止作业,应该使用kill_job 才是正确的结束作业. 接着,当我使用 stop_job 这条命令后会提示是否停止作业,这时只需

  • CMD操作oracle数据导库过程图解

    1.cmd窗口下,登陆管理员用户:sqlplus sys/1 as sysdba 2.创建新用户并为用户授权: (1)创建用户 ---Create the user create user Helq3_Pro identified by "1" default tablespace MOF temporary tablespace TEMP profile DEFAULT; (2)为用户授权 SQL> grant dba to helq3_cpbgt_20200714 with

  • Oracle数据块实现原理深入解读

    下午在学习oracle 10g r2 concepts 在这留一笔. Oracle对数据库数据文件(datafile)中的存储空间进行管理的单位是数据块(data block).数据块是数据库中最小的(逻辑)数据单位.与数据块对应的,所有数据在操作系统级的最小物理存储单位是字节(byte).每种操作系统都有一个被称为块容量(block size)的参数.Oracle每次获取数据时,总是访问整数个(Oracle)数据块,而不是按照操作系统块的容量访问数据. 数据库中标准的数据块(data bloc

  • ORACLE数据表分析

    一.性能数据的存储过程: 性能数据的收集包含这样几个存储过程: GATHER_INDEX_STATS:分析索引信息 GATHER_TABLE_STATS:分析表信息,当cascade为true时,分析表.列(索引)信息 GATHER_SCHEMA_STATS:分析方案信息 GATHER_DATABASE_STATS:分析数据库信息 GATHER_SYSTEM_STATS:分析系统信息 二.GATHER_TABLE_STATS: 分析表.字段和索引: 我们分析时最常用到的就是GATHER_TABL

  • oracle数据与文本导入导出源码示例

    oracle提供了sqlldr的工具,有时需要讲数据导入到文本,oracle的spool可以轻松实现. 方便的实现oracle导出数据到txt.txt导入数据到oracle. 一.导出数据到txt 用all_objects表做测试 SQL> desc all_objects; Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER NOT NULL

随机推荐