Chinaunix

标题: 非catalog模式下的rman备份与恢复 [打印本页]

作者: kde2000    时间: 2007-04-05 11:14
标题: 非catalog模式下的rman备份与恢复
一、在使用rman备份之前,首先确保数据库已经打开archivelog模式。

二、设置备份参数:
sqlplus /nolog
SQL>shutdown immediate
SQL>startup mount
SQL>alter database archivelog;
SQL>alter system set db_recovery_file_dest='/u02/backup';
SQL>alter database open;

//////////////////////////////////////////////////////////
rman>connect target
rman>CONFIGURE CONTROLFILE AUTOBACKUP ON;
rman>CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET;
rman>CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u02/backup/tcydb.ctl';

上面打开了压缩备份方式,默认情况下不压缩,占用的空间很大。

三、备份数据库
rman>backup full tag 'db_full' database format '/u02/backup/tcydb_full_%s.bkp' include current controlfile plus archivelog;

四、模拟数据库损坏
cd /u01/app/oracle/oradata/tcydb
rm -f *

五、从备份恢复
(1)恢复控制文件
SQL>startup nomount
RMAN>restore controlfile from autobackup;

(2)恢复数据文件
编辑SQL脚本,保存为datafile.sql:
DECLARE
  devtype   VARCHAR2(100);
  done      BOOLEAN;
BEGIN
  devtype := DBMS_BACKUP_RESTORE.deviceAllocate(type=>NULL, ident=>'d1');
  DBMS_BACKUP_RESTORE.restoreSetDataFile;
  dbms_backup_restore.restoreDatafileTo(dfnumber=>1,toname=>'/u01/app/oracle/oradata/hdoadb/system01.dbf');
  dbms_backup_restore.restoreDatafileTo(dfnumber=>2,toname=>'/u01/app/oracle/oradata/hdoadb/undotbs01.dbf');
  dbms_backup_restore.restoreDatafileTo(dfnumber=>3,toname=>'/u01/app/oracle/oradata/hdoadb/sysaux01.dbf');
  dbms_backup_restore.restoreDatafileTo(dfnumber=>4,toname=>'/u01/app/oracle/oradata/hdoadb/users01.dbf');
  dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/u02/backup/tcydb_full_8.bkp' , params=>null);
  DBMS_BACKUP_RESTORE.deviceDeAllocate('d1');
END;
/

在sqlplus中执行:
SQL>@/u02/datafile.sql
恢复完数据文件之后:
SQL>shutdown immediate
SQL>startup mount

(3)使用rman恢复备份集
RMAN>connect target
RMAN>restore database;
RMAN>recover database;

(4)这时候redolog已经不存在,需要resetlog
SQL>alter database open RESETLOGS;

至此,数据库恢复完成。

六、注意事项
使用sql脚本恢复控制文件的前提是使用spfile启动到nomount状态。spfile记录了重要的文件路径,rman需要从这些路径寻找控制文件的自动备份集。

rman备份的东西是不完整的,它只备份spfile,controlfile,archivelog,datafile,其他的文件需要手工归档。

[ 本帖最后由 kde2000 于 2007-4-5 17:00 编辑 ]
作者: OCPHUI    时间: 2007-04-05 11:29
好帖﹐頂。
作者: h12345    时间: 2007-04-05 12:13
简单明了 顶




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2