一次做实验,spfile的参数文件control_file设置错了,直接导致数据库不能nomount。
正确设置语法应该是:
alter system set control_file=('控制文件a','控制文件b') scope=spfile;
因为查询parameter习惯了,通过参数查询到的样子是这样:'控制文件a,控制文件b'
故习惯性的写为:
alter system set control_file='控制文件a,控制文件b' scope=spfile;
然后shutdown;然后startup mount;此时发现数据库连nomount状态都到不了。一直报control_file的错。
按照oracle体系结构和加载顺序上来说,只要参数文件存在,没啥大问题的话,应该是可以进入到nomount状态的。进入nomount状态后,在mount状态之前做controlfile的检查。这次比较奇怪,都不能进入nomount状态,故也不能修改spfile参数,同时也不能去生成pfile。
没办法,只能从别的服务器上生成一个pfile,将pfile中的相关参数修改回来,当然也包括control_file参数,然后启动时startup nomount pfile='pfile路径';
然后create spfile from pfile='pfile路径';
重新启动下,能重新进入了。
有知道原理的朋友不惜赐教啊,所使用版本为11g。spfile如上所述改错control_file后不能进入monount?
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15874751/viewspace-757441/
,如需转载,请注明出处,否则将追究法律责任。