Oracle 恢复测试-控制文件篇(二)

数据库控制文件损坏,有trace文件,在正常的shutdown情况下(操作前请先备份数据库)

1、创建测试数据

  1. SQL> create table tt (id number, name varchar2(100));
  2. SQL>  insert into tt select rownum,'test..................' from dba_objects;
  3. 已创建52177行。
  4. SQL> commit;

 

2、backup controlfile  to trace

  1. SQL> alter session set tracefile_identifier=kipos;
  2. 会话已更改。
  3. SQL> alter database backup controlfile to trace;
  4. 数据库已更改。

3、正常关闭数据库

  1. SQL> shutdown immediate
  2. 数据库已经关闭。
  3. 已经卸载数据库。
  4. ORACLE 例程已经关闭。

4、模拟破坏控制文件,或者直接将其删除
5、启动数据库,数据库无法启动到mount状态

  1. SQL> startup
  2. ORACLE 例程已经启动。
  3. Total System Global Area  167772160 bytes
  4. Fixed Size                  1247900 bytes
  5. Variable Size              75498852 bytes
  6. Database Buffers           88080384 bytes
  7. Redo Buffers                2945024 bytes
  8. ORA-00205: ?????????, ??????, ???????
  9. SQL> alter session set nls_language=american;
  10. Session altered.
  11. SQL> alter database mount;
  12. alter database mount
  13. *
  14. ERROR at line 1:
  15. ORA-00205: error in identifying control file, check alert log for more info

6、根据trace文件重建控制文件

  1. SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG
  2.   2      MAXLOGFILES 16
  3.   3      MAXLOGMEMBERS 3
  4.   4      MAXDATAFILES 100
  5.   5      MAXINSTANCES 8
  6.   6      MAXLOGHISTORY 292
  7.   7  LOGFILE
  8.   8    GROUP 1 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO01.LOG'  SIZE 50M,
  9.   9    GROUP 2 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO02.LOG'  SIZE 50M,
  10.  10    GROUP 3 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO03.LOG'  SIZE 50M
  11.  11  -- STANDBY LOGFILE
  12.  12  DATAFILE
  13.  13    'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSTEM01.DBF',
  14.  14    'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/UNDOTBS01.DBF',
  15.  15    'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSAUX01.DBF',
  16.  16    'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/USERS01.DBF',
  17.  17    'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/EXAMPLE01.DBF',
  18.  18    'C:/ORACLE/PRODUCT/10.2.0/ORADATA/MIS.DBF',
  19.  19    'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/UNDO_1',
  20.  20    'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/INDEX_TBS.DBF'
  21.  21  CHARACTER SET ZHS16GBK;
  22. 控制文件已创建。
7、打开数据库,数据正常

 

  1. SQL> alter database open;
  2. 数据库已更改。
  3. SQL> select count(*) from tt;
  4.   COUNT(*)
  5. ----------
  6.      52177
  7. SQL> 

总结:数据库正常down机的,即使丢失了全部的控制文件,在重建数控制文件后,数据库可以正常打开且不会丢失数据。注意,重建控制文件后会丢失数据库的临时文件。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值