当前位置:文档之家› [Oracle数据库]使用RMAN备份与还原数据库原理

[Oracle数据库]使用RMAN备份与还原数据库原理

使用RMAN备份与还原Oracle数据库原理一、数据库备份概念对于Oracle数据库,备份方式包括物理备份和逻辑备份。

1、物理备份将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带。

该方法实现数据库的完整恢复,但数据库必须运行在归档模式下(业务数据库在非归档模式下运行),且需要极大的外部存储设备,例如磁带库,具体包括冷备份和热备份。

冷备份和热备份是物理备份(也称低级备份),它涉及到组成数据库的文件,但不考虑逻辑内容。

使用RMAN备份与还原ORACLE数据库的方式,属于物理备份方法。

2、逻辑备份利用SQL语言从数据库中抽取数据并存于二进制文件的过程。

业务数据库采用此种方式,此方法不需要数据库运行在归档模式下,不但备份简单,而且可以不需要外部存储设备,包括导出/导入(EXPORT/IMPORT)。

这种方法包括读取一系列的数据库日志,并写入文件中,这些日志的读取与其所处位置无关。

二、RMAN备份方式使用RMAN备份Oracle数据库,包括以下三种备份概念。

1、完全备份(Full Backup)与增量备份(Incremental Backup)完全备份与增量备份是针对数据文件而言,控制文件和归档日志文件不能进行增量备份。

当然,后两者可以做备份优化。

2、打开备份(Open Backup)或关闭备份(Closed Backup)数据库打开状态下进行备份即是打开备份,数据库关闭状态下(加载状态)进行的备份即关闭备份。

3、一致备份(Consistent Backup)与不一致备份(Inconsistent Backup)数据库打开状态或不干净关闭状态(shutdown abort)进行的备份是不一致备份,利用不一致的备份修复数据库后还需要做数据库的恢复。

在数据库干净关闭状态进行的备份是一致备份,利用一致备份修复数据库后不需要做数据库的恢复。

三、备份策略由于数据库占据物理空间较大,每次都进行全库备份,对存储介质要求比较高,也会造成空间的冗余浪费,故而在实际的数据备份过程中,通常采用增量备份的方法。

在RMAN增量备份中,有差异增量和累积增量的概念1、概念差异增量:是备份上级及同级备份以来所有变化的数据块,差异增量是默认增量备份方式累积增量:是备份上级备份以来所有变化的块因为累积增量是备份上级备份以来所有变化的数据块,所以累积增量需要更多的备份时间,同时需要较小的恢复时间;而差异增量正好相反,它可以备份同级备份以来变化的数据块。

所以会减少备份时间,但需要更多的恢复时间.在oracle 9中增量备份需要通过扫描整个数据库的数据块才能知道哪些数据块发生了变化,这是一个代价很大,时间很长的过程,而且由于增量备份形成多个不同的备份集,使恢复变得更加不可靠,所以增量备份在版本9中仍然不被推荐使用;在10g中,增量备份作了很大的改进,不需要再扫描所有数据块就能得知哪些数据块发生变化,从而大大提升备份效率。

但这些却以牺牲磁盘i/o为代价,所以在oltp事务系统中还得衡量是否愿意以i/o为代价来保证安全及高可用性。

10g 还支持增量合并,增量备份可支持7级增量。

①差异增量备份(DIFFERENTIAL)图解差异增量备份RMAN命令方法:RMAN>allocate channel c1 type disk; #分配通道RMAN> backup incremental level 0 database; #零级备份RMAN> backup incremental level 2 database; #二级备份RMAN> backup incremental level 1 database; #一级备份RMAN>release channel c1;//释放通道②累积增量(CUMULATIVE)备份累积增量备份RMAN命令方法:RMAN>allocate channel c1 type disk; #分配通道RMAN> backup incremental level 0 database; #零级备份RMAN> backup incremental level 2 cumulative database; #二级备份RMAN> backup incremental level 1 cumulative database; #一级备份RMAN>release channel c1; //释放通道2、备份策略及恢复①备份策略以RMAN多级增量备份作为备份策略例子:增量备份都需要一个0级备份作为基础,0级备份与全备份的区别在于0级可以用来增量恢复,而全备份则不可以。

备份策略典型案例:每半年做一个数据库的全备份(包括所有的数据和只读表空间)每一个月做一次零级备份(不包含只读表空间)每个星期做一次一级备份每天做一次二级备份任何数据库的更改需要重新同步CATALOG目录并重新备份(如添加数据文件)或重新备份(如修改表空间为只读)。

②冗余策略RMAN提供了两种备份保留策略:基于时间、基于冗余数量。

为RMAN设置了备份保留策略之后,RMAN会自动判断哪些备份集或镜像复制文件不必再保留。

