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/,如需转载,请注明出处,否则将追究法律责任。