常用的一些rman备份恢复命令(三)

2014-11-24 08:53:40 · 作者: · 浏览: 5
2>startup force mount;
2>set newname for datafile 1 to ‘/opt/datafile/system01.pdf’;
3> .
4> //指定数据文件新位置
5>set newname for datafile 6 to ‘/opt/datafile/sdl.pdf’
6>restore database
7>switch datafile all; //改变控制文件所记载的数据文件位置和名称
8>recover database;
9>sql ‘alter database open’
10>}
RMAN>report schema; //恢复后查看数据文件新位置
恢复表空间数据文件
示例:SYSTEM表空间的数据文件被删除
RMAN>run{
2>startup force mount;
3>restore datafile 1;
4>recover datafile 1;
5>sql ‘alter database open’;}
示例:在SYSTEM表空间数据文件所在磁盘出现故障
RMAN>run{
2>startup force mount
3>set name for datafile 1 to ‘/opt/datafile/system01.dbf’ //设置表空间文件新位置
4>restore datafile 1; //转储数据文件
5>.switech datafile 1;
6>recover datafile 1;
7>sql ‘alter database open’;}
在open状态下恢复关闭后损坏的数据文件
示例:数据文件被误删除
RMAN>run{
2>startup force mount;
3>sql ‘alter database datafile 4 offline’;//脱机损坏的数据文件
4>sql ‘alter database open’;//打开数据库
5>restore datafile 4;//转储数据文件
6>recover datafile 4;//恢复数据文件
7>sql ‘alter database datafile 4 online’;//联机恢复后的数据文件}
示例2:数据文件所在磁盘出现损坏
RMAN>run{
2>startup force mount;
3>sql ‘alter database datafile 4 offline’;//脱机损坏的数据文件
4>sql ‘alter database open’;//打开数据库
5>set newname for datafile 4 to ‘/opt/datafile/user01.pdf’;//指定恢复位置
5>restore datafile 4;//转储数据文件
6>recover datafile 4;//恢复数据文件
7>sql ‘alter database datafile 4 online’;//联机恢复后的数据文件}
恢复表空间:
示例:表空间的数据文件被误删除
RMAN>run{
2>sql ‘alter tablespace users offline for recover’; //脱机表空间
3>restore tablespace user;
4>recover tablespace user;
5>sql ‘alter tablespace users online’;}
示例:表空间所在磁盘出现磁盘故障
RMAN>run{
2>sql ‘alter tablespace users offline for recover’; //脱机表空间
3>set newname for datafile 4 to ‘/opt/datafile /user01.dbf’;
4>restore tablespace user;
5>switch datafile all;
6>recover tablespace user;
5>sql ‘alter tablespace users online’;}
数据块介质恢复
数据块错误会出现以下错误:
SQL>SELECT * FROM SCOTT.CUSTOMERS;
ORA-01578:ORACLE DATA BLOCK CORRUPTED (FILE #5,BLOCK #21)
ORA-01110:data file 5 :‘/opt/oracle/oradata/mydb/sdl.dbf’
RMAN>BLOCKRECOVER DEVICE TYPE DISK
2>DATAFILE 5 BLOCK 21,48,128;
不完全恢复
基于时间恢复:
$export nls_date_format=’yyyy-mm-dd hh24:mi:ss’ //指定日期格式
RMAN>run{
2>startup force mount; //挂载数据库
3>set until time=’2007-7-26 20:49:00’; //恢复时间点
4>restore database; //转储数据文件
5>recover database; //根据时间点恢复数据库
6>sql ‘alter database open resetlogs’;//打开数据库重建redolog文件
7>}
基于SCN
确定恢复的SCN
SQL>SELECT CURRENT_SCN FROM V$DATABASE;
RMAN>run{
2>startup force mount;
3>set until scn=n; //设置还原点SCN
4>restore database;
5>recover database;
6>sql ‘alter database open resetlogs’;
7>}
基于日志号:
当不能定位日志号的归档日志时会出现以下错误:
Rman-06025:no backup of log thread 1 seq 6 lowscn 531976 found to restore
RMAN>run{
2>startup force mount;
3>set until sequence=n; //日志号通常为不能定位的日志号
4>restore database;
5>recover database;
6>sql ‘alter database open resetlogs’;
7>}
基于备份控制文件:
当误删的表空间或者数据库有的控制文件损坏时可以使用这种方法
$set nls_date_format=’yyyy-mm-dd hh24:mi:ss’;
$rman target / catalog rman/rman
RMAN>startup force nom