免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1669 | 回复: 2
打印 上一主题 下一主题

非catalog模式下的rman备份与恢复 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-05 11:14 |只看该作者 |正序浏览
一、在使用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 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2007-04-05 12:13 |只看该作者
简单明了 顶

论坛徽章:
0
2 [报告]
发表于 2007-04-05 11:29 |只看该作者
好帖﹐頂。
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP