部分控制文件损坏
(一)对原有的控制文件作删除操做,模拟部分控制文件损坏
SQL> select name from v$controlfile;
SQL> shutdown immediate
将控制文件“control03.ctl”删除
SQL> startup
ORACLE 例程已经启动。
提示信息:
Total System Global Area 285212672 bytes
Fixed Size 1248552 bytes
Variable Size 83886808 bytes
Database Buffers 192937984 bytes
Redo Buffers 7139328 bytes
ORA-00205: ?????????, ??????, ???????
SQL>altersystem set control_files='E:\oracle\product\10.2.0\oradata\yanshu\control01.ctl', 'E:\oracle\product\10.2.0\oradata\yanshu\control02.ctl' scope=spfile;
SQL> shutdown
SQL> startup
SQL> select name from v$controlfile;
SQL> shutdown
SQL> startup
SQL>altersystem set control_files='E:\oracle\product\10.2.0\oradata\yanshu\control01.ctl', 'E:\oracle\product\10.2.0\oradata\yanshu\control02.ctl', 'E:\oracle\product\10.2.0\oradata\yanshu\control03.ctl' scope=spfile;
SQL> shutdown
将“control02.ctl”复制一份改为“control03.ctl”,而后从新启动数据库。
SQL> startup
(二)新增一个控制文件,而后作删除操做,模拟部分控制文件损坏:
1.SQL>altersystem set control_files='D:\control04.ctl','E:\oracle\product\10.2.0\oradata\yanshu\control01.ctl', 'E:\oracle\product\10.2.0\oradata\yanshu\control02.ctl','E:\oracle\product\10.2.0\oradata\yanshu\control03.ctl' scope=spfile; (在open状态下操做:)
提示信息:
系统已更改(能够查看动态参数文件“E:\oracle\product\10.2.0\db_1\dbs\SPFILEDOG.ora”)。
2.SQL> shutdown immediate
复制控制文件“E:\oracle\product\10.2.0\oradata\yanshu\control01.ctl”到d盘根目录下并更名为:control04.ctl,而后启动数据库。
3.SQL> startup
4.SQL> show parameter spfile;
5.SQL> select name from v$controlfile;
6.SQL> shutdown immediate
删除文件“'D:\control04.ctl”,而后启动数据库,看看出现什么现象:
7.SQL> startup
8.SQL> startup
提示信息:
ORACLE 例程已经启动。
Total System Global Area 285212672 bytes
Fixed Size 1248552 bytes
Variable Size 71303896 bytes
Database Buffers 205520896 bytes
Redo Buffers 7139328 bytes
ORA-00205: ?????????, ??????, ???????(这是错误提示信息)
查看跟踪文件“D:\oracle\product\10.2.0\admin\dog\bdump\alert_dog”,看错误缘由。
错误缘由提示信息:
ALTER DATABASE MOUNT
Thu Apr 14 08:15:17 2011
ORA-00202: control file: 'D:\CONTROL01.CTL'
ORA-27041: unable to open file
OSD-04002: 没法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
9.解决办法:从新修改初始化参数文件中“control_files”的设置,把删除的文件项目去掉,而后再关闭从新启动就能够了:
SQL>altersystem set control_files='E:\oracle\product\10.2.0\oradata\yanshu\control01.ctl', 'E:\oracle\product\10.2.0\oradata\yanshu\control02.ctl','E:\oracle\product\10.2.0\oradata\yanshu\control03.ctl' scope=spfile;
10.SQL> shutdown immediate
11.SQL> startup