【rman 备份与恢复】恢复丢失所有的控制文件

1  建表,实验数据。。

SQL> conn yang/yang
已连接。
SQL> create table test (int number);
表已创建。
SQL> insert into test values (1);
已创建 1 行。
SQL> insert into test values (2);
已创建 1 行。
SQL> insert into test values (3);
已创建 1 行。
SQL> insert into test values (4);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from test;
       INT
----------
         1
         2
         3
         4
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

2 模拟 控制文件丢失。
SQL> host del f:\oracl\oradata\orcl\*.ctl;
SQL> exit;
从 Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开

3 使用rman 恢复

   1 rman target /
   2 一定要 startup nomount
   3 restore controlfile from ‘备份的控制文件的路径’
   4 sql 'alter database mount'
   5 RESTORE DATABASE
   6 recover database
   7 sql'alter database open resetlogs’


 4  验证
C:\Documents and Settings\Administrator>sqlplus yang/yang
SQL*Plus: Release 11.1.0.6.0 - Production on 星期六 8月 7 23:19:22 2010
Copyright (c) 1982, 2007, Oracle.  All rights reserved.

连接到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select * from test;

       INT
----------
         1
         2
         3
         4


成功。。。

小结:

  1.rman恢复控制文件,要在DB startup  nomount之后才行。
   2.为什么要set dbid=.....?
    因为目标数据库控制文件丢失,在此处必须指定dbid 需要找到目标数据库。
   3.restore controlfile from autobackup;
    语句需要配置自动控制文件备份打开才行:
    configure controlfile autobackup on.
    如果以前修改过AUTOBACKUP的格式和路径,那么在恢复之前需要进行重新设      置指明自动备份所在路径。也可以说使用命令
   restore controlfile from 'f:\backup\CTL_0ILKPB59_1_1.BAK';
   类似命令来手动指定控制文件备份源。
   4.为什么使用alter database open resetlogs启动数据库?
     由于使用备份的控制文件恢复,该文件内不包含目标数据库redologs和数据文头部scn信息,所以必须通过resetlogs方式open

上一篇:pgbouncer-install


下一篇:非系统表空间损坏,rman备份恢复