部分控制文件损坏 (一)对原有的控制文件做删除操作,模拟部分控制文件损坏 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
|