您的位置:首页 > 数据库 > Oracle

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

2008-10-14 09:49 330 查看
数据库控制文件损坏,有trace文件,在正常的shutdown情况下(操作前请先备份数据库)
1、创建测试数据

SQL> create table tt (id number, name varchar2(100));

SQL>  insert into tt select rownum,'test..................' from dba_objects;

已创建52177行。

SQL> commit;

 

2、backup controlfile  to trace

SQL> alter session set tracefile_identifier=kipos;

会话已更改。

SQL> alter database backup controlfile to trace;

数据库已更改。

3、正常关闭数据库

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

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

SQL> startup

ORACLE 例程已经启动。

Total System Global Area  167772160 bytes

Fixed Size                  1247900 bytes

Variable Size              75498852 bytes

Database Buffers           88080384 bytes

Redo Buffers                2945024 bytes

ORA-00205: ?????????, ??????, ???????

SQL> alter session set nls_language=american;

Session altered.

SQL> alter database mount;

alter database mount

*

ERROR at line 1:

ORA-00205: error in identifying control file, check alert log for more info

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

SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG

  2      MAXLOGFILES 16

  3      MAXLOGMEMBERS 3

  4      MAXDATAFILES 100

  5      MAXINSTANCES 8

4000
  6      MAXLOGHISTORY 292

  7  LOGFILE

  8    GROUP 1 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO01.LOG'  SIZE 50M,

  9    GROUP 2 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO02.LOG'  SIZE 50M,

 10    GROUP 3 'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO03.LOG'  SIZE 50M

 11  -- STANDBY LOGFILE

 12  DATAFILE

 13    'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSTEM01.DBF',

 14    'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/UNDOTBS01.DBF',

 15    'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSAUX01.DBF',

 16    'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/USERS01.DBF',

 17    'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/EXAMPLE01.DBF',

 18    'C:/ORACLE/PRODUCT/10.2.0/ORADATA/MIS.DBF',

 19    'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/UNDO_1',

 20    'C:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/INDEX_TBS.DBF'

 21  CHARACTER SET ZHS16GBK;

控制文件已创建。
7、打开数据库,数据正常
 

SQL> alter database open;

数据库已更改。

SQL> select count(*) from tt;

  COUNT(*)

----------

     52177

SQL> 

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

 

 
 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 测试 数据库 c sql