关于recovery through resetlogs的测试

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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值