使用RMAN恢复全库、表空间、数据文件的方法总结

废话一句,恢复的前提是要有备份;所以说备份很重要。

对数据库进行完全介质恢复

1、启动数据库到加载状态
RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP MOUNT;
2、执行恢复操作
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE DELETE ARCHIVELOGS SKIP TABLESPACE TEMP;
注意:DELETE ARCHIVELOGS和SKIP TABLESPACE两个参数是可选择的,作用如下: DELETE ARCHIVELOGS :表示RMAN将在完成恢复过程后自动删除那些在恢复过程中产生的归档日志文件,RMAN并不会删除restore命令之前的归档文件。 SKIP TABLESPACE :跳过指定表空间,比如临时表,当然临时表空间即使你不跳过它也不会恢复的。
3、打开数据库
RMAN> ALTER DATABASE OPEN;

注意:如果你的数据库并非处于归档模式,那么必须使用ALTER DATABASE OPEN RESETLOGS来打开数据 库,因为RMAN会认为在非归档模式下是一个不一致的备份,执行resetlogs之后,oracle将会把scn重新置为0。


对单个表空间使用RMAN进行恢复

1、启动数据库到加载状态

RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP MOUNT;

2 、进行恢复操作,在恢复之前,如果需要被恢复的表空间未处于脱机状态,需要通过alter tablespace name offline语句将其置为脱机

RMAN> SQL ¨ALTER TABLESPACE test OFFLINE IMMEDIATE¨;
RMAN> RESTORE TABLESPACE test;
RMAN> RECOVER TABLESPACE test;
RMAN> SQL ¨ALTER TABLESPACE test ONLINE¨;

3、打开数据库

RMAN> ALTER DATABASE OPEN; 


恢复单个数据文件--当然也可以是多个

事实上,恢复表空间实际就是恢复其所对应的数据文件(一个表空间可能对应多个数据文件),所以步骤与上相似。

1、启动数据库到加载状态

RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP MOUNT;

2 、进行恢复操作

在恢复之前,如果需要被恢复的表空间未处于脱机状态,需要通过alter tablespace name offline语句将其置为脱机,操作数据文件时可以直接指定数据文件,也可以以数据文件序号代替:
RMAN>SQL ¨ALTER DATABASE DATAFILE 6 OFFLINE;
RMAN> RESTORE DATAFILE 6;    这里也可以使用文件具体路径,如:RESTORE DATAFILE  /u01/oradata/bys1/blocktest.dbf
RMAN> RECOVER DATAFILE 6;
RMAN>SQL ¨ ALTER DATABASE DATAFILE 6 ONLINE;

3、打开数据库

RMAN> ALTER DATABASE OPEN; 


附:查file_id,file_name与TABLESPACE_NAME的对应可以使用如下语句:

SYS@bys1>select file_name,file_id,tablespace_name from dba_data_files order by file_id;
FILE_NAME                                   FILE_ID TABLESPACE_NAME
---------------------------------------- ---------- ------------------------------
/u01/oradata/bys1/system01.dbf                    1 SYSTEM
/u01/oradata/bys1/sysaux01.dbf                    2 SYSAUX
/u01/oradata/bys1/undotbs01.dbf                   3 UNDOTBS1
/u01/oradata/bys1/users01.dbf                     4 USERS
/u01/oradata/bys1/example01.dbf                   5 EXAMPLE
/u01/oradata/bys1/block.dbf                       6 BLOCK

或者如果需要查询TEMP文件,可以使用如下:

SYS@bys1>select file_name,file_id,tablespace_name from dba_data_files union all select file_name,file_id,tablespace_name from dba_temp_files order by file_id;
FILE_NAME                                   FILE_ID TABLESPACE_NAME
---------------------------------------- ---------- ------------------------------
/u01/oradata/bys1/system01.dbf                    1 SYSTEM
/u01/oradata/bys1/temp01.dbf                      1 TEMP
/u01/oradata/bys1/sysaux01.dbf                    2 SYSAUX
/u01/oradata/bys1/undotbs01.dbf                   3 UNDOTBS1
/u01/oradata/bys1/users01.dbf                     4 USERS
/u01/oradata/bys1/example01.dbf                   5 EXAMPLE
/u01/oradata/bys1/block.dbf                       6 BLOCK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值