目录
1. RMAN恢复的一般过程
1、restore 还原
2、recover
2. 恢复预览
restore ... preview
查看恢复需要哪些文件
restore tablespace users priview
恢复验证:
restore ... validate
restore tablespace users validate;
检查备份的可用性:
validate backupset 1;
validate backupset 98;
3. 恢复参数文件
恢复参数文件至少要启到NOMOUNT状态,丢了参数文件是无法启动到nomount
但RMAN提供了一个运行环境,即便丢了参数文件也可以启动到nomount,
启动到nomount 后就可以执行恢复了。
restore spfile to '/... ' from '/...';
RMAN> restore spfile
from '/u03/rman/ctlbak/c-1307704375-20120422-23';
或者
RMAN> restore spfile from autobackup;
如果控制文件自动备份不在闪回中可以
RMAN> run {
2> set controlfile autobackup format for device type disk
to '/u03/rman/ctlbak/%F';
3> restore spfile from autobackup;
4> }
RMAN> shutdown immediate;
RMAN> startup
4. 恢复控制文件
恢复必须在NOMOUNT状态下进行
1)在nomount还原控制文件
restore controlfiel to ... from ...
RMAN> set dbid=1307704375
RMAN> set controlfile autobackup format for device type disk
to '/u03/rman/ctlbak/%F';
RMAN> restore controlfile from autobackup;
也可将以上三条简化为一条:
RMAN> restore controlfile
from '/u03/rman/ctlbak/c-1307704375-20120422-23';
2)启动到mount进行数据库恢复
SQL> alter database mount
RMAN> recover database;
3) 以resetlogs open
RMAN> sql 'alter database open resetlogs';
5. 恢复数据文件
1、数据文件离线(offline)
2、还原数据文件
3、应用日志恢复
4、数据文件上线(online)
例:
SQL> host rm /u02/users02.dbf
SQL> host rm /u01/app/oracle/oradata/orcl/users01.dbf
SQL> select * from scott.emp;
select * from scott.emp
*
ERROR at line 1:
ORA-00376: file 7 cannot be read at this time
ORA-01110: data file 7: '/u02/users02.dbf'
恢复:
SQL> alter database datafile '/u02/users02.dbf' offline;
RMAN> restore datafile 7;
RMAN> recover datafile 7;
RMAN> sql 'alter database datafile 7 online';
RMAN> sql 'alter database datafile 4 offline';
RMAN> restore datafile 4;
RMAN> recover datafile 4;
RMAN> sql 'alter database datafile 4 online';
如果还不行的话,将其所在的表空间online
SQL> alter tablespace users online;
例2:磁盘损坏,原有路径无法访问情况的恢复
如上 /u02 由于磁盘故障,数据完全丢失,且无法访问
由于默认从备份中还原时,是还原到原来的位置,要还原到其他位置时
还原前要设置新的路径
set newname for datafile 7 to '/....'
应用日志进行恢复时,也要告诉oracle,数据文件已经发生变化了,不
在原有位置了
switch datafile 7
RMAN> run {
2> set newname for datafile 7 to '/u03/users02.dbf';
3> restore datafile 7;
4> switch datafile 7;
5> recover datafile 7;
6> }