Oracle RMAN备份策略

建立增量备份:
如果数据库运行于不归档模式下,只能在数据库干净关闭的情况下 ( 以 normal 、
immediate 、 transactional 方式关闭 ) 才能进行一致性的增量备份,如果数据库运行于归
档模式下,那即可以在数据库关闭状态进行,也可以在数据库打开状态进行备份。再
次说明了打开归档模式的优势,归档日志也就是多占些磁盘空间,可也相当于又给数
据加了层保护。建立增量备份,实质就是一个参数 incremental level=n ,在执行 backup
命令时加上即可,例如,建立一个增量级别 0 的全库备份:
rman> backup incremental level=0 database;
再例如,建立一个增量级别 1 的 users01.dbf 数据文件备份
rman> backup incremental level=1 tablespace system
datafile ‘e:\oracle\oraback\sj_data.dbf’;
注: rman 默认创建的增量备份是 differential 方式,如果要建立 cumulative 方式的增
量备份,在执行 backup 命令时显式指定即可,例如:
rman> backup incremental level=2 cumulative database;

建立镜像复制:
rman 中的镜像复制实质与通过操作系统 copy 命令备份相同,甚至连命令的格式
都相似,只不过直接应用操作系统的 copy 命令复制数据文件时,只是文件拷贝,而rman
的 copy 则能够在复制的同时,验证数据的有效性。个人认为 rman 中的镜像复制应用
有限,而且也体现不出 rman 的优势,所以俺也只是大致了解了概念,没有进行过实际
操作,感兴趣的朋友可以自己做做试验,这里就不多做介绍了)

建立冗余备份

rman 提供了一种更谨慎的备份策略: duplexed 方式备份,其实质即是在生成备份
集的同时,向指定位置生成指定份数 ( 最大不超过 4 份 ) 的备份集复制,以避免在灾难性
事故时数据库损坏和备份丢失的情况下导致完全崩溃,提高备份可用性。 rman 中提供
了三种方式实现 duplexed 方式备份:

1) 在 rman 中执行 backup 命令时显式指定 copies 参数。例如:
rman> backup copies 3 database;
上述命令将会在全库备份的同时,自动生成当前备份集的 2 份拷贝到默认备份目录。

2) 在 run {}命令块中利用 set backup copies 命令为该命令块中所有的 backup命令设
置 duplexed 方式,例如:
rman> run{
set backup copies 2;
backup device type disk format
‘e:\oracle\oraback\dyk1\%u’,‘e:\oracle\oraback\dyk2\%u’
tablespace users,sales;
}
上述命令将生成两份备份集,分别存储到 e:\oracle\oraback\dyk1 和
e:\oracle\oraback\dyk2 目录。

3) 通过 configure ….. backup copies 命令设置预定义的备份 duplexed 方式
configure … backup copies 命令格式,可以为指定设备类型设置默认备份拷贝数
量。这个配置仅适用于数据文件与归档重做日志文件和备份,并且,只有在使用自动
分配的通道时才能够使用 configure …
backup copies 命令设置的配置。例如:
rman> configure default device type to disk;
rman> configure datafile backup copies for device type disk to 2;
rman> configure archivelog backup copies for device type disk to 2;
上述命令将 disk 设置上数据文件与归档文件的拷备数量设置为 2 ,当再执行 backup
database 备份时,即会自动生成 2 份数据文件的备份集。

设置 rman 备份的保存策略
策略,如果数据库非常大,并且备份执行也比较频繁,有必要对这些备份文件的
保存制订合理的策略。在通过 rman 创建的备份片段中,由于备份文件也是由 rman创
建和维护,所以手工删除并不明智,并且 rman 也提供了备份保留策略,合理制订,由
rman 自动删除陈旧备份文件更加安全也更加方便, rman 中提供了两种备份保留策略:
基于时间,和基于冗余数量
为 rman 设置了备份保留策略之后, rman 会自动判断哪些备份集或镜像复制文件
不必再保留。这些备份文件将会被标记为 “ 废弃 (obsolete)” ,可以通过 report obsolete
命令查看当前处于废弃状态的备份文件,或者通过 delete obsolete 命令删除这些废弃的
备份。例如:
rman> report obsolete;

rman> delete obsolete;

在执行删除命令时有两点需要了解:
如果被判断为废弃的备份是一个单独数据文件的镜像复制,那么在执行 delete 命
令时将直接删除这个镜像复制文件;如果被判断为废弃的备份是一个备份集中的一部
分,则必须等到整个备份集中所有其它文件都被废弃之后,才能删除这个备份集。
1) 基于时间的备份保留策略。
说的简单些,就是你希望数据库最早能恢复到几天前。比如将恢复时间段设置为 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 命令删除。

