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.

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

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:\ORACLE\ORADATA\TEST\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\ORADATA\TEST\SYSAUX01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\ORADATA\TEST\UNDOTBS01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\ORADATA\TEST\USER01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 2007-04-16 16:23:20
通道 ORA_DISK_1: 已完成段 1 于 2007-04-16 16:24:15
段 handle=D:\ORACLE\ORADATA\TEST\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2007_04_16\O1_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:\ORACLE\ORADATA\TEST\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2007_04_16\O1_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:\ORACLE\ORADATA\TEST\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\ORADATA\TEST\UNDOTBS01.DBF
正将数据文件00003恢复到D:\ORACLE\ORADATA\TEST\SYSAUX01.DBF
正将数据文件00004恢复到D:\ORACLE\ORADATA\TEST\USER01.DBF
通道 c1: 已恢复备份段 1
段句柄 = D:\ORACLE\ORADATA\TEST\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2007_04_16\O1_MF_NNNDF_TAG20070416T162319_326DMRKL_.BKP 标记 = TAG20070416T162319
通道 c1: 恢复完成
完成 restore 于 2007-04-16 16:38:12

启动 recover 于 2007-04-16 16:38:12

正在开始介质的恢复

存档日志线程 1 序列 4 已作为文件 D:\ORACLE\ORADATA\TEST\ARCHIVE\1_4_620063463.ARV 存在于磁盘上
存档日志线程 1 序列 5 已作为文件 D:\ORACLE\ORADATA\TEST\ARCHIVE\1_5_620063463.ARV 存在于磁盘上
存档日志线程 1 序列 6 已作为文件 D:\ORACLE\ORADATA\TEST\ARCHIVE\1_6_620063463.ARV 存在于磁盘上
存档日志线程 1 序列 7 已作为文件 D:\ORACLE\ORADATA\TEST\ARCHIVE\1_7_620063463.ARV 存在于磁盘上
存档日志文件名 =D:\ORACLE\ORADATA\TEST\ARCHIVE\1_4_620063463.ARV 线程 =1 序列 =4
存档日志文件名 =D:\ORACLE\ORADATA\TEST\ARCHIVE\1_5_620063463.ARV 线程 =1 序列 =5
存档日志文件名 =D:\ORACLE\ORADATA\TEST\ARCHIVE\1_6_620063463.ARV 线程 =1 序列 =6
存档日志文件名 =D:\ORACLE\ORADATA\TEST\ARCHIVE\1_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:\oracle\oradata\TEST\archive
最早的联机日志序列     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:\ORACLE\ORADATA\TEST\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\ORADATA\TEST\UNDOTBS01.DBF
正将数据文件00003恢复到D:\ORACLE\ORADATA\TEST\SYSAUX01.DBF
正将数据文件00004恢复到D:\ORACLE\ORADATA\TEST\USER01.DBF
通道 c1: 已恢复备份段 1
段句柄 = D:\ORACLE\ORADATA\TEST\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2007_04_16\O1_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:\ORACLE\ORADATA\TEST\SYSTEM01.DBF'

13. 介质恢复:

SQL> recover database;
ORA-00279: 更改 181361 (在 04/16/2007 16:58:06 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\ORADATA\TEST\ARCHIVE\1_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
Trackback

no comment untill now

Add your comment now

切换到手机版