这些备份文件将会被标记为“废弃(Obsolete)”,可以通过REPORT OBSOLETE命令查看当前处于废弃状态的备份文件,或者通过DELETE OBSOLETE命令删除这些废弃的备份在执行删除命令时有两点需要了解:(1) 如果被判断为废弃的备份是一个单独数据文件的镜像复制,那么在执行DELETE命令时将直接删除这个镜像复制文件。

(2) 如果被判断为废弃的备份是一个备份集中的一部分,则必须等到整个备份集中所有其它文件都被废弃之后,才能删除这个备份集。

基于时间的备份保留策略。

例如将恢复时间段设置为7,那么RMAN所保留的备份即是可以保证你将数据库恢复到一周内任何时刻下那些文件。

设置基于时间的备份保留策略可以通过CONFIGURE命令,例如:RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF n DAYS;注:n=大于0的正整数执行该命令后,RMAN将始终保留那些将数据库恢复到n天前的状态时需要用到的备份,比如,恢复时间段被设置为7天,那么各个数据文件的备份必须满足如下条件:SYSDATE-(SELECT CHECKPOINT_TIME FROM V$DATAFILE)>=7任何不满足上述条件的备份都将被RMAN废弃并可通过DELETE OBSOLETE命令删除。

基于冗余数量的备份保留策略基于冗余数量实质即某个数据文件以各种形式(包括备份集和镜像复制)存在的备份的数量。

如果某个数据文件的冗余备份数量超出了指定数量,RMAN将废弃最旧的备份。

同样,基于数量的备份保留策略也是通过CONFIGURE命令设置,例如:RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF n DAYS;同上:n=大于0的正整数当然也可以通过下列命令设置成不采用任何备份保留策略:RMAN> CONFIGURE RETENTION POLICY TO NONE;②备份优化RMAN中的备份优化(Backup Optimization)是指在备份过程中,如果满足特定条件,RMAN将自动跳过某些文件而不将它们包含在备份集中以节省时间和空间。

通常必须满足如下几个条件的情况下,才能够启用备份优化的功能:CONFIGURE BACKUP OPTIMIZATION参数置为on;执行的BACKUP DATABASE或BACKUP ARCHIVELOG命令中带有ALL或LIKE参数。

分配的通道仅使用了一种设备类型,也就是没有同时分配使用sbt与disk的多个通道。

打开备份优化设置通过如下命令:RMAN> CONFIGURE BACKUP OPTIMIZATION ON;③采用任务计划使备份过程自动执行首先按照制定的备份策略将0、1、2级备份策略用RMAN脚本实现,然后将执行脚本的过程写入批处理文件中(windows系统)、或shell脚本文件中(Linux 系统),并将批处理文件或Shell脚本文件加入任务计划中。

零级备份RMAN脚本:(E:\DBBACKUP\DBZJ\BACK_ALL\SCRIPTS\L0C_BACKUP.RMAN)run {allocate channel ch1 device type disk;backup incremental level 0format 'E:\DBBACKUP\DBZJ\BACK_ALL\BAKS\LOC_DBfull_%U.bkp' database plus archivelog;release channel ch1;}backup current controlfile format 'E:\DBBACKUP\DBZJ\BACK_ALL\BAKS\c_%U.bak'; backup spfile format 'E:\DBBACKUP\DBZJ\BACK_ALL\BAKS\spf_%U.bak'; CROSSCHECK BACKUPSET;DELETE OBSOLETE;批处理文件BAT脚本:set oracle_sid=DBZJRMAN TARGET / msglog E:\DBBACKUP\DBZJ\LOGS\%date:~0,10%.log cmdfile=E:\DBBACKUP\DBZJ\BACK_ALL\SCRIPTS\L0C_BACKUP.RMAN④配置RMAN备份使用SHOW ALL命令可以查看RMAN配置项的当前配置值,通过CONFIGURE命令对配置项进行设置。

RMAN>使用目标数据库控制文件替代恢复目录db_unique_name 为DBZJ 的数据库的RMAN 配置参数为:CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; CONFIGURE BACKUP OPTIMIZATION ON;CONFIGURE DEFAULT DEVICE TYPE TO DISK; # defaultCONFIGURE CONTROLFILE AUTOBACKUP ON;CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'E:\DBBACKUP\DBZJ\BACKUP\%F';CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # defaultCONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE MAXSETSIZE TO UNLIMITED; # defaultCONFIGURE ENCRYPTION FOR DATABASE OFF; # defaultCONFIGURE ENCRYPTION ALGORITHM 'AES128'; # defaultCONFIGURE COMPRESSION ALGORITHM 'BZIP2'; # defaultCONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # defaultCONFIGURE SNAPSHOT CONTROLFILE NAME TO 'E:\APP\ADMINISTRATOR\PRODUCT\11.1.0\DB_1\DATABASE\SNCFDBZJ.ORA'; # default配置备份保留策略为30天:RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS;同样还可以使用CONFIGURE命令配置备份优化、备份介质位置、控制文件备份、备份片大小、归档日志项等。

相关主题