2) 基于冗余数量的备份保留策略
基于冗余数量实质即某个数据文件以各种形式(包括备份集和镜像复制)存在的
备份的数量。如果某个数据文件的冗余备份数量超出了指定数量, 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;
在进行备份优化时, rman 是如何判断要备份的文件是否需要被优化,这个算法就
相当复杂,可能影响优化算法的因素也非常多,假如某库在上午 9 点被执行过一次全
库备份,等下午 3 点再次执行全库备份时,备份的文件没有变动而且也已经被备份过
时,才会跳过这部分文件。所以理论上备份优化仅对于只读表空间或 offline 表空间起
作用。当然对于已经备份过的 archivelog 文件,它也会跳过
3 )基础补充
format 字符串替代变量,使用 format 参数时可使用的各种替换变量,如下:
%c :备份片的拷贝数 ( 从 1 开始编号 ) ;

%d :数据库名称;
%d :位于该月中的天数 (dd) ;
%m :位于该年中的月份 (mm) ;
%f :一个基于 dbid 唯一的名称 , 这个格式的形式为 C-IIIIIIIIII-YYYYMMDD-QQ, 其
中 IIIIIIIIII 为该数据库的 dbid , YYYYMMDD 为日期, QQ 是一个 1-256 的序列;
%n :数据库名称,并且会在右侧用 x 字符进行填充,使其保持长度为 8 ;
%u :是一个由备份集编号和建立时间压缩后组成的 8 字符名称。利用 %u 可以为每个
备份集生成一个唯一的名称;
%p :表示备份集中备份片段的编号,从 1 开始编号;
%u :是 %u_%p_%c 的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成
一个唯一名称,这是最常用的命名方式;
%s :备份集的号;
%t :备份集时间戳;
%t :年月日格式 (yyyymmdd) ; s
注:如果在 backup 命令中没有指定 format 选项,则 rman 默认使用 %u 为备份片段命
名。

configure 配置项介绍
首先,先来查看一下当前配置,通过 show all 命令:
连接到目标数据库 : jssweb (dbid=3391142503)
rman> show all;
正在使用目标数据库控制文件替代恢复目录
rman 配置参数为 :
configure retention policy to recovery window of 3 days;
configure backup optimization off; # default
configure default device type to disk; # default
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to ‘e:\oracle\oraback\%f’;
configure device type disk parallelism 1; # default
configure 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; # default
configure snapshot controlfile name to ‘e:\oracle\oraback\sj_data.ora’; #
default
rman>

show 命令在 rman 命令篇简单介绍过,同时也知道后跟 #default 表示该条配置仍
然是初始的默认配置,如果想把某条更改过配置选项再置为

初始设置,用如下命令: configure … clear; 例如:
rman> configure retention policy clear;
configure retention policy to recovery window of 3 days;
上述的各项配置,在前面章节中有一些已经有所体现,以下是详细介绍:
1)configure retention policy 配置备份保留策略

两种保留策略设置:
基于时间:
configure retention policy to recovery window of n days;
基于冗余数量:
configure retention policy to redundancy n;
也可以取消备份保留策略:
configure retention policy to none;
2)configure backup optimization 配置备份优化
备份优化 : 包括 off 和 on 两个状态
打开备份优化:
configure backup optimization on;
关闭备份优化:
configure backup optimization off;
3)configure default device type 配置 io 设备类型
rman 支持的 io 设备类型有两种:磁盘 (disk) 和磁带 (sbt) ,默认情况下为磁盘。
使用磁盘设备:
configure default device type to disk;
使用磁带设置:
configure default device type to sbt;
在这里需要注意的一点是:如果 io 设备发生变化,相关配置项也需要修改。例如:
rman> configure device type disk parallelism 2;
4) configure controlfile autobackup 配置控制文件自动备份
是否自动备份,包含两个状态: off 和 on
打开自动备份
configure controlfile autobackup on
禁止自动备份
configure controlfile autobackup off
指定备份的控制格式和路径。例如:
configure controlfile autobackup format for device type disk to
‘e:\oracle\oraback\%f’;
在备份期间,将产生一个控制文件的快照,用于控制文件的读一致性,这个快照可以
通过如下配置: configure snapshot controlfile name to
‘e:\oracle\oraback\sj_data.ora’;

