今天测试了一下如何增加一个控制文件。
首先设定参数:
alter system set control_files='e:\oracle\oradata\orcl\control01.ctl,
e:\oracle\oradata\orcl\control02.ctl,
e:\oracle\oradata\orcl\control03.ctl,
c:\oractl\control04.ctl' scope=spfile;
然后备份控制文件:
alter database backup controlfile to 'c:\oractl\control04.ctl';
关闭数据库,然后重启:
shutdown immediate;
startup;
然后就出现了ora-00205的错误。检查alter.log,发现如下内容:
Thu Sep 17 16:37:32 2009
ORA-205 signalled during: alter database mount...
Thu Sep 17 16:41:57 2009
alter database mount
Thu Sep 17 16:41:57 2009
ORA-00202: control file: 'E:\ORACLE\ORADATA\ORCL\CONTROL01.CTL,E:\ORACLE\ORADATA\ORCL\CONTROL02.CTL,E:\ORACLE\ORADATA\ORCL\CONTROL03.CTL'
ORA-27041: unable to open file
OSD-04002: 无法打开文件
O/S-Error: (OS 123) 文件名、目录名或卷标语法不正确。
开始搞不明白为什么会报这个错误,我检查了路径和文件都是存在的。
于是google。结果搞明白,原来是每个控制文件的路径及文件名都要用单引号引起来。而我则是把所有控制文件用前后两个单引号引起来了。导致了该错误。
那怎么办呢?
1、先用spfile启动至nomount阶段:
startup nomount;
2、创建pfile:
create pfile='d:\initorcl.ora' from spfile;
3、修改initorcl.ora文件中的控制文件参数部分:
*.control_files='E:\oracle\oradata\orcl\control01.ctl','E:\oracle\oradata\orcl\control02.ctl','E:\oracle\oradata\orcl\control03.ctl','c:\oractl\control04.ctl'
4、用修改后的pfile启动:
startup pfile='d:\initorcl.ora';
5、启动成功,赶紧生成spfile:
create spfile from pfile;
6、搞定,再次重启,以spfile启动:
shutdown immediate;
startup;
OK,解决问题。