ITPub博客

首页 > 数据库 > Oracle > Oracle___诊断案例__数据库的exp故障

Oracle___诊断案例__数据库的exp故障

原创 Oracle 作者:seagull76 时间:2007-03-09 20:51:58 0 删除 编辑

2006年11月6日到某水力厅,用户的数据库无法做export.

[@more@]

1)环境调查
操作系统 windows 2003 server
数据库 oracle9207 standard版本
IP地址 10.44.21.7

2)执行exp,果然报错

Message 206 not found; No message file for product=RDBMS, facility=EXP: Release
9.2.0.1.0 - Production on Mon Nov 6 14:05:47 2006

Copyright (c) 1982, 2002, Oracle

Invalid format of Export utility name

Verify that ORACLE_HOME is properly set

Export terminated unsuccessfully

EXP-00000: Message 0 not found; No message file for product=RDBMS, facility=EXP

3)检查了oracle_home,没有问题啊,唉,搞了好久,试验了老半天,做各种各样的试验,最后分析总结,

肯定是exp工具本身的问题,上网找帖子,发现可能是$oracle_homerdbmsadmin下面少文件,和其它机器的数据库一比对,果然少了一些文件,于是将同一版本的数据库的该目录下的expus.msb,expzhs.msb,impus.msb,impzhs.msb考到这个目录下,哈哈,此时exp可以用了,但报了另外一个错:

Export: Release 9.2.0.7.0 - Production on 星期一 11月 6 15:52:14 2006

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


连接到: Oracle9i Release 9.2.0.7.0 - Production
JServer Release 9.2.0.7.0 - Production
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即将导出指定的用户...
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 SCOTT 的外部函数库名称
. 导出 PUBLIC 类型同义词
. 导出私有类型同义词
. 正在导出用户 SCOTT 的对象类型定义
EXP-00008: 遇到 ORACLE 错误 942
ORA-00942: 表或视图不存在
EXP-00024: 未安装导出视图,请通知您的 DBA
EXP-00000: 导出终止失败

4)上网一查,发现还要执行catexp.sql,我纳闷了,怎么回事?原来该数据库曾经被升级过,nnd,不知哪个混蛋升级的,没有执行相关的脚本

5)执行catexp.sql脚本,然后再执行exp,又报错:

连接到: Oracle9i Release 9.2.0.7.0 - Production
JServer Release 9.2.0.7.0 - Production
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 SCOTT 的外部函数库名称
. 导出 PUBLIC 类型同义词
. 导出私有类型同义词
. 正在导出用户 SCOTT 的对象类型定义
即将导出 SCOTT 的对象 ...
. 正在导出数据库链接
. 正在导出序号
. 正在导出群集定义
EXP-00056: 遇到 ORACLE 错误 19206
ORA-19206: 用于查询或 REF CURSOR 参数的值无效
ORA-06512: 在"SYS.DBMS_XMLGEN", line 83
ORA-06512: 在"SYS.DBMS_METADATA", line 345
ORA-06512: 在"SYS.DBMS_METADATA", line 410
ORA-06512: 在"SYS.DBMS_METADATA", line 449
ORA-06512: 在"SYS.DBMS_METADATA", line 1156
ORA-06512: 在"SYS.DBMS_METADATA", line 1141
ORA-06512: 在line 1
EXP-00000: 导出终止失败

6)执行catmeta.sql脚本,再执行exp,又报错:

连接到: Oracle9i Release 9.2.0.7.0 - Production
JServer Release 9.2.0.7.0 - Production
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即将导出指定的用户...
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 SCOTT 的外部函数库名称
. 导出 PUBLIC 类型同义词
. 导出私有类型同义词
. 正在导出用户 SCOTT 的对象类型定义
即将导出 SCOTT 的对象 ...
. 正在导出数据库链接
. 正在导出序号
. 正在导出群集定义
. 即将导出 SCOTT 的表通过常规路径 ...
. . 正在导出表 BONUS 0 行被导出
. . 正在导出表 DEPT 4 行被导出
EXP-00056: 遇到 ORACLE 错误 904
ORA-00904: "SYS"."DBMS_EXPORT_EXTENSION"."FUNC_INDEX_DEFAULT": 无效的标识符
. . 正在导出表 EMP 14 行被导出
EXP-00056: 遇到 ORACLE 错误 904
ORA-00904: "SYS"."DBMS_EXPORT_EXTENSION"."FUNC_INDEX_DEFAULT": 无效的标识符
. . 正在导出表 SALGRADE 5 行被导出
. 正在导出同义词
. 正在导出视图
. 正在导出存储的过程
. 正在导出运算符
. 正在导出引用完整性约束条件
. 正在导出触发器
. 正在导出索引类型
. 正在导出位图, 功能性索引和可扩展索引
. 正在导出后期表活动
. 正在导出实体化视图
. 正在导出快照日志
. 正在导出作业队列
. 正在导出刷新组和子组
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出统计
导出成功终止,但出现警告。

6)于是再执行了catproc.sql脚本,这会可以成功导出了

7)正高兴准备收工时,此时删除测试导出导入的用户时,出现严重错误:

SQL> drop user tempuser1;
drop user tempuser1
*
ERROR 位于第 1 行:
ORA-01001: 无效的游标
ORA-00600: 内部错误代码,参数: [qmxiUnpPacked2], [121], [], [], [], [], [], []

8)我晕死了,这下可头大了,都不能删除用户了,这可咋整,做最后冒险

shutdown immediate
startup migrate
@..../catpatch.sql (执行这个sql之前,一定要保证一些参数必须满足要求,比如share pool,否则一定会报错)
执行了半个多小时,终于没有报错的情况下执行完。

9)此时终于可以删除用户了,也可以正常导出导入了,nnd,终于给那个升级该库的混蛋擦完了屁股!

收工回家了,搞定这个问题,花了我8个小时啊:,还是小有成就感的:)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8861952/viewspace-903678/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-10-26

  • 博文量
    32
  • 访问量
    187830