1. 设置session变量:
C:>set ORACLE_SID=TEST
C:>set nls_date_format=yyyy-mm-dd hh24:mi:ss
2. 做一次RMAN的全备:
C:>rman target / nocatalog
恢复管理器: 版本10.1.0.2.0 - Production
Copyright (c) 1995, 2004, Oracle. All rights reserved.
已连接到目标数据库 (未启动)
[@more@]RMAN> startup mount
Oracle 例程已启动
数据库已装载
系统全局区域总计 125829120 字节
Fixed Size 787788 字节
Variable Size 108001972 字节
Database Buffers 16777216 字节
Redo Buffers 262144 字节
RMAN> backup database;
启动 backup 于 2007-04-16 16:23:18
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=50 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:ORACLEORADATATESTSYSTEM01.DBF
输入数据文件 fno=00003 name=D:ORACLEORADATATESTSYSAUX01.DBF
输入数据文件 fno=00002 name=D:ORACLEORADATATESTUNDOTBS01.DBF
输入数据文件 fno=00004 name=D:ORACLEORADATATESTUSER01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 2007-04-16 16:23:20
通道 ORA_DISK_1: 已完成段 1 于 2007-04-16 16:24:15
段 handle=D:ORACLEORADATATESTFLASH_RECOVERY_AREATESTBACKUPSET2007_04_16O1_MF_NNNDF_TAG20070416T162319_326DMRKL_.BKP comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:56
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 2007-04-16 16:24:17
通道 ORA_DISK_1: 已完成段 1 于 2007-04-16 16:24:24
段 handle=D:ORACLEORADATATESTFLASH_RECOVERY_AREATESTBACKUPSET2007_04_16O1_MF_NCSNF_TAG20070416T162319_326DOL2G_.BKP comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:09
完成 backup 于 2007-04-16 16:24:24
RMAN> shutdown immediate
数据库已卸载
Oracle 例程已关闭
3. 用OS命令备份控制文件:
此处为时间点A
4. 创建测试表T1,此处设为时间点B:
C:>sqlplus /nolog
SQL*Plus: Release 10.1.0.2.0 - Production on 星期一 4月 16 16:27:47 2007
Copyright (c) 1982, 2004, Oracle. All rights reserved.
SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 125829120 bytes
Fixed Size 787788 bytes
Variable Size 108001972 bytes
Database Buffers 16777216 bytes
Redo Buffers 262144 bytes
数据库装载完毕。
数据库已经打开。
SQL> create table t1 tablespace users as select * from dba_tables;
表已创建。
SQL> select count(*) from t1;
COUNT(*)
----------
759
5. 产生归档:
SQL> alter system switch logfile;
系统已更改。
SQL> /
系统已更改。
SQL> /
系统已更改。
6. 模拟介质错误:
SQL> shutdown abort
ORACLE 例程已经关闭。
7. RMAN时间点恢复到T1表创建之前,即时间点B:
C:>rman target / nocatalog
恢复管理器: 版本10.1.0.2.0 - Production
Copyright (c) 1995, 2004, Oracle. All rights reserved.
已连接到目标数据库 (未启动)
RMAN> startup mount
Oracle 例程已启动
数据库已装载
系统全局区域总计 125829120 字节
Fixed Size 787788 字节
Variable Size 108001972 字节
Database Buffers 16777216 字节
Redo Buffers 262144 字节
RMAN> run {
2> allocate channel c1 type disk;
3> set until time '2007-04-16 16:32:00';
4> restore database;
5> recover database;
6> }
分配的通道: c1
通道 c1: sid=50 devtype=DISK
正在执行命令: SET until clause
启动 restore 于 2007-04-16 16:36:54
通道 c1: 正在开始恢复数据文件备份集
通道 c1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:ORACLEORADATATESTSYSTEM01.DBF
正将数据文件00002恢复到D:ORACLEORADATATESTUNDOTBS01.DBF
正将数据文件00003恢复到D:ORACLEORADATATESTSYSAUX01.DBF
正将数据文件00004恢复到D:ORACLEORADATATESTUSER01.DBF
通道 c1: 已恢复备份段 1
段句柄 = D:ORACLEORADATATESTFLASH_RECOVERY_AREATESTBACKUPSET2007_04_16O1_MF_NNNDF_TAG20070416T162319_326DMRKL_.BKP 标记 = TAG20070416T162319
通道 c1: 恢复完成
完成 restore 于 2007-04-16 16:38:12
启动 recover 于 2007-04-16 16:38:12
正在开始介质的恢复
存档日志线程 1 序列 4 已作为文件 D:ORACLEORADATATESTARCHIVE1_4_620063463.ARV 存在于磁盘上
存档日志线程 1 序列 5 已作为文件 D:ORACLEORADATATESTARCHIVE1_5_620063463.ARV 存在于磁盘上
存档日志线程 1 序列 6 已作为文件 D:ORACLEORADATATESTARCHIVE1_6_620063463.ARV 存在于磁盘上
存档日志线程 1 序列 7 已作为文件 D:ORACLEORADATATESTARCHIVE1_7_620063463.ARV 存在于磁盘上
存档日志文件名 =D:ORACLEORADATATESTARCHIVE1_4_620063463.ARV 线程 =1 序列 =4
存档日志文件名 =D:ORACLEORADATATESTARCHIVE1_5_620063463.ARV 线程 =1 序列 =5
存档日志文件名 =D:ORACLEORADATATESTARCHIVE1_6_620063463.ARV 线程 =1 序列 =6
存档日志文件名 =D:ORACLEORADATATESTARCHIVE1_7_620063463.ARV 线程 =1 序列 =7
完成介质的恢复
完成 recover 于 2007-04-16 16:38:25
释放的通道: c1
RMAN> alter database open resetlogs;
数据库已打开
8. 检查发现T1表不见了,归档被重置,并创建表T2:
C:>sqlplus /nolog
SQL*Plus: Release 10.1.0.2.0 - Production on 星期一 4月 16 16:40:33 2007
Copyright (c) 1982, 2004, Oracle. All rights reserved.
SQL> conn / as sysdba
已连接。
SQL> select count(*) from t1;
select count(*) from t1
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
SQL> create table t2 tablespace users as select * from dba_users;
表已创建。
SQL> select count(*) from t2;
COUNT(*)
----------
6
SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 D:oracleoradataTESTarchive
最早的联机日志序列 0
下一个存档日志序列 1
当前日志序列 1
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
9. 切换控制文件:
OS备份控制文件,设此时为时间点C。
恢复时间点A的控制为当前指向的控制文件。
10. RMAN恢复到时间点B:
C:>rman target / nocatalog
恢复管理器: 版本10.1.0.2.0 - Production
Copyright (c) 1995, 2004, Oracle. All rights reserved.
已连接到目标数据库 (未启动)
RMAN> startup mount
Oracle 例程已启动
数据库已装载
系统全局区域总计 125829120 字节
Fixed Size 787788 字节
Variable Size 108001972 字节
Database Buffers 16777216 字节
Redo Buffers 262144 字节
RMAN> run {
2> allocate channel c1 type disk;
3> set until time '2007-04-16 16:32:00';
4> restore database;
5> recover database;
6> }
分配的通道: c1
通道 c1: sid=50 devtype=DISK
正在执行命令: SET until clause
启动 restore 于 2007-04-16 17:07:43
通道 c1: 正在开始恢复数据文件备份集
通道 c1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:ORACLEORADATATESTSYSTEM01.DBF
正将数据文件00002恢复到D:ORACLEORADATATESTUNDOTBS01.DBF
正将数据文件00003恢复到D:ORACLEORADATATESTSYSAUX01.DBF
正将数据文件00004恢复到D:ORACLEORADATATESTUSER01.DBF
通道 c1: 已恢复备份段 1
段句柄 = D:ORACLEORADATATESTFLASH_RECOVERY_AREATESTBACKUPSET2007_04_16O1_MF_NNNDF_TAG20070416T165840_326GP1LK_.BKP 标记 = TAG20070416T165840
通道 c1: 恢复完成
完成 restore 于 2007-04-16 17:08:59
启动 recover 于 2007-04-16 17:09:00
正在开始介质的恢复
完成介质的恢复
完成 recover 于 2007-04-16 17:09:05
释放的通道: c1
RMAN> shutdown immediate
数据库已卸载
Oracle 例程已关闭
11. 切换控制文件:
恢复指向时间点A的控制纹。
12. 开启数据库
C:>sqlplus /nolog
SQL*Plus: Release 10.1.0.2.0 - Production on 星期一 4月 16 17:11:37 2007
Copyright (c) 1982, 2004, Oracle. All rights reserved.
SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 125829120 bytes
Fixed Size 787788 bytes
Variable Size 108001972 bytes
Database Buffers 16777216 bytes
Redo Buffers 262144 bytes
数据库装载完毕。
ORA-01190: 控制文件或数据文件 1 来自于最后一个 RESETLOGS 之前
ORA-01110: 数据文件 1: 'D:ORACLEORADATATESTSYSTEM01.DBF'
13. 介质恢复:
SQL> recover database;
ORA-00279: 更改 181361 (在 04/16/2007 16:58:06 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:ORACLEORADATATESTARCHIVE1_1_620067322.ARV
ORA-00280: 更改 181361 (用于线程 1) 在序列 #1 中
指定日志: {=suggested | filename | AUTO | CANCEL}
auto
已应用的日志。
完成介质恢复。
SQL> alter database open;
数据库已更改。
14. 验证完成!
SQL> select count(*) from t2;
COUNT(*)
----------
6
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7319461/viewspace-928337/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7319461/viewspace-928337/