ITPub博客

首页 > 应用开发 > IT综合 > 细节决定一切-多工控制文件有感

细节决定一切-多工控制文件有感

原创 IT综合 作者:jlttt 时间:2009-02-09 12:33:42 0 删除 编辑

1.首先查看控制文件情况
SQL> show parameter control

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string E:ORACLEPRODUCT10.2.0ORADATAORCLCONTRO
L03.CTL

2.shutdown immediate关闭数据库,并且在相同目录下增加控制文件2, CONTROL02.CTL,同时修改pfile
内容如下:
*.control_files='E:oracleproduct10.2.0oradataorclCONTROL01.CTL,E:oracleproduct10.2.0oradataorclCONTROL02.CTL,E:oracleproduct10.2.0oradataorclCONTROL03.CTL'

3.用pfile启动数据库
SQL> startup pfile='e:pfile.ora'
ORACLE 例程已经启动。

Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 209718148 bytes
Database Buffers 394264576 bytes
Redo Buffers 7135232 bytes
ORA-00205: ??????????,??????,??????


遇到此类问题时,首先查看alert日志,当时有点懵,没有第一时间想到查看alert日志
alert日志内容:
Mon Feb 09 11:37:05 2009
ALTER DATABASE MOUNT
Mon Feb 09 11:37:05 2009
ORA-00202: control file: 'E:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL01.CTL,E:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL03.CTL'
ORA-27041: unable to open file
OSD-04002: 无法打开文件
O/S-Error: (OS 123) 文件名、目录名或卷标语法不正确。

Mon Feb 09 11:37:05 2009
ORA-205 signalled during: ALTER DATABASE MOUNT...

alert提示'无法打开文件',这一般是OS层面的错误,当时怀疑以下两点:
1)copy的文件有问题
2)路径与大小写有关
但是,之后验证与以上两点无关.其实,如果仔细看alert日志是能发现问题的,但是线索就这么被忽略掉了.最后通过pub查到了问题原因,关键在pfile的内容:

以前的pfile内容:
*.control_files='E:oracleproduct10.2.0oradataorclCONTROL01.CTL,E:oracleproduct10.2.0oradataorclCONTROL02.CTL,E:oracleproduct10.2.0oradataorclCONTROL03.CTL'

修改后的pfile内容
*.control_files='E:oracleproduct10.2.0oradataorclCONTROL01.CTL','E:oracleproduct10.2.0oradataorclCONTROL02.CTL','E:oracleproduct10.2.0oradataorclCONTROL03.CTL'

关键在于引号,以前的pfile,引号('')中的内容看作一个控制文件,所以oracle把'E:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL01.CTL,E:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL03.CTL'看作一个文件,所以alert中报无法打开文件,如果认真观察alert文件是能发现这个问题的.
同时在pub上跟biti也学了一招,在拉库前,先根据pfile创建spfile
SQL>create spfile from pfile='e:pfile.ora';

文件已创建.

SQL>startup
ORACLE 例程已经启动。

Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 209718148 bytes
Database Buffers 394264576 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
数据库已经打开。

总结经验教训:
1.搞oracle要认真仔细,注意细节,这个问题认真分析1分钟就能解决,如果不认真像我就搞了1个小时.代价是昂贵的.
2.多动脑筋,biti的方法让人少走弯路.

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9533994/viewspace-1017028/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: DFS lock handle
请登录后发表评论 登录
全部评论

注册时间:2008-06-28

  • 博文量
    75
  • 访问量
    686126