> 数据库 > Oracle >

rman恢复

rman恢复


目标数据库:要备份的数据库 charge87
目录数据库:存放备份的数据库 charge242
c:/>rman target test/test catalogrman/rman@charge242

数据库修复(restore):利用备份的数据库文件来替换已经损坏的数据库文件或者将其恢复到一个新的位置。RMAN在进行修复操作时

,会利用恢复目录(没有建立恢复目录的话就使用目标数据库的控制文件)来获取备份信息,并从中选择最合适的备份进行修复操作。
选择备份时有两个原则(1、选择距离恢复目录时刻最近;2、优先选择镜像复制,其次才是备份集)
数据库恢复(recover):是指利用重做日志或增量备份来重建丢失的数据。

---恢复数据库
c:/>rman target /
rman>shutdown immediate;
rman>startup mount;
rman>restore database;
rman>recover database delete archivelog ;
rman>alter database open;

DELETE ARCHIVELOGS:表示RMAN将在完成恢复过程后自动删除那些在恢复过程中修复的归档日志文件

---恢复表空间
c:/>rman target /
rman>shutdown immediate;
rman>startup mount;
rman>sql 'alter tablespace test offline immediate';
rman>restore tablespace "TEST";
rman>recover tablespace "TEST";
rman>sql 'alter tablespace prt online';
rman>alter database open;

---恢复数据文件
c:/>rman target /
rman>shutdown immediate;
rman>startup mount;
##n为dba_data_files里的file_id字段的值,或者是数据文件如'D:/ORACLE/PRODUCT/10.2.0/DB_1/DATABASE/TEST01.DBF'
rman>sql 'alter database datafile n offline immediate';
rman>restore datafile n;
rman>recover datafile n;
rman>sql 'alter database datafile n online';
rman>alter database open;
 
丢失控制文件的恢复:

模拟丢失控制文件
 rman>shutdown immeidate
 rman>host
 c:/>sqlplus / as sysdba
 sql>host del D:/ORACLE/PRODUCT/10.2.0/ORADATA/TEST/CONTROL*;

查看db_id
可以通过查看rman日志或如下办法:
C:/>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期二 3月 10 18:07:31 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
连接到目标数据库: TEST (DBID=1979274047)
 
分两种情况:1.在恢复目录模式下 2.在非恢复目录模式下

1.在恢复目录模式下比较简单(在目标数据库上做)
c:/>rman
rman>conn catalogrman/rman@rman;
rman>set dbid=1979274047;
rman>startup nomount;
rman>restore controlfile;
rman>alter database mount;
rman>recover database;
rman>alter database open resetlogs;
 
2.在非恢复目录(catalog)模式下,rman的备份信息都将存储在目标数据库的控制文件中
c:/>rman target /
rman>set dbid=1979274047;
rman>startup nomount;
rman>restore controlfile from autobackup;
rman>alter database mount;
rman>recover database;
rman>alter database open resetlogs;
 
恢复好以后要马上进行全备

(责任编辑:IT)