EXP-00000错误的处理过程 导出错误 未安装视图

EXP-00000错误的处理过程
下面是同事在处理EXP错误的过程
1)环境调查
操作系统 windows 2003 server
数据库<wbr><wbr> oracle9207 standard版本<br> IP地址<wbr><wbr> 10.44.21.7</wbr></wbr></wbr></wbr>
2)目前问题症状
在10.44.21.7对本机数据库做导出操作,报错:
<wbr> exp scott/tiger file=c:\temp\test.dmp<br><wbr> exp (甚至不加任何参数)<br><wbr> 报相同错误如下:</wbr></wbr></wbr>
<wbr>Message 206 not found; No message file for product=RDBMS, facility=EXP: Release<br><wbr>9.2.0.1.0 - Production on Mon Nov 6 14:05:47 2006</wbr></wbr>
<wbr>Copyright (c) 1982, 2002, Oracle</wbr>
<wbr>Invalid format of Export utility name</wbr>
<wbr>Verify that ORACLE_HOME is properly set</wbr>
<wbr>Export terminated unsuccessfully</wbr>
<wbr>EXP-00000: Message 0 not found; No message file for product=RDBMS, facility=EXP</wbr>
<wbr>分析:初步怀疑是exp工具问题,或者环境变量问题</wbr>
3)检查注册表里的oracle_home=d:\oracle\ora92
<wbr><br><wbr> 结果表明设置是没有问题的</wbr></wbr>
4)在我的手提电脑上做试验,如果将oracle_home改掉,报相同错,将oracle_home改回正确值得,则不报错
<wbr> 分析:oracle_home如果设置不对,则一定会出现1)中的报错,但oracle_home设置对了,也报错,表明是10.44.21.7的<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 机器或者数据库存在其它问题,引起了该错误<br><wbr><br> 5)找一台客户端对问题数据库测试是否能导出<br><wbr> 10.44.1.4机器上安装了oracle9201,于是10.44.1.4配置一个到10.44.21.7的链接,在10.44.1.4上对10.44.21.7做exp ,没有问题</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr> 分析:说明10.44.21.7的库本身是没有问题的</wbr>
6)测试利用10.44.21.7的exp工具导出其它机器上的数据库
<wbr><wbr> 在10.44.21.7上配置一个到10.44.1.4上数据库的链接,并且测试链接是通的,执行exp scott/tiger@链接名,仍然报相同错误<br><wbr><wbr><br><wbr> 分析,到本步为止,说明肯定不是环境变量问题,也不是库本身的问题,而是exp工具本身的问题,有可能是安装数据库时选件<br><wbr> 不够造成,此时和用户讨论,可能需要重装数据库了,用户也强烈要求重装,用户一直认为当初装的和后来升级都有问题。<br><wbr><br><wbr> 总结:要使得exp可用必须保证:<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> a.exp工具本身没有问题<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> b.exp工具所在机器的环境变量也没有问题<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> c.要exp的目标库本身没有问题</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
7)但重装数据库毕竟非常麻烦,而且有风险,于是想其它补救办法,开始对10.44.1.4上的数据库和10.44.21.7上的数据库软件
<wbr> 进行比对,看看是否有什么文件没有装全</wbr>
<wbr> 结果:经过2个多小时的比对,发现d:\oracle\ora92\rdbms\mesg下面的文件数量,10.44.21.7机器只有18 个,而10.44.1.4上有<br><wbr> 38个,证明安装确实有点问题,于是将将1.4上的expus.msb,expzhs.msb,impus.msb,impzhs.msb拷贝到21.7对应目录下</wbr></wbr>
8)再次测试exp和imp功能
<wbr> 执行imp和exp,不报刚才的错了,报下面的错<br><wbr><br><wbr>Export: Release 9.2.0.7.0 - Production on 星期一 11月 6 15:52:14 2006<br><wbr><br><wbr>Copyright (c) 1982, 2002, Oracle Corporation.<wbr> All rights reserved.<br><wbr><br><wbr><br><wbr>连接到: Oracle9i Release 9.2.0.7.0 - Production<br><wbr>JServer Release 9.2.0.7.0 - Production<br><wbr>已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集<br><wbr><br><wbr>即将导出指定的用户...<br><wbr>. 正在导出 pre-schema 过程对象和操作<br><wbr>. 正在导出用户 SCOTT 的外部函数库名称<br><wbr>. 导出 PUBLIC 类型同义词<br><wbr>. 导出私有类型同义词<br><wbr>. 正在导出用户 SCOTT 的对象类型定义<br><wbr>EXP-00008: 遇到 ORACLE 错误 942<br><wbr>ORA-00942: 表或视图不存在<br><wbr>EXP-00024: 未安装导出视图,请通知您的 DBA<br><wbr>EXP-00000: 导出终止失败</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr> 分析:此时说明exp工具已经可用了,但数据库里可能存在问题<br><wbr><br> 9)以sysdba权限执行 %oracle_home%\rdbms\admin\catexp.sql 建立所需导出字典<br><wbr> 再次执行exp又发现了以下报错:<br><wbr><br><wbr> 连接到: Oracle9i Release 9.2.0.7.0 - Production<br><wbr>JServer Release 9.2.0.7.0 - Production<br><wbr>已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集<br><wbr>. 正在导出 pre-schema 过程对象和操作<br><wbr>. 正在导出用户 SCOTT 的外部函数库名称<br><wbr>. 导出 PUBLIC 类型同义词<br><wbr>. 导出私有类型同义词<br><wbr>. 正在导出用户 SCOTT 的对象类型定义<br><wbr>即将导出 SCOTT 的对象 ...<br><wbr>. 正在导出数据库链接<br><wbr>. 正在导出序号<br><wbr>. 正在导出群集定义<br><wbr>EXP-00056: 遇到 ORACLE 错误 19206<br><wbr>ORA-19206: 用于查询或 REF CURSOR 参数的值无效<br><wbr>ORA-06512: 在"SYS.DBMS_XMLGEN", line 83<br><wbr>ORA-06512: 在"SYS.DBMS_METADATA", line 345<br><wbr>ORA-06512: 在"SYS.DBMS_METADATA", line 410<br><wbr>ORA-06512: 在"SYS.DBMS_METADATA", line 449<br><wbr>ORA-06512: 在"SYS.DBMS_METADATA", line 1156<br><wbr>ORA-06512: 在"SYS.DBMS_METADATA", line 1141<br><wbr>ORA-06512: 在line 1<br><wbr>EXP-00000: 导出终止失败</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr> 分析,说明还要还要执行catmeta.sql脚本</wbr>
10)再以sysdba权限执行 %oracle_home%\rdbms\admin\catmeta.sql,执行完后
<wbr><wbr> 运行exp成功,这次可以成功导出了,但出现了一些警告:<br><wbr><wbr><br><wbr><wbr> 连接到: Oracle9i Release 9.2.0.7.0 - Production<br><wbr>JServer Release 9.2.0.7.0 - Production<br><wbr>已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集<br><wbr><br><wbr>即将导出指定的用户...<br><wbr>. 正在导出 pre-schema 过程对象和操作<br><wbr>. 正在导出用户 SCOTT 的外部函数库名称<br><wbr>. 导出 PUBLIC 类型同义词<br><wbr>. 导出私有类型同义词<br><wbr>. 正在导出用户 SCOTT 的对象类型定义<br><wbr>即将导出 SCOTT 的对象 ...<br><wbr>. 正在导出数据库链接<br><wbr>. 正在导出序号<br><wbr>. 正在导出群集定义<br><wbr>. 即将导出 SCOTT 的表通过常规路径 ...<br><wbr>. . 正在导出表<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> BONUS<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 0 行被导出<br><wbr>. . 正在导出表<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> DEPT<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 4 行被导出<br><wbr>EXP-00056: 遇到 ORACLE 错误 904<br><wbr>ORA-00904: "SYS"."DBMS_EXPORT_EXTENSION"."FUNC_INDEX_DEFAULT": 无效的标识符<br><wbr>. . 正在导出表<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> EMP<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 14 行被导出<br><wbr>EXP-00056: 遇到 ORACLE 错误 904<br><wbr>ORA-00904: "SYS"."DBMS_EXPORT_EXTENSION"."FUNC_INDEX_DEFAULT": 无效的标识符<br><wbr>. . 正在导出表<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> SALGRADE<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 5 行被导出<br><wbr>. 正在导出同义词<br><wbr>. 正在导出视图<br><wbr>. 正在导出存储的过程<br><wbr>. 正在导出运算符<br><wbr>. 正在导出引用完整性约束条件<br><wbr>. 正在导出触发器<br><wbr>. 正在导出索引类型<br><wbr>. 正在导出位图, 功能性索引和可扩展索引<br><wbr>. 正在导出后期表活动<br><wbr>. 正在导出实体化视图<br><wbr>. 正在导出快照日志<br><wbr>. 正在导出作业队列<br><wbr>. 正在导出刷新组和子组<br><wbr>. 正在导出维<br><wbr>. 正在导出 post-schema 过程对象和操作<br><wbr>. 正在导出统计<br><wbr>导出成功终止,但出现警告。<br><wbr><br><wbr>C:\Documents and Settings\Administrator&gt;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr> 分析:这说明数据库与exp的版本还是不兼容的,经过询问客户和开发人员,原来他们升级过该数据库,看来肯定是升级不完全造成的,<br><wbr> 还要执行1个catproc.sql才行<wbr></wbr></wbr></wbr>
12)再以sysdba权限执行 %oracle_home%\rdbms\admin\catproc.sql,执行完后
<wbr><wbr> 运行exp,可以正常导出,完全不报错了<br><wbr><wbr><br> 13)测试导出导出<br><wbr><wbr> 建立一个tempuser用户,在tempuser下建立了一个表,导出导入都正常</wbr></wbr></wbr></wbr></wbr></wbr>
13)最后删除试验的用户时
<wbr><wbr> SQL&gt; drop user tempuser1;<br><wbr><wbr>drop user tempuser1<br><wbr><wbr>*<br><wbr><wbr>ERROR 位于第 1 行:<br><wbr><wbr>ORA-01001: 无效的游标<br><wbr><wbr>ORA-00600: 内部错误代码,参数: [qmxiUnpPacked2], [121], [], [], [], [], [], []<br><wbr><wbr><br><wbr> 分析:这是严重的内部错误,表明数据库还是没升级完全,此时只能冒险做升级了,幸好之前做了一个备份。</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
14)关闭数据库,以升级方式打开数据库,执行脚本catpatch.sql
<wbr><wbr> shutdown immediate<br><wbr><wbr> startup migrate<br><wbr><wbr> @..../catpatch.sql<wbr> (执行这个sql之前,一定要保证一些参数必须满足要求,比如share pool,否则一定会报错)<br><wbr><wbr> 执行了半个多小时,终于没有报错的情况下执行完。<br><wbr><wbr><wbr><br> 15)再次删除试验的用户<br><wbr><wbr> 可以成功删除了</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
16)最后测试导出用户业务系统的业务用户,可以成功导出,没有警告了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值