ITPub博客

首页 > Linux操作系统 > Linux操作系统 > RMAN实战系列之二:用RMAN实现灾难恢复

RMAN实战系列之二:用RMAN实现灾难恢复

原创 Linux操作系统 作者:husthxd 时间:2004-09-22 00:00:00 0 删除 编辑

rman实验(2)。


本文可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明

http://blog.itpub.net/post/11/2315

OS:windows 2000

DB:ORACLE 9.0.1

ORACLE_BASE:d:oracle

 

1.       以下示例在丢失目标数据库数据文件、恢复目录、所有控制文件、所有在线重做日志文件和所有参数文件的情况下恢复数据库。灾难恢复最小需要某些数据文件的备份、归档日志和至少一个控制文件的自动备份。

2.       启动rman,连接到目标数据库、恢复目录上,设置控制文件自动备份,做数据库的全备份。

c:>rman target sys/oracle@to911newdb rcvcat rman/rman@catalog

连接到目标数据库: HYB (DBID=3456381404)

连接到恢复目录数据库

Rman>configure controlfile autobackup on;

Rman>backup database plus archivelog;

3.       关闭数据库,删除所有的数据文件、控制文件和日志文件,不连接恢复目录(模拟恢复目录数据库损坏),实际环境中可能要重新配置tnsname和listener。重新连接rman。

C: >rman

 

恢复管理器: 版本9.0.1.1.1 - Production

 

(c) Copyright 2001 Oracle Corporation.  All rights reserved.

 

RMAN>set DBID 3456381404

 

正在执行命令: SET DBID

 

RMAN>connect target sys/oracle@to911newdb

 

已连接到目标数据库 (未启动)

 

RMAN>restore controlfile from autobackup;

 

启动 restore 于 28-7月 -04

 

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-00579: the following error occurred at 07/28/2004 14:55:26

RMAN-03002: failure during compilation of command

RMAN-03013: command type: restore

RMAN-03002: failure during compilation of command

RMAN-03013: command type: IRESTORE

RMAN-12010: automatic channel allocation initialization failed

RMAN-06403: could not obtain a fully authorized session

RMAN-04005: error from target database: ORA-01034: ORACLE not available

ORA-27101: shared memory realm does not exist

 

RMAN>startup force nomount

 

Oracle 例程已启动

 

总的系统全局区域为    302805104字节

 

Fixed Size                      282736字节

Variable Size                192937984字节

Database Buffers             109051904字节

Redo Buffers                    532480字节

 

RMAN>restore controlfile from autobackup;

 

启动 restore 于 28-7月 -04

 

正在使用目标数据库控制文件替代恢复目录

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=11 devtype=DISK

通道 ORA_DISK_1, 正在查找当天控制文件自动备份:20040728

通道 ORA_DISK_1, 找到控制文件自动备份:c-3456381404-20040728-02

通道 ORA_DISK_1, 控制文件自动备份恢复已完成

正在复制控制文件

输出文件名=D:ORACLEORADATAHYBCONTROL01.CTL

输出文件名=D:ORACLEORADATAHYBCONTROL02.CTL

输出文件名=D:ORACLEORADATAHYBCONTROL03.CTL

完成 restore 于 28-7月 -04

 

RMAN>alter database mount;

数据库已加载

 

RMAN>run

2> {

3> set until sequence 5 thread 1;

4> restore database;

5> recover database;

6> }

 

正在执行命令: SET until clause

正在使用目标数据库控制文件替代恢复目录

 

启动 restore 于 28-7月 -04

 

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=10 devtype=DISK

通道 ORA_DISK_1: 正在开始恢复数据文件备份集

通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件

正将数据文件00001恢复到D:ORACLEORADATAHYBSYSTEM01.DBF

正将数据文件00002恢复到D:ORACLEORADATAHYBUNDOTBS01.DBF

正将数据文件00003恢复到D:ORACLEORADATAHYBCWMLITE01.DBF

正将数据文件00004恢复到D:ORACLEORADATAHYBDRSYS01.DBF

正将数据文件00005恢复到D:ORACLEORADATAHYBEXAMPLE01.DBF

正将数据文件00006恢复到D:ORACLEORADATAHYBINDX01.DBF

正将数据文件00007恢复到D:ORACLEORADATAHYBTOOLS01.DBF

正将数据文件00008恢复到D:ORACLEORADATAHYBUSERS01.DBF

正将数据文件00009恢复到D:ORACLEORADATAHYBSIDB.ORA

正将数据文件00010恢复到D:ORACLEORADATAHYBYB.ORA

正将数据文件00011恢复到D:ORACLEORADATAHYBZS.ORA

正将数据文件00012恢复到D:ORACLEORADATAHYBFF.ORA

