某天数据库不能正常启动,重启电脑时出现非正常关机的磁盘扫描提示,而且还有ORACLE控制文件的名字。
通过查看日志和错误信息,发现控制文件损坏。当时没有具体看控制文件的个数,希望通过重建恢复。
后来发现CONTROL02的文件没有了。通过网上查找,其实控制文件中的内容都是一样的,只要有一个就能正常启动。
随即修改pfile下的init.oraXxxxxx文件。将
control_files=("D:\oracle\oradata\JMA\CONTROL01.CTL", "D:\oracle\oradata\JMA\CONTROL02.CTL", "D:\oracle\oradata\JMA\CONTROL03.CTL")
红色字去掉。
startup 启动数据库,发现还有错误。
查看alert_xxx.log还是加载了CONTROL02.CTL的文件。
show parameter spfile
发现使用的spfile文件。执行下面的命令
CREATE SPFILE FROM PFILE='d:\xxxx\pfile\init.oraXxxxxx'。
出错。因为spfile正在使用,不能创建。
shutdown immediate关闭数据库。
再执行CREATE SPFILE命令,成功。
startup 启动数据库,数据库启动成功。
有时间再试一试没有控制文件时如果恢复。