1.RMAN环境简介
1)RMAN是对数据库进行备份和恢复操作并自动管理相关备份策略的客户端工具。
2)RMAN环境至少包括两部分:
目标数据库(target database):即需要进行备份和恢复的数据库,在RMAN命令行下通过target命令指定;
RMAN客户端:默认存放于$ORACLE_HOME/bin目录下的可执行程序,用于执行RMAN命令进行数据库备份和恢复操作。
在某些情况下,RMAN环境还可能包括:
快速恢复区(fast recovery area):用于存放和管理备份恢复相关文件的地方,可通过DB_RECOVERY_FILE_DEST和DB_RECOVERY_FILE_DEST_SIZE设置。
介质管理器:RMAN与介质设备打交道所需要的应用程序;
恢复目录(recovery catalog):单独的数据库方案,用于存储其管理的多个目标数据库的元数据。
2.启动RMAN并连接到目标数据库
1)使用RMAN连接到数据库时,默认使用SYSDBA角色登陆。
2)RMAN连接语法
![](http://img.blog.itpub.net/blog/attachment/201504/11/30167136_1428761390241K.png?x-oss-process=style/bb)
3.查看当前RMAN配置
1)通过show all;命令,可以查看当前的配置。
4.备份数据库
1)通过backup命令备份数据库,默认情况下将备份文件放到快速恢复区中,若要备份到其他路径,需要设置FORMAT参数。
2)RMAN默认备份类型为备份集而非镜像。可通过输入BACKUP AS COPY来备份镜像文件。
5.在归档模式备份数据库
1)若数据库开启归档,则数据库支持open状态进行RMAN备份,但此时的备份为非一致性备份,即在恢复时,需要使用到归档redo日志,才能使数据库恢复到一致性状态。
2)backup database plus archivelog;
6.在非归档模式下进行RMAN备份
1)在非归档模式下的数据库,只能进行一致性备份,备份前需要将数据库一致性关闭后,打开到mount状态,再进行备份。
2)shutdown immediate;
backup database
7.常用典型备份选项
1)FORMAT:指定备份片段的存放路径和命名规则。
BACKUP FORMAT '/u01/app/oracle/oradata/enmo1/AL_%d/%t/%s/%p' ARCHIVELOG LIKE '%arc_dest%';
其中:%U获得系统分配的一个唯一名;%d为DB_NAME;%t备份设置的时间戳;%s为备份设置的编号;%p为备份片段编号。
2)TAG:给备份片段指定一个标签,若不指定,则系统自动生成一个随机唯一标签。标签在备份原数据中总是以大写方式存储。
BACKUP TAG 'weekly_full_db_bkup' DATABASE MAXSETSIZE 10M;
8.创建增量备份
1)增量备份分为累计增量备份(cumulative incremental backup)和差异增量备份(differential incremental backup)。oracle默认类型为差异增量备份。
2)差异增量备份和累积增量备份的差别:
差异增量备份:每次备份至上一次备份级别小于等于当前级别的备份。
累积增量备份:每次备份至上一次小于当前级别的备份。
3)增量备份需要先进行一次0级备份,作为备份的起点。
4)oracle建议备份的级别只限于0级和1级,方便备份管理。
5)增量备份例子:
backup incremental level 0 database;----0级增量备份,作为增量备份策略的基础
backup incremental level 1 cumulative database;----1级累积增量备份
backup incremental level 1 database;----1级差异增量备份
9.创建增量更新备份
1)RMAN支持增量更新备份,但是该特性需要以下前提条件:
第一,需要0级数据文件镜像作为基础,并且这些镜像需要一个系统定义或者个人定义的标签。
第二,定期备份期间,1级差异增量备份的标签需要和0级数据文件镜像的标签一致。通过BACKUP FOR RECOVER OF COPY命令可以指定一个只备份从上一个相同标签的备份以来发生数据块改变的增量备份。
第三,定期备份期间,增量备份被应用到0级镜像上,由于数据文件镜像已经被增量备份更新过,这样在介质恢复时,所需要的工作量将大大减少。
2)命令例子:
backup incremental level 0 for recover of copy tag 'test' database; ----使用tag标记数据文件镜像作为备份策略基础
recover copy of database with tag 'test';----增量更新备份
10.检查数据库文件和备份的有效性
1)有效性包括:数据文件是否存在于正确的路径下,并且是否存在物理块损坏。通过CHECK LOGICAL命令,还可以检查是否存在逻辑块损坏。
2)在备份时,对数据文件和归档日志文件进行检查:BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;
3)支持对数据文件中的数据库进行检查:VALIDATE DATAFILE 4 BLOCK 10 TO 30;
4)支持对数据库备份集进行验证:VALIDATE BACKUPSET 3;
11.使用脚本文件来执行RMAN任务
1)RMAN支持所有格式的文件
2)脚本文件的引用可以通过RMAN @/my_dir/test.txt 或者登陆RMAN后通过@/my_dir/test.txt引用。
12.使用list列出RMAN备份信息
1)list backup of database by backup;
list backup by file;
list backup summary;
list expired backupset/copy;
list backup recoverable;
13.使用REPORT列出RMAN备份信息
REPORT NEED BACKUP DATABASE;--列出当前需要备份的数据文件
REPORT OBSOLETE;
REPORT SCHEMA;
REPORT UNRECOVERABLE;
14.维护RMAN备份
12.使用list列出RMAN备份信息
1)list backup of database by backup;
list backup by file;
list backup summary;
list expired backupset/copy;
list backup recoverable;
13.使用REPORT列出RMAN备份信息
REPORT NEED BACKUP DATABASE;--列出当前需要备份的数据文件
REPORT OBSOLETE;
REPORT SCHEMA;
REPORT UNRECOVERABLE;
14.维护RMAN备份
1)CROSSCHECK:该命令将同步数据库备份和镜像在实际存储上的位置和资源库中的逻辑记录,如果备份文件在磁盘存在,CROSSCHECK会检查文件头部是否有效。一般在删除备份之前,需要进行CROSSCHECK检查。
2)例子:CROSSCHECK BACKUP ; CROSSCHECK COPY;
15.删除超时的备份
1)DELETE命令将会删除磁盘或者磁带上的备份文件,并且更新控制文件中的状态为“已删除”或者删除备份目录(backup catalog)中的记录。
2)DELETE OBSOLETE;
16.使用数据恢复建议器(data recovery advisor)进行失败诊断和修复
1)列出当前失败并确定修复选项:oracle中失败是指被Health Monitor监测到的数据损坏,例如逻辑或物理的数据块损坏、数据文件丢失等。监测到的失败有不同的优先级(CRITICAL、HIGHT和LOW),还有状态(OPEN和CLOSED)。
2)通过LIST FAILURE可以查看当前监测到的失败,若在
同一会话中执行ADVISE FAILURE命令,数据库会列出手工和自动的修复选项以供选择。
3)一般首先通过手工修复方式来进行修复,若手工修复不成功,再进行自动修复。
17.使用闪回数据库技术
1)想使用闪回数据库技术,需要先开启闪回日志功能。(闪回日志只能存放在快速恢复区中,并且不会进行归档)
2)闪回数据库不能用于介质恢复和修复数据文件的丢失。
3)闪回数据库需要在mount状态下进行。
4)命令:
shutdown immediate ;----调整至mount状态
startup mount;
flashback database to scn 1526845;----闪回到过去的某时刻
flashback database to restore point before_points;
flashback database to timestamp to_date('20140510','yyyymmdd');
alter database read only;----将数据库置为只读状态,进行验证
shutdown immediate;----若闪回后满足要求,启动数据库
startup mount;
alter database open resetlogs;
18.还原和恢复数据库文件
1)还原是指从所有的备份或镜像文件中找到一个用于恢复操作的数据文件。
2)恢复是指在还原的数据文件上应用redo日志或增量备份中记录的变化,使得数据文件向前滚到一个SCN值或者一个时间点。
3)在对数据库进行还原恢复操作时,可以先进行预览:restore database preview summary;
4)恢复整个数据库:
startup force mount;----将数据库至于mount状态
restore database;----还原数据库
recover database;----恢复数据库
alter database open;
5)恢复表空间:当数据库处于打开状态,可以通过restore tablespace和recover tablespace来进行表空间级的还原和恢复。在对表空间进行还原和恢复时,需要将表空间涉及到的数据文件置为离线,恢复完成后,再设为在线。
alter tablespace users offline;
![](http://img.blog.itpub.net/blog/attachment/201504/11/30167136_1428761434xaFN.png?x-oss-process=style/bb)
alter tablespace users online;
6)对数据块进行恢复
RMAN工具在进行备份时,会将备份过程中检测到的坏块记录到V$DATABASE_BLOCK_CORRUPTION视图中;
在备份过程中,坏块还会记录在告警日志和TRACE文件中,可以通过V$DIAG_INFO查看这些文件的位置,找到相关文件进行坏块查看。
使用RMAN进行坏块恢复
recover corruption list;----修复所有的坏块
recover datafile 1 block 33, 44 datafile 2 blocke 1 to 200;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30167136/viewspace-1564917/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30167136/viewspace-1564917/