5)configure device type 设置并行备份
rman 支持并行备份与恢复,也可以在配置中指定默认的并行程度。例如:
configure device type disk parallelism 2;
指定在以后备份与恢复中,将采用并行度为 2 ,同时开启 2 个通道进行备份与恢复,
当然也可以在 run 中指定通道来决定备份与恢复的并行程度。并行的数目决定了开启
通道的个数。如果指定了通道配置,将采用指定的通道,如果没有指定通道,将采用
默认通道配置。默认情况下,自动分配通道的并行度为 1 ,如果你通过设置 parallelism
设置了并行通道为 2 ,那么在 run 块中,它会默认使用 2 条并行通道 ; 如果在 run命令
块中指定数个 allocate channel ,那么 rman 在执行备份命令时会以设置的 channel 为准,
而不管 configure 中配置了多个并行通道。需要注意的是,在 backup 命令中有一个

filesperset 参数,该参数是指 rman 建立的每个备份集中所能包含的备份片段 ( 即磁盘文
件 ) 的最大数,该参数默认值为 64 ;如果在执行 backup 命令时没有指定该参数值,那
么 rman 会仅使用第一个通道来执行备份,其它通道将处于空闲状态。关于通道数与
filesperset 值之间也有一个大小关系,即 filesperset 值不要小于设定通道数。

6) 设置备份文件冗余度
configure datafile backup copies

如下:
rman> run{
set backup copies 2;
backup device type disk format
‘e:\oracle\oraback\dyk1\%u’,‘e:\oracle\oraback\dyk2\%u’
tablespace users,sales;
}

7)configure maxsetsize 配置备份集的最大尺寸
该配置限制通道上备份集的最大尺寸。单位支持 bytes,k,m,g 。默认值是 unlimited。

8) rman 备份相关的动态性能表
v$archived_log :本视图包含了所有归档重做日志文件的创建情况,备份情况以及其
他信息。
v$backup_corruption :这个视图显示了 rman 在哪些备份集中发现了损坏的数据坏。
在你使用 backup validate 命令对备份集进行检查时如果发现了损坏的数据块, rman
将在这个视图中写入记录。
v$copy_corruptio :本视图显示了哪些镜像复制备份文件已经被损坏。
v$backup_datafile :本视图通常用来获取每个数据文件中非空白数据块的数量,从
而帮助你创建出大小基本相等的备份集。另外,在视图中也包含了数据文件中损坏的
数据块的信息。
v$backup_redolog :本视图显示了在现有的备份集中饮食有哪些归档重做日志文件。
v$backup_set :本视图显示了已经创建的备份集的信息。
v$backup_piect :本视图显示了已经创建的备份片段的信息。
可以通过如下 sql 语句获得正在进行的镜像复制操作的状态信息:
select sid,
serial#,
context,
sofar,
totalwork,
round(sofar / totalwork * 100, 2) “% complete”
from v$session_longops
where opname like ‘rman:%’
and opname not like ‘rman:aggregate%’
通过如下 sql 获得 rman 用来完成备份操作的服务进程的 sid 与 spid 信息:
select sid,spid,client_info from v$process p,v$session s where p.addr=s.paddr and
client_info like ‘%id=rman%’

rman 通道
上次基础知识讲提到了通道, rman 通道实质是一个到存储设备的数据流。就像城市交
通道路,多建几个环路对于缓解交通是有意义的。在 rman 中可以通过手动方式或自动
方式分配通道。
1) 手工分配通道
在执行 backup 、 restore 、 delete 等需要进行磁盘 i/o 操作的命令时,可以将它们与 allocate
channel 命令放在一个 run 的命令块中,利用 allocate channel 为它们分配通道。例如:
run{
allocate channel ch1 device type disk format ‘e:\oracle\oraback\%u’;
backup datafile ‘e:\oracle\oradata\oradb1\sj_data.ora’;
}
需要注意的是, rman 中执行的每一条 backup 、 delete 等命令都至少要求使用一个通道,
通道数决定了这些操作执行的并行度。

时间: 2024-08-03 19:00:29

Oracle RMAN备份策略的相关文章

ORACLE RMAN备份--差异增量与累积增量的策略实例图

