第四章RMAN还原与恢复.doc_第1页
第四章RMAN还原与恢复.doc_第2页
第四章RMAN还原与恢复.doc_第3页
第四章RMAN还原与恢复.doc_第4页
第四章RMAN还原与恢复.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

RMAN 还原与恢复 分类: RMAN 备份恢复 2010-11-28 18:49 789人阅读 评论(0) 收藏 举报 -=- RMAN 还原与恢复-=在Oracle中,三大文件即控制文件,数据文件,日志文件的丢失与破坏都将需要使用还原或恢复来使数据库正常化。而RMAN还原与恢复是实现数据库完整性、可靠性必不可少的手段之一。还原简言之即是将所需的文件从备份中复制到原来文件所在的路径。还原通常可以包括数据库、表空间、数据文件级别的还原。通常还原后的内容会滞后于最新的数据库SCN,因此将归档日志、联机重做日志文件中的内容更新到还原的数据文件中,这个过程称之为恢复。恢复的几种情形1.在mount 或open 阶段完成的灾难恢复非系统表空间,undo表空间,所有的数据文件2.在nomount 阶段完成的灾难恢复控制文件(controlfile)3.在mount 阶段完成的灾难恢复系统表空间,联机重做日志文件有关恢复、介质恢复、一致性或非一致性恢复的详细概念请参考:Oracle 基于用户管理恢复的处理一、RMAN在归档模式下的还原与恢复的简化例子RMAN connect target /RMAN startup mount;RMAN restore database;RMAN recover database;RMAN alter database open;二、使用RMAN进行还原与恢复(非catalog方式)1.数据文件丢失的恢复处理-设定客户端环境变量并连接到数据库C:/set NLS_LANG=AMERICAN_AMERICA.AL32UTF8C:/rman target sys/redhatdedicated nocatalog-对数据库做全备RMAN backup as backupset 2 format /u01/bk/rmbk/wb_%U3 tag=Whole_bak database; RMAN sql alter system archive log current;-对数据库做级增量备份RMAN run 2 allocate channel ch1 type disk;3 backup incremental level 0 database4 format /u01/bk/rmbk/Inc_0_%U5 tag=Inc_0;6 release channel ch1;-对表插入新记录并切换日志SQL select * from tb2;ID NAME- - 1 Robinson 2 HenrySQL insert into tb2 select 3,Danny from dual;SQL commit;SQL alter system checkpoint;SQL alter system switch logfile;-对数据库做级增量备份RMAN run 2 allocate channel ch1 type disk;3 backup incremental level 1 database4 format /u01/bk/rmbk/Inc_1%U5 tag=Inc_1;6 release channel ch1;SQL shutdown immediate; -关闭数据库SQL ho rm $ORACLE_BASE/oradata/orcl/*.dbf -删除所有的数据文件 */SQL startup mount-使用RMAN连接到未mount状态的数据库RMAN connect target sys/redhatdedicatedconnected to target database: ORCL (DBID=1257415066, not open)-执行数据库还原-注意当存在完整备份也同时存在级增量备份时,Oracle会自动使用级增量备份来还原数据库RMAN restore database; piece handle=/u01/bk/rmbk/Inc_0_0alqu132_1_1 tag=INC_0 -下面可以看出还原的数据来自级增量备份-执行数据库恢复RMAN recover database;piece handle=/u01/bk/rmbk/Inc_10clqu1fe_1_1 tag=INC_1-打开数据库验证恢复RMAN alter database open;SQL select * from bk.tb2;ID NAME- - 1 Robinson 2 Henry 3 Danny2.磁盘损坏导致数据文件无法恢复到原始位置或不想恢复到原始位置的处理使用set newname 命令将数据文件还原到新路径set newname for datafile 1 to /system01.dbf; -为恢复的数据文件指定新路径或重命名使用switch命令将变更更新到控制文件switch datafile n | all ; -等同于alter database rename file命令,该命令将恢复的数据文件重命名更新到控制文件-下面的示例首先删除tbs01.dbf,接下来将其恢复到oradata目录中SQL ho rm $ORACLE_BASE/oradata/orcl/tbs01.dbfSQL startup mount force;RMAN connect target sys/redhatdedicatedconnected to target database: ORCL (DBID=1257415066, not open)RMAN run2 set newname for datafile 6 to /u01/app/oracle/oradata/tbs01.dbf;3 restore database;4 switch datafile all;5 recover database;6 alter database open;SQL select file#,name,status from v$datafile where file#=6; FILE# NAME STATUS- - - 6 /u01/app/oracle/oradata/tbs01.dbf ONLINE SQL select count(1) from bk.tb2; -表tb2位于tbs01.dbf内 COUNT(1)- 33.恢复表空间-删除表空间内的数据文件,删除后在针对位于该表空间的表进行插入记录以及实施检查点进程SQL ho rm $ORACLE_BASE/oradata/tbs01.dbfSQL insert into bk.tb2 select 4,Jackson from dual;SQL commit;SQL alter system checkpoint;-强制检查点后,告警日志出现错误提示,视图v$recover_file给出了故障数据文件oracleoradb $ tail -n 50 $ORACLE_BASE/admin/orcl/bdump/alert_orcl.logErrors in file /u01/app/oracle/admin/orcl/bdump/orcl_ckpt_4724.trc:ORA-01110: data file 6: /u01/app/oracle/oradata/tbs01.dbfORA-01116: error in opening database file 6ORA-01110: data file 6: /u01/app/oracle/oradata/tbs01.dbfORA-27041: unable to open fileLinux Error: 2: No such file or directorySQL select * from v$recover_file; FILE# ONLINE ONLINE_ ERROR CHANGE# TIME- - - - - - 6 OFFLINE OFFLINE FILE NOT FOUND 0SQL select name,status from v$datafile where file#=6;NAME STATUS- -/u01/app/oracle/oradata/tbs01.dbf RECOVER-使用RMAN命令恢复数据文件,此时数据库处于OPEN状态,因此首先需要将表空间脱机,恢复完成之后再将其联机RMAN run2 sql alter tablespace tbs1 offline immediate;3 set newname for datafile 6 to /u01/app/oracle/oradata/orcl/tbs01.dbf;4 restore tablespace tbs1;5 switch datafile all;6 recover tablespace tbs1;7 sql alter tablespace tbs1 online;SQL select name,status from v$datafile where file#=6; -位置变动到orcl子目录下,状态变为onlineNAME STATUS- -/u01/app/oracle/oradata/orcl/tbs01.dbf ONLINE-也可以使用下面的命令完成同样的功能-注意如果表空间内有多个数据文件,而仅有单个数据文件损坏则采用下面的方式处理更为妥当RMAN run2 sql alter database datafile 6 offline immediate;3 set newname for datafile 6 to /u01/app/oracle/oradata/tbs01.dbf;4 restore datafile 6;5 switch datafile all;6 recover datafile 6;7 sql alter databaes datafile 6 online;4.RMAN实现不完全恢复对于RMAN的不完全恢复,使用Oracle的闪回特性的处理有更多的优势。关于闪回请参考:Oracle 闪回特性步骤a.加载数据到mount状态(建议恢复前先做备份)b.为高并发分配多个通道c.还原所有(所需)的数据文件d.使用until time,until sequence,until scn来恢复数据库e.使用resetlogs打开数据库f.全备数据库演示RMAN基于until time的例子SQL show user;USER is BKSQL create table tb1(id int,name varchar2(10);SQL insert into tb1 select 1,Lancy from dual;SQL ho strings $ORACLE_BASE/oradata/orcl/redo02.log | grep Lancy -查看联机日志文件中不存在刚刚插入的记录SQL commit; -注意commit是将日志缓冲内容写入到日志文件SQL ho strings $ORACLE_BASE/oradata/orcl/redo02.log | grep Lancy -提交后联机日志文件中才有新增的记录LancySQL alter system switch logfile;SQL ho ls $ORACLE_BASE/oradata/arch log_1_1_732989230.arc log_1_1_732989889.arcRMAN run2 allocate channel ch1 type disk;3 allocate channel ch2 type disk;4 backup as compressed backupset database plus archivelog delete input5 format /u01/bk/rmbk/wh_lg_%U6 tag=Wholebak_Pluslog;7 release channel ch1;8 release channel ch2;18:10:36 SQL drop table tb1;RMAN run2 allocate channel ch1 type disk;3 allocate channel ch2 type disk;4 set until time to_date(2010-10-21 18:10:36,yyyy-mm-dd hh24:mi:ss);5 restore database;6 recover database;7 alter database open resetlogs;8 release channel ch1;9 release channel ch2;SQL select * from tb1;ID NAME- - 1 Lancy5. SPFILE文件丢失的恢复SPFILE参数文件可以在RMAN中进行备份,因此可以使用RMAN来恢复SPFILE文件。可以自动备份SPFILE。SPFILE的自动备份是随着控制文件的备份一起被完成的,因此可以通过自动备份控制文件来实现自动备份SPFILE文件的目的其次,在备份系统表空间时将引发控制文件的自动备份,而不论是否设置自动备份参数为ON,此时同样也备份SPFILE文件有关SPFILE文件请参考:Oracle 参数文件 SPFILE 错误导致数据库无法启动(ORA-01565)SPFILE文件恢复步骤a. startup nomount force;b. set dbid=dbid_no;c. restore spfile from autobackup | d. startup force; 如果d执行失败则转到e,f,否则不用执行e,f。e. set dbid=dbid_no;f. startup;下面设定控制文件的自动备份以及设置其备份路径(注意要预先知道目标数据库的DBID,此次演示的DBID为)RMAN configure controlfile autobackup on;RMAN configure controlfile autobackup format for device type disk to /u01/bk/rmbk/auto_ctl_%d_%F;RMAN exitsysORCL alter tablespace users add datafile $ORACLE_BASE/oradata/orcl/users02.dbf size 5m; oracleoradb rmbk$ ls auto* -执行上一条alter tablespace users add datafile 语句将引发控制文件的自动备份auto_ctl_ORCL_c-1263182651-20101124-00sysORCL shutdown immediate;oracleoradb dbs$ mv spfileorcl.ora spfileorcl.ora.bak -将原来的spfile文件重命名oracleoradb $ rman target / nocatalogRMAN startup nomount force;RMAN set dbid=1263182651;RMAN restore spfile from autobackup; -此处并没有找到文件路径,按Oracle联机文档,在nomount状态应该可以找到RMAN-06172: no a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论