ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 控制文件恢复之resetlogs建立控制文件实验

控制文件恢复之resetlogs建立控制文件实验

原创 Linux操作系统 作者:yuecaibo 时间:2012-05-06 21:14:09 0 删除 编辑

情景描述:
 控制文件有文本备份
 数据文件一致
 控制文件和redo文件丢失
控制文件可以使用备份信息新建
 没有redo 所以要resetlogs建立控制文件
 resetlogs会使数据库重新建立redo文件
 resetlogs后一定要重新备份数据库
 

先备份控制文件 文本格式
SQL> alter database backup controlfile to trace as '/u01/oracle/ctl.sql';

Database altered.

SQL> select * from v$controlfile;

STATUS    NAME            IS_ BLOCK_SIZE FILE_SIZE_BLKS
---------- -------------------------------------------------- --- ---------- --------------
    /db254/control01.ctl          NO       16384  450
    /db254/control02.ctl          NO       16384  450
    /db254/control03.ctl          NO       16384  450

SQL> select * from v$logfile;

    GROUP# STATUS     TYPE    MEMBER         IS_
---------- ---------- ------- --------------------------------------------- ---
  3       ONLINE  /db254/redo03.log        NO
  2       ONLINE  /db254/redo02.log        NO
  1       ONLINE  /db254/redo01.log        NO

一致停库
SQL> shut immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>

删除redo和control文件
SQL> ! rm /db254/redo*

SQL> ! rm /db254/contro*

SQL>

启动数据库 没有控制文件 只能到nomount 报205
SQL> startup
ORACLE instance started.

Total System Global Area  285212672 bytes
Fixed Size      1218992 bytes
Variable Size     83887696 bytes
Database Buffers   197132288 bytes
Redo Buffers      2973696 bytes
ORA-00205: error in identifying control file, check alert log for more info


SQL>

拿备份的文本中 使用resetlog模式创建控制文件  resetlog会在open时重建redo

CREATE CONTROLFILE REUSE DATABASE "ORA10G" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/db254/redo01.log'  SIZE 50M,
  GROUP 2 '/db254/redo02.log'  SIZE 50M,
  GROUP 3 '/db254/redo03.log'  SIZE 50M
DATAFILE
  '/db254/system01.dbf',
  '/db254/undotbs01.dbf',
  '/db254/sysaux01.dbf',
  '/db254/users01.dbf',
  '/db254/mytbs01.dbf',
  '/db254/ind_tbs01.dbf',
  '/db254/wb.dbf'
CHARACTER SET AL32UTF8
;

 

Control file created.

SQL> select status from v$instance;

STATUS
----------
MOUNTED

SQL> 控制文件已建好 日志文件会在open时重新创建
SQL> ! ls /db254/control*
/db254/control01.ctl  /db254/control02.ctl  /db254/control03.ctl

SQL> ! ls /db254/redo*
ls: /db254/redo*: 没有那个文件或目录

SQL>
因为数据文件是一致的.所以不需要恢复
SQL> select name,FUZZY,CHECKPOINT_CHANGE#,CHECKPOINT_COUNT from  v$datafile_header;

NAME         FUZ CHECKPOINT_CHANGE# CHECKPOINT_COUNT
-------------------------------------------------- --- ------------------ ----------------
/db254/system01.dbf       NO    1079164        247
/db254/undotbs01.dbf       NO    1079164        207
/db254/sysaux01.dbf       NO    1079164        244
/db254/users01.dbf       NO    1079164        257
/db254/mytbs01.dbf       NO    1079164        120
/db254/ind_tbs01.dbf       NO    1079164  54
/db254/wb.dbf        NO    1079164  11

7 rows selected.

SQL>

SQL> alter database open resetlogs;

Database altered.

SQL>

SQL> ! ls /db254/redo*
/db254/redo01.log  /db254/redo02.log  /db254/redo03.log

SQL>

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24756465/viewspace-722847/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-03-03

  • 博文量
    42
  • 访问量
    37725