今天在9i RAC环境下用dbca建库刚好遇到这两个“经典“的问题。贴过来保存一下。
========ORA-29807: specified operator does not exist========
在数据库创建过程的“创建数据字典视图”阶段中,您将接收到一个 ORA-29807 错误。如果您搜索日志文件,您将看到以下内容: drop operator XMLSequence
* ERROR at line 1:
ORA-29807:specified operator does not exist
这是一个已知的问题 (Bug:2686156),并且可被忽略。要继续数据库创建过程,请单击 “Ignore” 按钮
安装完成后,在$ORACLE_HOME/rdbms/admin 目录下运 行utlrp.sql ,用于修补ORA-29807 错误。 解释 ORA-29807: specified operator does not exist This is a known issue (bug 2925665). You can click on the "Ignore" button to continue. Once DBCA has completed database creation, remember to run the 'prvtxml.plb' scrīpt from $ORACLE_HOME/rdbms/admin independently, as the user SYS. It is also advised to run the 'utlrp.sql' scrīpt to ensure that there are no invalid objects in the database at this time. 修复这个BUG,登陆SQLPLUS # sqlplus "sys/system as sysdba" SQL*Plus: Release 9.2.0.4.0 - Production on Thu Nov 1 15:52:14 2007 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. Connected to: Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.4.0 - Production SQL>@/oracle/app/oracle/product/9.2.0.4/rdbms/admin/utlrp.sql
======PRKR-1007, PRKR-1001, PRKO-2008, or PRKR-1020错误=====
(其实,这只要是srvConfig.loc文件的路径、权限的问题.)
What to do with PRKR-1007, PRKR-1001, PRKO-2008, or PRKR-1020 errors
Doc ID: Note:169454.1 Type: PROBLEM Last Revision Date: 02-JUL-2002 Status: PUBLISHED
Problem Description -------------------
What to do when you get the following errors: PRKR-1007, PRKR-1001, PRKO-2008 or PRKR-1020
For example:
srvctl config -p V901 PRKR-1007 : getting of cluster database V901 configuration failed, PRKR-1001 PRKR-1020 : reading of version information failed, open() for /dev/ptrs401/ rsrcfg device failed, No such file or directory PRKO-2008 : Application error: Failure in getting Cluster Database Configuratio1 frtru2ra901> srvctl config -p V901 -n frtru1 PRKR-1007 : getting of cluster database V901 configuration failed, PRKR-1001 PRKO-2008 : Application error: Failure in getting Cluster Database Configuratio1
Solution Description --------------------
You need to follow the steps below:
1. Check /var/opt/oracle/srvConfig.loc or /etc/srvConfig.loc or $ORACLE_HOME/srvm/config/srvConfig.loc file exists.
If the srvConfig.loc file does not exists you have to create it as 'root' with the file permissions set to:
755, owned by your oracle:dba user.:
2. Check the srvConfig.loc file contains srvconfig_loc=[symbolic link to shared device you created]
Example:
srvconfig_loc=/dev/vx/rdsk/usupportdg/V9iOPSM.dbf
that should point to an existing raw device if you are not on Tru64 platform. In this case the file must be created on a filesystem.
Please issue the following commands to check the srvConfig.loc file points to an existing raw device (if not on tru64) $ srvconfig -version
If the config file is pointing to a raw device the following type of output should be returned:
$ raw device version "9.0.0.0.0"
If it isn't a raw device, if you are on tru64 platform, you will get the following:
$ "oracle.ops.mgmt.rawdevice.RawDeviceException: PRKR-1020 : reading of version information failed, /u01/ora/oradata/RAC_Cluster_Configuration_File is not a raw device file, No such file or directory"
3. Find the 'gsd' daemon on both nodes.
$ ps -ef | grep jre
4. Shutdown the 'gsd' daemon on both nodes.
$ kill -9 <gsd process>
(in 9.2, you can enter $ gsdctl stop)
5. Format the srvConfig file only from one node.
$ srvconfig -init -f
This will read the srvConfig.loc file so if the shell prompt comes back, this would be successful.
6. Restart the 'gsd' on both nodes.
$ gsd When it's started, you should get a message: 'Successfully started the daemon on the local node'.
Then go to the other node and run the same command. If you get the same message, go to the next step.
7. Check that gsd is running on both nodes.
$ ps -ef |grep jre
8. Reconfigure the Cluster Database:
in 9.0.X:
$ srvctl add db -p <db_name> -o $ORACLE_HOME $ srvctl add instance -p <db_name> -i <instance_name> -n <node1>
$ srvctl add instance -p <db_name> -i <instance_name> -n <node2>
$ srvctl config -p <db_name>
in 9.2.X:
$ srvctl add database -d <db_name> -o $ORACLE_HOME $ srvctl add instance -d <db_name> -i <instance_name> -n <node1>
$ srvctl add instance -d <db_name> -i <instance_name> -n <node2>
$ srvctl config database -d <db_name>
Explanation -----------
You need to reinitialize the config shared file through srvconfig -init . You may have to use -f (force) option. Then you have to configure instance information before being able to see it from srvctl
|