4、修复control_file错误
Control_files定义的控制文件列表中,采用的是多路备份方式。所以在内容上,所有的文件都是一样的。使用操作系统层面上的复制粘贴方式,恢复出备份。
//尝试恢复
[oracle@oracle11g trace]$ cd /u01/oradata/WILSON/controlfile/
[oracle@oracle11g controlfile]$ pwd
/u01/oradata/WILSON/controlfile
[oracle@oracle11g controlfile]$ ls -l
total 19072
-rw-r----- 1 oracle oinstall 9748480 Jun 30 15:27 o1_mf_6bcsqm50_.ctl
-rw-r----- 1 oracle oinstall 9748480 Jun 30 15:27 o2bak.ctl
[oracle@oracle11g controlfile]$
[oracle@oracle11g controlfile]$ cp o1_mf_6bcsqm50_.ctl o2.ctl
[oracle@oracle11g controlfile]$ ls -l
total 28608
-rw-r----- 1 oracle oinstall 9748480 Jun 30 15:27 o1_mf_6bcsqm50_.ctl
-rw-r----- 1 oracle oinstall 9748480 Jun 30 15:27 o2bak.ctl
-rw-r----- 1 oracle oinstall 9748480 Jun 30 15:31 o2.ctl
再次视图启动数据库。
[oracle@oracle11g controlfile]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 30 15:31:55 2011
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected.
SQL> startup
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL> shutdown abort
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 414298112 bytes
Fixed Size 1336904 bytes
Variable Size 318769592 bytes
Database Buffers 88080384 bytes
Redo Buffers 6111232 bytes
Database mounted.
Database opened.
SQL>
启动成功。
5、恢复原有control_files参数
最后我们恢复实验环境,提出o2.ctl的控制文件身份。
//处理掉原来的文件
SQL> show parameter control_files;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /u01/oradata/WILSON/controlfile/o1_mf_6bcsqm50_.ctl, /u01/flash_recovery_area/WILSON/controlfile/o1_mf_6bcsqmd8_.ctl, /u01/oradata/WILSON/controlfile/o2.ctl
SQL> alter system set control_files='/u01/oradata/WILSON/controlfile/o1_mf_6bcsqm50_.ctl', '/u01/flash_recovery_area/WILSON/controlfile/o1_mf_6bcsqmd8_.ctl' scope=spfile;
System altered
之后,重新启动数据库即可成效。
[oracle@oracle11g controlfile]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 30 15:35:57 2011
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected.
SQL> shutdown abort
ORACLE instance shut down.
SQL>
[oracle@oracle11g controlfile]$ ls -l
total 28608
-rw-r----- 1 oracle oinstall 9748480 Jun 30 15:35 o1_mf_6bcsqm50_.ctl
-rw-r----- 1 oracle oinstall 9748480 Jun 30 15:27 o2bak.ctl
-rw-r----- 1 oracle oinstall 9748480 Jun 30 15:35 o2.ctl
[oracle@oracle11g controlfile]$ rm o2.ctl
[oracle@oracle11g controlfile]$ ls -l
total 19072
-rw-r----- 1 oracle oinstall 9748480 Jun 30 15:35 o1_mf_6bcsqm50_.ctl
-rw-r----- 1 oracle oinstall 9748480 Jun 30 15:27 o2bak.ctl
//重新启动
[oracle@oracle11g controlfile]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 30 15:36:26 2011
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 414298112 bytes
Fixed Size 1336904 bytes
Variable Size 318769592 bytes
Database Buffers 88080384 bytes
Redo Buffers 6111232 bytes
Database mounted.
Database opened.
SQL> show parameter control_files;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /u01/oradata/WILSON/controlfil
e/o1_mf_6bcsqm50_.ctl, /u01/fl
ash_recovery_area/WILSON/contr
olfile/o1_mf_6bcsqmd8_.ctl
6、结论
Control_file的多路备份,可以减少由于硬件原因引起的数据库致命伤害。控制文件中包括了一些核心数据信息,进行操作一定要小心。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17203031/viewspace-701210/ ,如需转载,请注明出处,否则将追究法律责任。