1、FORMAT字符串替代变量数据库
使用FORMAT参数时可以使用的各类替换变量,以下:安全
%c :备份片的拷贝数(从1开始编号);session
%d :数据库名称;性能
%D :位于该月中的天数 (DD);优化
%M :位于该年中的月份 (MM);日志
%F :一个基于DBID 惟一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD 为日期,QQ 是一个1-256 的序列;code
%n :数据库名称,而且会在右侧用x字符进行填充,使其保持长度为8;对象
%u :是一个由备份集编号和创建时间压缩后组成的8字符名称。利用%u能够为每一个备份集生成一个惟一的名称;进程
%p :表示备份集中备份片断的编号,从1 开始编号;rem
%U :是%u_%p_%c的简写形式,利用它能够为每个备份片断(即磁盘文件)生成一个惟一名称,这是最经常使用的命名方式;
%s :备份集的号;
%t :备份集时间戳;
%T :年月日格式(YYYYMMDD);s
注:若是在BACKUP命令中没有指定FORMAT选项,则RMAN默认使用%U为备份片断命名。
2、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 ¨d:/backup/%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 ¨F:\ORAHOME1\DATABASE\SNCFJSSWEB.ORA¨; # default RMAN>
Show 命令在RMAN命令篇简单介绍过,同时咱们也已经知道后跟#default表示该条配置仍然是初始的默认配置,若是咱们想把某条更改过的配置再置为初始应该怎么办呢,很简单,用以下命令: CONFIGURE ... CLEAR ; 例如:
RMAN> CONFIGURE RETENTION POLICY CLEAR ; 旧的 RMAN 配置参数: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS; RMAN 配置参数已成功重置为默认值
上述的各项配置,咱们在前面章节中有一些已经有所体现,下面咱们再逐条过一遍。
1 、 CONFIGURE RETENTION POLICY 配置备份保留策略
第4章节咱们详细讲过关于备份保留策略,也知道了它有两种保留策略:
基于时间:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF n DAYS;
基于冗余数量:
CONFIGURE RETENTION POLICY TO REDUNDANCY n ;
也能够取消备份保留策略:
CONFIGURE RETENTION POLICY TO NONE;
2 、 CONFIGURE BACKUP OPTIMIZATION 配置备份优化
也是第4章节提到的内容,备份优化,包括OFF和ON两个状态
打开备份优化:
CONFIGURE BACKUP OPTIMIZATION ON;
关闭备份优化:
CONFIGURE BACKUP OPTIMIZATION O FF ;
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 ¨d:/backup/%F¨;
在备份期间,将产生一个控制文件的快照,用于控制文件的读一致性,这个快照能够经过以下配置:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ¨ D:/BACKUP/ SNCFJSSWEB.ORA¨;
5 、 CONFIGURE DEVICE TYPE 设置并行备份
RMAN 支持并行备份与恢复,也能够在配置中指定默认的并行程度。例如:
CONFIGURE DEVICE TYPE DISK PARALLELISM 2;
指定在之后的备份与恢复中,将采用并行度为2,同时开启2个通道进行备份与恢复,固然也能够在run中指定通道来决定备份与恢复的并行程度。
并行的数目决定了开启通道的个数。若是指定了通道配置,将采用指定的通道,若是没有指定通道,将采用默认通道配置。有点儿绕是吧,我来给你白话一把。
默认状况下,自动分配通道的并行度为1,若是你经过设置PARALLELISM设置了并行通道为2,那么在run块中,若是你没有单独经过ALLOCATE CHANNEL命令指定通道,它会默认使用2条并行通道,若是你在run命令块中指定了数个ALLOCATE CHANNEL,那么rman在执行备份命令时会以你设置的channel为准,而无论configure中配置了多少个并行通道。须要注意的一点是,在backup命令中有一个FILESPERSET参数,该参数是指rman创建的每一个备份集中所能包含的备份片断(即磁盘文件)的最大数,该参数默认值为64,若是在执行backup命令时没有指定该参数值,那么rman会仅使用第一个通道来执行备份,其它通道将处于空闲状态。关于通道数与FILESPERSET值之间也有一个大小关系,逻辑稍显复杂这些就很少废话了,总之一条,filesperset值不要小于你设定的通道数。
6 、 CONFIGURE DATAFILE BACKUP COPIES 设置备份文件冗余度
4 章也讲过,应该也还有印象吧,不记的了就赶忙回去翻翻。
7 、 CONFIGURE MAXSETSIZE 配置备份集的最大尺寸
该配置限制通道上备份集的最大尺寸。单位支持bytes,K,M,G。默认值是unlimited。相信应该也不会有什么人改它吧,我花了整整20秒时间思考,而后确认,我应该用不着它,OK,跳过。
3、RMAN备份相关的动态性能表
能够经过以下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%¨
4、RMAN通道
在RMAN中能够经过手动方式或自动方式分配通道。
1 、手工分配通道
在执行BACKUP、RESTORE、DELETE等须要进行磁盘I/O操做的命令时,能够将它们与ALLOCATE CHANNEL命令放在一个RUN的命令块中,利用ALLOCATE CHANNEL为它们分配通道。例如:
RUN{ ALLOCATE CHANNEL CH1 DEVICE TYPE DISK FORMAT ¨d:/backup/%U¨; BACKUP DATAFILE ¨F:\ORAHOME1\ORADATA\JSSWEB\JWEB.ORA¨; }
须要注意的是,RMAN中执行的每一条BACKUP、DELETE等命令都至少要求使用一个通道,通道数决定了这些操做执行的并行度。
2 、自动分配通道
若是没有使用手工分配通道,那么RMAN在执行BACKUP等操做I/O的命令时将会使用预约义配置(configure,记起来了吧)中的设置来自动分配通道。
下列预约义配置命令都可以分配通道:
5、RMAN备份类型
利用RMAN进行备份时,能够经过三种方式来对RMAN的备份作分类
全备与增备是针对数据文件而言,控制文件和归档日志文件不能进行增量备份。固然,后二者能够作备份优化。
数据库打开状态下进行备份便是打开备份,数据库关闭状态下(加载状态)进行的备份即关闭备份。
数据库打开状态或不干净关闭状态(shutdown abort)进行的备份是不一致备份,利用不一致的备份修复数据库后还须要作数据库的恢复。在数据库干净关闭状态进行的备份是一致备份,利用一致备份修复数据库后不须要作数据库的恢复。
6、增量备份的工做机制
所谓增量备份,顾名思义便是每次备份仅操做那些发生了"变化"的数据块。RMAN中增量备份有两种:Differential方式和Cumulative方式。下面将分别胡扯,请看官自辨真伪。。。
1 、差别备份Differential
提及Differential,至关有意思,你们能够这样理解。有一家名为Differential的红社会组织,他们民主自由善良博爱为人忠恳正直(如下省略5000个褒义形容词),总之呢,黑黑,他们会按照你与其约定的周期来向你收取保护费,由于他们的组织很是严密,(以上图为例吧)全部成员按照0,1,2分为不一样等级,0级最高就是老大。贵为老大天然身份尊崇,手底下小弟多,开销也大,因此若是0级老大亲自登门收取的话,没啥说的,甭管它何时来,你的家底他都要从新清点一遍,从你成立开始到如今,总共应交多少保护费,一个子儿都不能少的都要交出来。每次来都是这样。而1级成员就显的温和多了,它每次来,只要求你将上次0级收到以后到如今应交的税款给交了就好了。甚至于若是上次也是个1级成员(与它平级)来收取的话,它也认同。固然,若是上次来收的是个2级成员,它是不认可的,好歹它也是个有身份的人,比它低级的成员打的收条它向来是不认同地。它至少要求将最后一个与它平级或级别比它要高的成员收取日期到如今应结的给它。1级成员带了头,2级成员也按这个来。
2 、累积增量备份Cumulative
继续白话,名为Cumulative的红社会组织相比Differential差距就比较大,虽然它们也会按照与你约定的同期来收取,可是,这家组织显然做风是属于比较凶悍的。仍然以上图为例,假设它们也按照0,1,2分为三个等级,0级老大身份尊崇,表现倒与Differential家的相同。但级别比它低的那些小弟表现与Differential家的就相差较多。对于那些级别高于它们的成员打的收条,他们仍是会承认,可是其它人,甚至与它们平级的成员它们都不认。哪怕上次就是它来收取的,他也能翻脸不认账。好比某个1级成员昨天来时就直接从上次0级收取的时间开始算的,而今天来的又是这个家伙,可它对昨天的所为都拒不认账,坚持还要从上次0级收取的时间开始算。
注意:这两家非0级成员都有个毛病,假如它们来收费时发现自你成立起,自家的0级老大历来都没来过,本着为老大尽心为老大尽责的高贵品格,他们都会替老大把你的家底翻个底朝天,来个大清算。
如今,你们对它们两家都有所了解了吧。另外backup命令在不显式指定的状况下,默认会选择Differential地哟:)
7、备份集概述
备份集由RMAN建立的具备特定格式的逻辑备份对象,一个备份集中可能包含多个数据库文件(包括数据文件,控制文件和归档日志文件)。RMAN中经过BACKUP命令创建备份集。
一个备份集是由多个备份片断组成,每一个备份片断便是一个物理文件。
8、RMAN恢复目录(CATALOG)
Oracle9i版本由于控制文件的自动备份,能够很大程度不须要使用恢复目录。固然,号称使用目录数据库控制文件的方式将会很是的不安全,由于一旦备份文件丢失,不只数据库崩溃,rman备份信息也将丢失(就我的使用而言,我觉着没有这么严重,9i中的控制文件备份就已经多种多样,并且恢复及重建方式也有许多,因此假如您在没有使用恢复目录的状况下丢失了控制文件,千万表觉得就此玩完,准备摸脚走人。Google一下rman 控制文件 恢复,您会发现无数个可以挽救您饭碗的页面存在),扯了一堆,希望没有给像上个礼拜的俺同样的初学者形成印象上的混淆,若是能用恢复目录仍是推荐使用恢复目录,恢复目录实际上也是一个数据库,通常独立于目标数据库。由于它本身就是个数据库,因此一个恢复目录能够同时被多个目录数据库使用。网上搜了一些特色以下:
· 有些命令只被恢复目录支持(找着很多,你们本身gg吧,这里就不一一介绍了,要否则俺这就不像在作笔记,倒像是在写高级参考大全,o对了还有,控制文件方式中没法直接存储rman备份脚本)
· 能保留更多的历史备份信息
· 一个恢复目录能管理与备份多个目标数据库
· 若是没有恢复目录,并且发生告终构上的改变,时间点的恢复须要当心操做
· 能存储备份与恢复的脚本
能够看到,主要是能够保留更多的备份信息与方便的管理多个目标数据库,这个在众多目标数据库的状况下,绝对是强烈推荐的,能省不少事儿。
一样,若是您选择使用恢复目录方式,千万表忘了对恢复目录数据库作备份哟,固然这个库您就不用再使用rman作备份了,呵呵:),exp是个好法子,简单又方便,反正rman的恢复目录数据库也占不了什么空间。并且经过exp备份以后,一旦恢复目录数据库发生故障,也可能很轻易的经过imp进行恢复。