续之前文章
1)完全恢复
关闭数据库
RMAN> shutdown immediate;
数据库已关闭
数据库已卸载
Oracle 实例已关闭
删除users数据文件
F:\oracle\product\10.2.0\db_1\oradata\cxjuser01.dbf
打开数据库,提示需要恢复数据文件4
RMAN> startup
已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载
恢复最新的数据文件4
RMAN> restore datafile 4;
启动 restore 于 23-12月-11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00004恢复到F:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\CXJ\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份段 F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_ARE
A\CXJ\BACKUPSET\2011_12_23\O1_MF_NNNDF_AAAAAAA_7H8G9K77_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_AREA\CXJ\BACKUPSET\2011_12
_23\O1_MF_NNNDF_AAAAAAA_7H8G9K77_.BKP 标记 = AAAAAAA
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02
完成 restore 于 23-12月-11
此时数据文件4的scn与整个数据库是不一致,所以需要恢复recover数据文件4,包括恢复增量备份和之后日志中的操作
RMAN> recover datafile 4;
启动 recover 于 23-12月-11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复增量数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
数据文件 00004 的恢复目标: F:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\CXJ\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份段 F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_ARE
A\CXJ\BACKUPSET\2011_12_23\O1_MF_NNND1_TAG20111223T163049_7H8H1STY_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_AREA\CXJ\BACKUPSET\2011_12
_23\O1_MF_NNND1_TAG20111223T163049_7H8H1STY_.BKP 标记 = TAG20111223T163049
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02
通道 ORA_DISK_1: 正在开始恢复增量数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
数据文件 00004 的恢复目标: F:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\CXJ\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份段 F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_ARE
A\CXJ\BACKUPSET\2011_12_23\O1_MF_NNND1_TAG20111223T163054_7H8H1Z9O_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_AREA\CXJ\BACKUPSET\2011_12
_23\O1_MF_NNND1_TAG20111223T163054_7H8H1Z9O_.BKP 标记 = TAG20111223T163054
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02
通道 ORA_DISK_1: 正在开始恢复增量数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
数据文件 00004 的恢复目标: F:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\CXJ\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份段 F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_ARE
A\CXJ\BACKUPSET\2011_12_23\O1_MF_NNND1_TAG20111223T163100_7H8H24YG_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_AREA\CXJ\BACKUPSET\2011_12
_23\O1_MF_NNND1_TAG20111223T163100_7H8H24YG_.BKP 标记 = TAG20111223T163100
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02
通道 ORA_DISK_1: 正在开始恢复增量数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
数据文件 00004 的恢复目标: F:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\CXJ\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份段 F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_ARE
A\CXJ\BACKUPSET\2011_12_23\O1_MF_NNND1_TAG20111223T163109_7H8H2G0B_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_AREA\CXJ\BACKUPSET\2011_12
_23\O1_MF_NNND1_TAG20111223T163109_7H8H2G0B_.BKP 标记 = TAG20111223T163109
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02
正常打开数据库
RMAN> alter database open;
数据库已打开
2)不完全恢复
包含:基于scn、基于时间、基于日志sequence三种
创建测试表t1
SQL> create table t1 as select * from dba_objects;
表已创建。
SQL> select count(*) from t1;
COUNT(*)
----------
50318
获取当前数据的scn
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
648196
删除t1的数据
SQL> truncate table t1;
表被截断。
关闭数据库并到mount阶段
RMAN> shutdown immediate;
数据库已关闭
数据库已卸载
Oracle 实例已关闭
RMAN> startup mount;
已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载
系统全局区域总计 612368384 字节
Fixed Size 1250428 字节
Variable Size 192940932 字节
Database Buffers 411041792 字节
Redo Buffers 7135232 字节
注:此时备份有关的信息是存放在控制文件中的,也可以将备份信息存放在目录数据库中
还原并恢复数据库
基于scn
RMAN> run{
2> set until scn 648196;
3> restore database;
4> recover database;
5> alter database open resetlogs;}
正在执行命令: SET until clause
启动 restore 于 23-12月-11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到F:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\CXJ\SYSTEM01.DBF
正将数据文件00002恢复到F:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\CXJ\UNDOTBS01.DBF
正将数据文件00003恢复到F:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\CXJ\SYSAUX01.DBF
正将数据文件00005恢复到F:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\CXJ\EXAMPLE01.DBF
通道 ORA_DISK_1: 正在读取备份段 F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_ARE
A\CXJ\BACKUPSET\2011_12_23\O1_MF_NNNDF_TAG20111223T155212_7H8DSDD2_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_AREA\CXJ\BACKUPSET\2011_12
_23\O1_MF_NNNDF_TAG20111223T155212_7H8DSDD2_.BKP 标记 = TAG20111223T155212
通道 ORA_DISK_1: 恢复完成, 用时: 00:01:16
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00004恢复到F:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\CXJ\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份段 F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_ARE
A\CXJ\BACKUPSET\2011_12_23\O1_MF_NNNDF_AAAAAAA_7H8G9K77_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_AREA\CXJ\BACKUPSET\2011_12
_23\O1_MF_NNNDF_AAAAAAA_7H8G9K77_.BKP 标记 = AAAAAAA
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02
完成 restore 于 23-12月-11
启动 recover 于 23-12月-11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复增量数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
数据文件 00004 的恢复目标: F:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\CXJ\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份段 F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_ARE
A\CXJ\BACKUPSET\2011_12_23\O1_MF_NNND1_TAG20111223T163049_7H8H1STY_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_AREA\CXJ\BACKUPSET\2011_12
_23\O1_MF_NNND1_TAG20111223T163049_7H8H1STY_.BKP 标记 = TAG20111223T163049
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02
通道 ORA_DISK_1: 正在开始恢复增量数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
数据文件 00004 的恢复目标: F:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\CXJ\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份段 F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_ARE
A\CXJ\BACKUPSET\2011_12_23\O1_MF_NNND1_TAG20111223T163054_7H8H1Z9O_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_AREA\CXJ\BACKUPSET\2011_12
_23\O1_MF_NNND1_TAG20111223T163054_7H8H1Z9O_.BKP 标记 = TAG20111223T163054
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02
通道 ORA_DISK_1: 正在开始恢复增量数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
数据文件 00004 的恢复目标: F:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\CXJ\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份段 F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_ARE
A\CXJ\BACKUPSET\2011_12_23\O1_MF_NNND1_TAG20111223T163100_7H8H24YG_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_AREA\CXJ\BACKUPSET\2011_12
_23\O1_MF_NNND1_TAG20111223T163100_7H8H24YG_.BKP 标记 = TAG20111223T163100
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02
通道 ORA_DISK_1: 正在开始恢复增量数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
数据文件 00004 的恢复目标: F:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\CXJ\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份段 F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_ARE
A\CXJ\BACKUPSET\2011_12_23\O1_MF_NNND1_TAG20111223T163109_7H8H2G0B_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_AREA\CXJ\BACKUPSET\2011_12
_23\O1_MF_NNND1_TAG20111223T163109_7H8H2G0B_.BKP 标记 = TAG20111223T163109
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:01
正在开始介质的恢复
介质恢复完成, 用时: 00:00:10
完成 recover 于 23-12月-11
数据库已打开
注:在9i中,resetlogs将会把在线重做日志文件内容清空;而10g中,resetlogs将把在线日志归档,然后将重做日志文件清空,所以10g虽然resetlogs之后,之前的在线重做日志并没有丢失,只是归档了。
重新查看t1表
SQL> select count(*) from t1;
COUNT(*)
----------
50318
基于时间的恢复
RMAN> run{
2> set until time='2011-12-23 19:40:00';
3> restore database;
4> recover database;
5> alter databae open resetlogs;}
基于日志sequence的恢复(恢复到sequence 9,不包含10)
RMAN> run{
2> set until sequence 10;
3> restore database;
4> recover database;
5> alter database open resetlogs;}