数据库服务器移动了位置,后来再连其数据库发现提示无法连接,大致为“无法为所有新实例创建连接。。。”,查看alert日志发现有如下错误:
starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
starting up 1 shared server(s) ...
Thu Jul 11 11:21:32 2013
ALTER DATABASE MOUNT
Thu Jul 11 11:21:35 2013
ORA-214 signalled during: ALTER DATABASE MOUNT...
Thu Jul 11 11:22:53 2013
网上搜,大致都是说控制文件出问题,但是服务器是win7 64位的,不知该如何直接比较控制文件的差异进行定位有错误的控制文件,看时间都是一样的,大小也一样。
根据网上说的执行关闭打开操作,如下所示:
C:\Users\46D673X>sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 7月 11 11:30:01 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> startup mount
ORA-01081: ????????? ORACLE - ??????
SQL> alter database mount
2 /
alter database mount
*
第 1 行出现错误:
ORA-00214: ???? ''D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHRIST0603\CONTROL01.CTL''
?? 13074 ??? ''D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHRIST0603\CONTROL02.CTL'' ??
13069 ???
SQL> startup mount
ORA-01081: ????????? ORACLE - ??????
SQL> shutdown immediate
ORA-01507: ??????
ORACLE 例程已经关闭。
如上黄色标出的部分,我把它断定为是control03控制文件出错了,所以就将control03控制文件删除,拷贝的control1作为03的控制文件。重启发现还是一样的错误。想着也许弄反了,会被列出的一般是出现了错误,因此这回把control01和control02都用control03的替换(之前进行备份了控制文件),果然,重启后这个问题解决了。 看来是移动机器中在关闭时机器的IO出现问题了,导致控制文件破坏不一致造成的。
但是这个问题解决了,在日志文件中又出现另一问题:
OER 7451 in Load Indicator : Error Code = OSD-04500: 指定了非法选项
O/S-Error: (OS 1) 函数不正确。 !
经查是因为64位的系统装了32位的oracle,看了确实如此。