0. ENV
RHEL6.4/ORACLE 12.2.0.1 单机文件系统
强大的oracle出现控制文件异常的几率是比较小的,但是人为误操作的可能性就相对比较大。
上期模拟存在多个冗余控制文件时,一个控制文件被误删除的恢复过程。
本次模拟当所有控制文件被删除时,采用文件描述符方式对控制文件进行恢复。
下篇采用重建控制文件方式对控制文件进行恢复。
1. 删除所有控制文件
模拟操作,误操作rm -rf control0*.ctl删除全部控制文件
SYS@orcl> show parameter control_files
NAME TYPE VALUE
--------------- ---------------------- ------------------------------
control_filesstring oradata/orcl/control01.ctl,
oradata/orcl/control02.ctl
$ rm -rf oradata/orcl/control01.ctl oradata/orcl/control02.ctl
2. 采用文件描述符方式对控制文件进行恢复
2.1 查看检查点进程
[oracle@db ~]$ ps -ef | grep ckpt | grep -v grep
oracle 6510 1 0 23:11 ? 00:00:00 ora_ckpt_orcl
2.2 查看控制文件描述符文件
[oracle@db ~]$ cd proc/6510/fd
[oracle@db fd]$ ls -lrt
total 0
lr-x------. 1 oracle oinstall 64 Mar 22 23:50 8 -> u01/app/oracle/product/12.2.0/db_1/rdbms/mesg/oraus.msb
lrwx------. 1 oracle oinstall 64 Mar 22 23:50 7 -> u01/app/oracle/product/12.2.0/db_1/dbs/lkORCL
lrwx------. 1 oracle oinstall 64 Mar 22 23:50 6 -> /u01/app/oracle/product/12.2.0/db_1/dbs/hc_orcl.dat
lr-x------. 1 oracle oinstall 64 Mar 22 23:50 5 -> /proc/6510/fd
lr-x------. 1 oracle oinstall 64 Mar 22 23:50 4 -> /u01/app/oracle/product/12.2.0/db_1/rdbms/mesg/oraus.msb
lr-x------. 1 oracle oinstall 64 Mar 22 23:50 3 -> /dev/null
lrwx------. 1 oracle oinstall 64 Mar 22 23:50 257 -> /oradata/orcl/control02.ctl #控制文件2缓存
lrwx------. 1 oracle oinstall 64 Mar 22 23:50 256 -> /oradata/orcl/control01.ctl #控制文件1缓存
l-wx------. 1 oracle oinstall 64 Mar 22 23:50 2 -> /dev/null
l-wx------. 1 oracle oinstall 64 Mar 22 23:50 1 -> /dev/null
lr-x------. 1 oracle oinstall 64 Mar 22 23:50 0 -> /dev/null
2.3 采用文件描述符方式对控制文件进行恢复
$ cp 257 /oradata/orcl/control02.ctl
$ cp 256 /oradata/orcl/control01.ctl
2.4 关闭数据库异常
SYS@orcl> shut immediate;
Database closed.
ORA-03113: end-of-file on communication channel
Process ID: 6555
Session ID: 379 Serial number: 54017
2.5 启动数据库正常
SYS@orcl> startup
ORACLE instance started.
Total System Global Area 587202560 bytes
Fixed Size 8623352 bytes
Variable Size 339741448 bytes
Database Buffers 230686720 bytes
Redo Buffers 8151040 bytes
Database mounted.
Database opened.
数据库恢复正常。
3. 结论
当控制文件被误删除时,此时紧急补救措施是使用文件描述符方式对控制文件进行恢复。