转自原文 ORACLE RMAN备份--差异增量与累积增量的策略实例图 BACKUP 命令在不显式指定的情况下,默认情况下会选择Differential方式,即差异增量备份.不过从恢复效率的角度考虑,Cumulative方式的增量备份表现更好一些,毕竟不需要读取那么多备份集了. 注意: 在10g之前的版本中,增量备份可以有 n 多个级别,从0级.1级.2级……这样顺序排列直到 n 级( n 为小于等于4的正整数). 在10g版本中,Oarcle的官方文档明确指出增量备份只有0和1两种级别(太多增

ORACLE RMAN备份及还原 RMAN可以进行增量备份:数据库,表空间,数据文件

ORACLE RMAN备份及还原 RMAN可以进行增量备份:数据库,表空间,数据文件 只有使用过的block可以被备份成backup set 表空间与数据文件对应关系:dba_data_files / v$datafile_header 在noarchivelog模式下,可以使用RMAN备份read-only和offline的表空间 ORACLE RMAN停机备份: 备份 RMAN连接上ORACLE,WINDOWS下在命令模式下 RMAN TARGET / 连接本地数据库用的是本地认证模式.RM

Oracle RMAN备份恢复2-案例篇_超越OCP精通Oracle视频教程培训18

oracle视频教程目标 Oracle视频教程,风哥本套oracle教程培训学习oracle数据库如何设计一个TB级数据库的RMAN备份策略,RMAN备份与恢复案例-丢失所有文件,丢失单个数据文件,丢失整个数据和system表空间,丢失控制文件和参数文件,存储损坏数据丢失,丢失REDO重做日志文件,基于时间点,scn,cancel,备份控制文件的不完成恢复案例. 适用人群 IT相关从业人员.Oracle数据库技术人员.想加工资的.想升职的都可以. 视频在线学习地址: http://edu.51c

Oracle RMAN备份中catalog和nocatalog区别

nocatalog方式:用control file作为catalog,每一次备份都要往控制文件里面写好多备份信息,控制文件里面会有越来越多的备份信息,即RMAN的备份信息写在本地控制文件里面. catalog方式:必须要首先要创建目录备份数据库(catalog,也称知识库),建立恢复目录,即数据库的备份信息写到恢复目录里面. 当通过rman nocatalog方式备份Oracle数据库,Oracle使用controlfile存放RMAN的备份信息.因此,当使用Rman nocatalog方式备份

Oracle RMAN 备份一例

Oracle RMAN备份一例: Solaris 10 + Oracle 11.2.0.3 Shell:csh 备份策略:周日0级备份,周一~周六1级备份,每6小时备份归档日志,每天清理历史文件夹. --0级备份脚本: #!/bin/csh #db0 level backup foldername=`date +%Y%m%d` cd /oradata1/backup if [ -d $foldername ] then echo 'go on' else echo 'need mkdir' mk

RMAN备份策略与异机恢复一例

实验环境: A机器(生产用途):RHEL 6.5 + Oracle 11.2.0.4 + IP Address 192.168.1.11 B机器(备机用途):RHEL 6.5 + Oracle 11.2.0.4 + IP Address 192.168.1.61 需求: A机器RMAN备份完成后自动传输备份文件到B机器.防止A机器本身硬件Crash无法恢复造成核心数据库无法恢复的窘境.而且在B机器可以将数据异机恢复到任意时间点. 注意:因为要求备份完毕后直接脚本命令自动传输到异机备份目录,所以需

Oracle RMAN备份深入解析--联机备份

Oracle RMAN备份深入解析--联机备份 RMAN> backup database plus archivelog;    1.首先,进程使用alter system archivelog current命令完成了日志切换操作.    2.进程将现存所有归档重做日志备份    3.开始执行实际的数据库备份操作,此时会发生一次日志切换(alter system archivelog current),同时RMAN备份剩余的归档重做日志(使用backup archivelog all命令).

Oracle RMAN备份恢复1-基础篇_超越OCP精通Oracle视频教程培训17

oracle视频教程目标 Oracle视频教程,风哥本套oracle教程培训学习oracle数据库RMAN备份恢复基础,如rman作用与体系架构,nocatalog和catalog介绍与catalog配置,详解rman的使用,详解rman常用的命令list,report, backup,configure,set,crosscheck,validate,change,delete,restore,recover,switch,blockrecover,convert等使用. 适用人群 IT相关从

Oracle RMAN备份恢复3-高级篇_超越OCP精通Oracle视频课程培训19

oracle视频教程目标 Oracle视频教程,风哥本套oracle教程培训学习oracle数据库关于RMAN内存缓冲与块跟踪,DBMS_BACKUP_RESTORE,使用RMAN BlockRecover恢复坏块,RMAN Recovery Advisor 案例,RMAN备份压缩技术,RMAN增量备份恢复,RMAN备份加密,RMAN克隆数据库,生产环境RMAN异机恢复的几种经典场景案例 . 适用人群 IT相关从业人员.Oracle数据库技术人员.想加工资的.想升职的都可以. 视频在线学习地址: