在升级过程中,重启数据库出现了ORA-205错误。
在升级过程中,出现了错误,打算利用备份恢复后,重新执行升级过程。
结果恢复完成后,仍然报错,错误如下:
[oracle@bjtest ~]$ sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on 星期五 4月 30 18:42:19 2010
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
连接到:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> exit
从Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production中断开
[oracle@bjtest ~]$ sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on 星期五 4月 30 18:44:06 2010
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
已连接到空闲例程。
SQL> startup pfile=inittest9.ora
ORACLE 例程已经启动。
Total System Global Area 657246184 bytes
Fixed Size 743400 bytes
Variable Size 385875968 bytes
Database Buffers 268435456 bytes
Redo Buffers 2191360 bytes
ORA-00205: ?????????????????????
关闭数据库后,对数据文件进行了恢复,然后重新启动数据库,却碰到了这个ORA-205的错误。
Oracle的9i文档上描述的ORA-205错误:
ORA-00205 error in identifying controlfile, check alert log for more info
Cause: The system could not find a control file of the specified name and size.
Action: One of the following:
Check that the proper control file name is referenced in the CONTROL_FILES initialization parameter in the initialization parameter file and try again.
When using mirrored control files, that is, more than one control file is referenced in the initialization parameter file, remove the control file name listed in the message from the initialization parameter file and restart the instance. If the message does not recur, remove the problem control file from the initialization parameter file and create another copy of the control file with a new file name in the initialization parameter file.
问题显然和文档上的描述没有关系。仔细检查了初始化中的设置,已经控制文件的路径,没有发现问题。
关闭数据库后,再次执行了恢复的过程,打开数据库,错误依旧。
检查了备份和恢复的过程,也没有发现任何的问题。
感觉有点奇怪,查询了一下ORACLE的METALINK,找到了问题的原因,在升级过程中,如果出现了错误,很可能会在不同的ORACLE_HOME目录下启动多个数据库,详细文档描述可以参考:ID 808625.1。
检查当前的环境:
[oracle@bjtest test9]$ ps -ef|grep test9
oracle 30422 1 0 18:36 ? 00:00:00 ora_pmon_test9
oracle 30424 1 0 18:36 ? 00:00:00 ora_dbw0_test9
oracle 30426 1 0 18:36 ? 00:00:00 ora_dbw1_test9
oracle 30428 1 0 18:36 ? 00:00:00 ora_lgwr_test9
oracle 30430 1 0 18:36 ? 00:00:00 ora_ckpt_test9
oracle 30432 1 0 18:36 ? 00:00:00 ora_smon_test9
oracle 30434 1 0 18:36 ? 00:00:00 ora_reco_test9
oracle 30529 1 0 18:44 ? 00:00:00 ora_pmon_test9
oracle 30531 1 0 18:44 ? 00:00:00 ora_dbw0_test9
oracle 30533 1 0 18:44 ? 00:00:00 ora_dbw1_test9
oracle 30535 1 0 18:44 ? 00:00:00 ora_lgwr_test9
oracle 30537 1 0 18:44 ? 00:00:00 ora_ckpt_test9
oracle 30539 1 0 18:44 ? 00:00:00 ora_smon_test9
oracle 30541 1 0 18:44 ? 00:00:00 ora_reco_test9
oracle 30542 30526 0 18:44 ? 00:00:00 oracletest9 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 30604 30013 0 18:58 pts/5 00:00:00 grep test9
所有的关键的后台进程都是重复的,关闭当前的数据库:
SQL> shutdown abort
ORACLE 例程已经关闭。
再次检查后台进程:
[oracle@bjtest test9]$ ps -ef|grep test9
oracle 30422 1 0 18:36 ? 00:00:00 ora_pmon_test9
oracle 30424 1 0 18:36 ? 00:00:00 ora_dbw0_test9
oracle 30426 1 0 18:36 ? 00:00:00 ora_dbw1_test9
oracle 30428 1 0 18:36 ? 00:00:00 ora_lgwr_test9
oracle 30430 1 0 18:36 ? 00:00:00 ora_ckpt_test9
oracle 30432 1 0 18:36 ? 00:00:00 ora_smon_test9
oracle 30434 1 0 18:36 ? 00:00:00 ora_reco_test9
oracle 30542 30526 0 18:44 ? 00:00:00 oracletest9 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 30608 30013 0 18:59 pts/5 00:00:00 grep test9
发现进程仍然存在,看来就是这个问题引起的。
[oracle@bjtest test9]$ ps -ef|grep test9
oracle 30422 1 0 18:36 ? 00:00:00 ora_pmon_test9
oracle 30424 1 0 18:36 ? 00:00:00 ora_dbw0_test9
oracle 30426 1 0 18:36 ? 00:00:00 ora_dbw1_test9
oracle 30428 1 0 18:36 ? 00:00:00 ora_lgwr_test9
oracle 30430 1 0 18:36 ? 00:00:00 ora_ckpt_test9
oracle 30432 1 0 18:36 ? 00:00:00 ora_smon_test9
oracle 30434 1 0 18:36 ? 00:00:00 ora_reco_test9
oracle 30542 30526 0 18:44 ? 00:00:00 oracletest9 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 30624 30013 0 19:00 pts/5 00:00:00 grep test9
[oracle@bjtest test9]$ kill -9 30422
[oracle@bjtest test9]$ kill -9 30424
[oracle@bjtest test9]$ kill -9 30426
[oracle@bjtest test9]$ kill -9 30428
[oracle@bjtest test9]$ kill -9 30430
[oracle@bjtest test9]$ kill -9 30432
-bash: kill: (30432) - No such process
[oracle@bjtest test9]$ ps -ef|grep test9
oracle 30542 30526 0 18:44 ? 00:00:00 oracletest9 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 30643 30013 0 19:02 pts/5 00:00:00 grep test9
通过KILL杀掉对应的后台进程,然后尝试重新启动数据库:
SQL> startup pfile=inittest9.ora
ORACLE 例程已经启动。
Total System Global Area 657246184 bytes
Fixed Size 743400 bytes
Variable Size 385875968 bytes
Database Buffers 268435456 bytes
Redo Buffers 2191360 bytes
数据库装载完毕。
数据库已经打开。
SQL>
问题解决。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-670544/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/4227/viewspace-670544/