这篇记录也是以前在做数据库巡检时,客户数据库的一个故障,觉得不错,记录分享到博客里。
问题描述
今天数据库应用人员在编译存过时,报以下错误 PACKAGE BODY TXCZ10.BILLELEMENT_TYPE 编译错误错误:
1
PLS-00201 : 必须说明标识符 'XMLDOM.DOMDOCUMENT' 行:5
应用影响
系统关键应用不可用。
背景
由于客户数据库有坏块,后来不得已帮客户重新创建了一个数据库,至于原库坏块的详细信息,详见我的上篇博文 记一次 ORA-600 [12700] 故障案例 ,由于使用 dbca 图形化界面创建数据库时遇到问题,网上找了半天也没有可行方法,后来通过脚本建库的。手工建库的脚本以下仅列出建库的SQL,和导入的SQL,其它信息省略
建库脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
CREATE DATABASE myschema CONTROLFILE REUSE USER SYS IDENTIFIED BY myschema155 USER SYSTEM IDENTIFIED BY myschema155 LOGFILE GROUP 1 ('/dev/vg01/rlvredolog11' , '/dev/vg01/rlvredolog12' ) SIZE 512 M, GROUP 2 ('/dev/vg01/rlvredolog21' , '/dev/vg01/rlvredolog22' ) SIZE 512 M, GROUP 3 ('/dev/vg01/rlvredolog31' , '/dev/vg01/rlvredolog32' ) SIZE 512 M, GROUP 4 ('/dev/vg01/rlvredolog41' , '/dev/vg01/rlvredolog42' ) SIZE 512 M, GROUP 5 ('/dev/vg01/rlvredolog51' , '/dev/vg01/rlvredolog52' ) SIZE 512 M, GROUP 6 ('/dev/vg01/rlvredolog61' , '/dev/vg01/rlvredolog62' ) SIZE 512 M MAXLOGFILES 6 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 1000 MAXINSTANCES 1 CHARACTER SET UTF8 NATIONAL CHARACTER SET UTF8 DATAFILE '/dev/vg01/rmyschema_system_01.dbf' SIZE 3130 M AUTOEXTEND OFF SYSAUX DATAFILE '/dev/vg01/rmyschema_sysaux_01.dbf' SIZE 3130 M AUTOEXTEND OFF DEFAULT TEMPORARY TABLESPACE temp TEMPFILE '/dev/vg01/rmyschema_temp_01.dbf' SIZE 5140 M AUTOEXTEND OFF UNDO TABLESPACE UNDOTBS1 DATAFILE '/dev/vg01/rmyschema_undo_01.dbf' SIZE 10240 M AUTOEXTEND OFF ;
导入数据字典
1 2 3
@?/rdbms /admin /catalog .sql ; @?/rdbms /admin /catproc .sql ; @?/rdbms /admin /pupbld .sql ;
根据 ORA 报错信息,猜测可能是组件不正常。
查询新库和老库组件
4.1 新库(myschema)组件 Oracle9i CataLog Views 9.2.0.8.0 Oracle9i Package and Type 9.2.0.8.0
4.2 原库(myschema)组件(老库还在的,新库建好后,暂时没删掉。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
15:34 :02 [SYS@myschema] (mailto :SYS @myschema )> select comp_name, status, substr(version,1 ,10 ) as version from dba_registry; COMP_NAME STATUS VERSION ------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------- ----------- ------------------- Oracle9i Catalog Views VALID 9.2 .0 .7 .0 Oracle9i Packages and Types VALID 9.2 .0 .7 .0 Oracle Workspace Manager VALID 9.2 .0 .1 .0 JServer JAVA Virtual Machine VALID 9.2 .0 .7 .0 Oracle XDK for Java VALID 9.2 .0 .9 .0 Oracle9i Java Packages VALID 9.2 .0 .7 .0 Oracle interMedia VALID 9.2 .0 .7 .0 Spatial VALID 9.2 .0 .7 .0 Oracle Text VALID 9.2 .0 .7 .0 Oracle XML Database VALID 9.2 .0 .7 .0 Oracle Ultra Search VALID 9.2 .0 .7 .0 Oracle Data Mining VALID 9.2 .0 .7 .0 OLAP Analytic Workspace UPGRADED 9.2 .0 .7 .0 Oracle OLAP API UPGRADED 9.2 .0 .7 .0 OLAP Catalog VALID 9.2 .0 .7 .0
从上面可以清楚地看到,通过脚本手工创建的数据库少装了很多组件,现在考虑如何装组件 1 JServer JAVA Virtual Machine 2 Oracle XML Database
如果问题不能快速解决,都打算暂时迁回到老库去(将新库数据导入)。
解决步骤
后来在老大的指导下,通过以下步骤解决 停止实例。 停listener 启动1个实例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
connect / as sysdba startup mount alter system set "_system_trig_enabled" = false scope=memory; alter database open; -- if jvm not installed,install jvm @?/javavm/install/initjvm.sql -- install XML (xdk for java) @?/xdk/admin/initxml.sql select comp_id,comp_name,version,status from dba_registry; SQL> select comp_name, status, substr(version,1 ,10 ) as version 2 from dba_registry; COMP_NAME -------------------------------------------------------------------------------- STATUS VERSION ---------------------- ---------------------------------------- Oracle9i Catalog Views VALID 9.2 .0 .8 .0 Oracle9i Packages and Types VALID 9.2 .0 .8 .0 JServer JAVA Virtual Machine VALID 9.2 .0 .8 .0 COMP_NAME -------------------------------------------------------------------------------- STATUS VERSION ---------------------- ---------------------------------------- Oracle XDK for Java VALID 9.2 .0 .10 .0
新装组件后,应用重新编译存过通过,然后通知应用人员进行了系统测试,测试正常。
原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/tech/database/236365.html