ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle数据库RMAN小结之恢复部分

Oracle数据库RMAN小结之恢复部分

原创 Linux操作系统 作者:物理狂人 时间:2011-12-23 16:36:03 0 删除 编辑

恢复分为完全恢复和不完全恢复

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;}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24104518/viewspace-713887/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-06-16

  • 博文量
    80
  • 访问量
    140535