正将数据文件00013恢复到D:ORACLEORADATAHYBBM.ORA

正将数据文件00014恢复到D:ORACLEORADATAHYBSIDB_INDEX.ORA

正将数据文件00015恢复到D:ORACLEORADATAHYBPHOTO.ORA

正将数据文件00016恢复到D:ORACLEORADATAHYBHIS.ORA

正将数据文件00017恢复到D:ORACLEORADATAHYBSIDB_RBS.ORA

正将数据文件00018恢复到D:ORACLEORADATAHYBGRYSZM1994.ORA

正将数据文件00019恢复到D:ORACLEORADATAHYBGRYSZM1995.ORA

正将数据文件00020恢复到D:ORACLEORADATAHYBGRYSZM1996.ORA

正将数据文件00021恢复到D:ORACLEORADATAHYBGRYSZM1997.ORA

正将数据文件00022恢复到D:ORACLEORADATAHYBGRYSZM1998.ORA

正将数据文件00023恢复到D:ORACLEORADATAHYBGRYSZM1999.ORA

正将数据文件00024恢复到D:ORACLEORADATAHYBGRYSZM2000.ORA

正将数据文件00025恢复到D:ORACLEORADATAHYBGRYSZM2001.ORA

正将数据文件00026恢复到D:ORACLEORADATAHYBGRYSZM2002.ORA

正将数据文件00027恢复到D:ORACLEORADATAHYBGRYSZM2003.ORA

正将数据文件00028恢复到D:ORACLEORADATAHYBGRYSZM2004.ORA

正将数据文件00029恢复到D:ORACLEORADATAHYBGRYSZM2005.ORA

正将数据文件00030恢复到D:ORACLEORADATAHYBGRYSZM2006.ORA

正将数据文件00031恢复到D:ORACLEORADATAHYBGRYSZM2007.ORA

正将数据文件00032恢复到D:ORACLEORADATAHYBGRYSZM2008.ORA

正将数据文件00033恢复到D:ORACLEORADATAHYBGRYSZM_LOCAL_INDEX.ORA

正将数据文件00034恢复到D:ORACLEORADATAHYBGRYSZM_GLOBAL_INDEX.ORA

通道 ORA_DISK_1: 已恢复备份段 1

handle=E:RMANHYB_532705611_02FS0SAB_1_1 tag=null params=NULL

通道 ORA_DISK_1: 恢复完成

完成 restore 于 28-7月 -04

 

启动 recover 于 28-7月 -04

使用通道 ORA_DISK_1

 

 

正在开始介质的恢复

 

存档日志线程 1 序列 2 已作为文件 D:ORACLEORA90RDBMSARC00002.001 存在于磁盘上

 

存档日志线程 1 序列 3 已作为文件 E:ARCHIVEHYBARC_3_1.ARC 存在于磁盘上

存档日志线程 1 序列 4 已作为文件 E:ARCHIVEHYBARC_4_1.ARC 存在于磁盘上

存档日志文件名 =D:ORACLEORA90RDBMSARC00002.001 线程 =1 序列 =2

存档日志文件名 =E:ARCHIVEHYBARC_3_1.ARC 线程 =1 序列 =3

存档日志文件名 =E:ARCHIVEHYBARC_4_1.ARC 线程 =1 序列 =4

完成介质的恢复

完成 recover 于 28-7月 –04

RMAN>

 

RMAN>alter database open resetlogs;

 

数据库已打开

 

RMAN>

 

4.       完成数据库恢复。可以用sql*plus连接到数据库上

> @conn system/manager@to911newdb

已连接。

system@FXSB01> column  host_name format a30

system@FXSB01> column  instance_name format a30

system@FXSB01> select host_name,instance_name from v$instance;

 

HOST_NAME                      INSTANCE_NAME

------------------------------ ------------------------------

FXSB01                         hyb

5.       注意事项:

ü         执行以下查询取得日志序列:

sql> select sequence# from v$archived_log;

 

 SEQUENCE#

----------

         1

         2

         3

         4

         5

        

已选择5行。

得到最大的日志序列5

ü         由于rman版本为9.0.1,restore spfile from autobackup;执行出错。不知道9.2.0的版本是否可以执行?

6.       小结:按照传统的恢复方法,需要手工把数据文件copy到原来的位置,重建控制文件等一系列手工操作,容易出错。如果使用rman,这些都不需要了,只需在rman中执行不多的命令就可以实现数据库恢复。

 

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

请登录后发表评论 登录
全部评论
ITPUB数据库版块资深版主,对Oracle、PostgreSQL有深入研究。现就职于广州云图数据技术有限公司,系统架构师。

注册时间:2007-12-28

  • 博文量
    1395
  • 访问量
    3841798