[Oracle] DBA工作备忘录之二: Exp出错的一个案例

作者:Fenng
日期:02-Jul-2004 
出处:http://www.dbanotes.net
版本:1.01


情况描述

客户用的Linux系统,Redhat 企业版(RHEL 3.0).数据库,安装的9iR2, 前一段时间升级过.现在的版本是9204.

客户准备要做Exp导出,以前一直系统没有空间.先给给系统扩了一些空间。Linux下的LVM还算比较好用。虽然文件系统用的是ext3 ,要暂时停机.

进行导出操作,不成功,发现系统报告错误:

EXP-00056: ORACLE error 942 encountered
ORA-00942: table or view does not exist
EXP-00000: Export terminated unsuccessfully

很多朋友可能对这个错误都很熟悉.

哦,对了,客户说是升级过数据库,首先猜测是不是升级有问题?毕竟在论坛上类似升级不成功的问题看过很多了.

执行$ORACLE_HOME/rdbms/admin/catpatch.sql 脚本.

同时要注意调大java_pool_size 和shared_pool_size这两个参数的大小,要不重新来就耽误时间了,不要犯低级错误

SQL>shutdown immediate;
SQL>startup migrate;
SQL>@?/rdbms/admin/catpatch.sql

之后查看Spool 出来的日志. 发现有编译错误,重新执行了第二次. 等待......之有这个时候我才想起才抱怨CPU不够快,内存不够大 ;)

这次Log没错误.不料想....................用户连接报告错误:

ERROR at line 1: 
ORA-00604: error occurred at recursive SQL level 1 
ORA-04045: errors during recompilation/revalidation of LBACSYS.LBAC_EVENTS 
ORA-06508: PL/SQL: could not find program unit being called 
ORA-06512: at line 2 
ORA-06508: PL/SQL: could not find program unit being called 
ORA-06512: at line 2 

发现connect / as sysdba 还是可以登陆进去的。

看来是 LBACSYS.LBAC_EVENTS的状态有点问题。联接进去,编译一下如何? 我的如意算盘是@?/rdbms/admin/utlrp.sql执行一下就没有问题了,不料根本没有用,错误依然。 当时有些头晕,这系统还没有备份呢,看来有些麻烦了(心里暗地埋怨客户,一直不让备份,总说"等等再说",作为一个DBA说话总不被重视也挺悲哀的不是? ,虽然我自己偷着有个备份,不过还是上次升级时候的呢),赶紧上网Metalink查查,这里网络速度还不错 LBACSYS.LBAC_EVENTS 作为关键词,找到如下的信息:

The reason for this problem seems to be an Upgrade for Label-Security 
even if it's not installed.  //Label security 没有安装,居然补丁去默认给升级? 

Solution: 

shutdown immediate; 
startup migrate; 
alter view lbacsys.lbac$all_table_policies compile; 
alter package lbacsys.lbac_events compile body; 
shutdown immediate; 
startup; 

支持人员说这是个Bug.但是普通用户不可见. 不太放心,再找找,在Suse.com站点的Maillist也发现了一则类似的案例,看来还可以,心里有底了。

按照上面的执行,重新检查,OK。

总结一下

其实是一个很没有技术含量的Case。 首先以前升级的时候至少要测试一下Export是否可以(Export已经成为升级成功的一个标志了!) 其次,准备不够充分,早成了手忙脚乱.所幸不是关键系统,用户还可以容忍.Oracle 总说微软是个烂公司,其实他们才真的够栏.Bug多的不可胜数.;)

参考信息





本文作者

Fenng,某美资公司DBA,业余时间混迹于各数据库相关的技术论坛且乐此不疲。 目前关注如何利用ORACLE数据库有效地构建企业应用。对Oracle tuning、troubleshooting有一点研究。
个人技术站点:http://www.dbanotes.net/ 。 可以通过电子邮件 [email protected] 联系到他。

原文出处

http://www.dbanotes.net/Oracle/a_case_about_export.htm

回上页<-|->回首页

All Articles (by Fenng) are licensed under a Creative Commons License.
I would welcome any feedback. Please send questions, comments or corrections to [email protected]
Valid XHTML 4.01 / Valid CSS