RMAN 基础知识总结

简单的来说,RMAN(Oracle Recovery Manager)可以用来备份和还原数据库文件、归档日志和控制文件。它也可以用来执行完全或不完全的数据库恢复。
RMAN启动数据库上的Oracle服务器进程来进行备份或还原。备份、还原、恢复是由这些进程驱动的。

1、RMAN概述
•RMAN: Oracle Recovery Manager, Oracle恢复管理器。
•RMAN是一个用来管理备份,还原,恢复操作的Oracle工具。
•RMAN拥有一套独立于平台的强大的命令语言。
•RMAN有一个命令行接口(CLI),OEM也提供一个图形化的用户界面。
•从Oracle8i开始,RMAN开始得到使用。
•RMAN提供了一些用户管理备份所不能完成的功能。
–将频繁执行的脚本保存在数据库中
–可以使用增量备份,只备份上次备份以来被改变过的块
–可以用RMAN管理备份片的大小
–通过并行操作,可以节省备份时间
–RMAN操作可以被集成到操作系统的计划任务自动执行

2、RMAN功能
•备份数据库,表空间,数据文件,控制文件,归档日志,spfile
•存储频繁执行的备份和恢复的操作脚本
•执行增量的块级备份
•跳过未使用的块
•指定备份限制
•探测备份过程中的坏块
•管理备份和恢复任务
•通过以下方式增加性能:
–自动并行处理
–更少的redo生成
–限制备份的I/O
–磁带流
•RMAN还可以:
–复制数据库
–创建复用数据库
–…

3、RMAN知识库的保存
Rman知识库用来记录已存在的rman备份的资料信息。
·通常有以下两个场所
–目标数据库控制文件
–恢复目录

•如果选择目标数据库的控制文件保存RMAN知识库:
–该知识库不能保存RMAN脚本。

•如果选择目标数据库控制文件保存RMAN知识库:
–CONTROL_FILE_RECORD_KEEP_TIME决定了控制文件中RMAN知识库被覆盖之前保留的天数。
–控制文件可能会增大。

4、几个常见常用的名词解释

·Backup sets 备份集合
  备份集合有下面的特性:
   - 包括一个或多个数据文件或归档日志
   - 以oracle专有的格式保存
   - 有一个完全的所有的备份片集合构成
   - 构成一个完全备份或增量备份

·Backup pieces 备份片
   - 一个备份集由若干个备份片组成。
   - 每个备份片是一个单独的输出文件。
   - 一个备份片的大小是有限制的;如果没有大小的限制, 备份集就只由一个备份片构成。
   - 备份片的大小不能大于使用的文件系统所支持的文件长度的最大值。

·Image copies 镜像备份
   - 镜像备份是独立文件(数据文件、归档日志、控制文件)的备份。
   - 它很类似操作系统级的文件备份。
   - 它不是备份集或 备份片,也没有被压缩。

·Full backup sets 全备份集合
   - 全备份是一个或多个数据文件中使用过的数据块的的备份。
   - 没有使用过的数据块是不被备份的,也就是说,oracle 进行备份集合的压缩。

·Incremental backup sets 增量备份集合
   - 增量备份是指备份一个或多个数据文件的自从上一次同一级别的或更低级别的备份以来被修改过的数据块。 
   - 与完全备份相同,增量备份也进行压缩。

·File multiplexing
   - 不同的多个数据文件的数据块可以混合备份在一个备份集中。

·Recovery catalog resyncing 恢复目录同步
   - 使用恢复管理器执行backup、copy、restore或者switch命令时,恢复目录自动进行更新,但是有关日志与归档日志信息没有自动记入恢复目录。
   - 需要进行目录同步。使用resync catalog命令进行同步。

RMAN>resync catalog; 
RMAN-03022:正在编译命令:resync
RMAN-03023:正在执行命令:resync
RMAN-08002:正在启动全部恢复目录的 resync
RMAN-08004:完成全部 resync

·Recovery catalog恢复目录
   - 恢复目录是由RMAN使用、维护的用来放置备份信息的仓库。RMAN利用恢复目录记载的信息去判断如何执行需要的备份恢复操作。
   - 恢复目录可以存在于ORACLE数据库的计划中。
   - 虽然恢复目录可以用来备份多个数据库,建议为恢复目录数据库创建一个单独的数据库。
   - 恢复目录数据库不能使用恢复目录备份自身。

·使用恢复目录的优势
   - 可以存储脚本;
   - 记载较长时间的备份恢复操作;

·通道
   一个通道是RMAN和目标数据库之间的一个连接,'allocate channel'命令在目标数据库启动一个服务器进程,同时必须定义服务器进程执行备份或者恢复操作使用的I/O类型
   通道控制命令可以用来:
   - 控制RMAN使用的O/S资源
   - 影响并行度
   - 指定I/O带宽的限制值(设置limit read rate参数)
   - 定义备份片大小的限制(设置limit kbytes)
   - 指定当前打开文件的限制值(设置limit maxopenfiles)

5、FORMAT字符串替代变量  
使用FORMAT参数时经常使用的一些替换变量:

%c:备份片的拷贝数(从1开始编号),当生成多重备份时,用于指定备份片的副本号
%d:数据库名称; 
%D:位于该月中的天数 (DD); 
%M:位于该年中的月份 (MM); 
%N:用于指定表空间的名称 
%f: 用于指定绝对文件号 
%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为备份片段命名。 
%e: 用于指定归档日志序列号

6、CONFIGURE配置项
通过SHOW ALL命令,我们可以来查看当前配置。

-----------------------------------------------------------------------------------
RMAN>

RMAN> show all;

RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # 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 ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\SNCFCHIC.ORA'; # default

RMAN>
-----------------------------------------------------------------------------------

先介绍一个很有用的小窍门。
  -- 后跟#default表示该条配置仍然是初始的默认配置
  -- 如果我们想修改某条配置,直接拷贝下来,把“# default”部分去掉,前面改为新设定值即可。
     例如,我们要修改RETENTION POLICY的值为5,
     Step1:show all一下,拷贝下面这句话
        CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
     Step2:修改为新配置值,并执行。
     -------------------------------------------------------------------------------
     RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
     
     新的 RMAN 配置参数:
     CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
     已成功存储新的 RMAN 配置参数
     
     RMAN>
     -------------------------------------------------------------------------------

  -- 如果我们想把某条更改过的配置再置为初始值,我们可以用下面的命令
     命令:CONFIGURE ... CLEAR;
     例如:
     -------------------------------------------------------------------------------
     RMAN> CONFIGURE RETENTION POLICY CLEAR;

     旧的 RMAN 配置参数:
     CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
     RMAN 配置参数已成功重置为默认值
     
     RMAN>
     -------------------------------------------------------------------------------

 

接下来,我们把上面的各种配置逐条过一遍。
(1)CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
(2)CONFIGURE BACKUP OPTIMIZATION OFF; # default
(3)CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
(4)CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
(5)CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
(6)CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
(7)CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
(8)CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
(9)CONFIGURE MAXSETSIZE TO UNLIMITED; # default
(10)CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
(11)CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
(12)CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
(13)CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\SNCFCHIC.ORA'; # default


■(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)(5)(13)
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';

■(6)
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值不要小于你设定的通道数。

■(7)(8)
CONFIGURE DATAFILE BACKUP COPIES 设置备份文件冗余度 
RMAN提供了一种更谨慎的备份策略:Duplexed方式备份,其实质即是在生成备份集的同时,向指定位置生成指定份数(最大不超过4份)的备份集复制,
以避免在灾难性事故时数据库损坏和备份丢失的情况下导致完全崩溃,提高备份可用性。

RMAN中提供了三种方式实现Duplexed方式备份:
   --  在RMAN中执行BACKUP命令时显式指定COPIES参数。
       例如: RMAN> BACKUP COPIES 3 DATABASE;
      上述命令将会在全库备份的同时,自动生成当前备份集的2份拷贝到默认备份目录。

   --  在RUN{}命令块中利用SET BACKUP COPIES命令为该命令块中所有的BACKUP命令设置Duplexed方式,
       例如: RMAN> RUN{ 
                2>SET BACKUP COPIES 2; 
                3>BACKUP DEVICE TYPE DISK FORMAT 'D:\BACKUP1\%U','D:\BACKUP2\%U' 
                4>TABLESPACE USERS,SALES; 
                5>} 
      上述命令将生成两份备份集,分别存储到d:\backup1和d:\backup2目录。

   --  通过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份数据文件的备份集。

■(9)
CONFIGURE MAXSETSIZE 配置备份集的最大尺寸 
    该配置限制通道上备份集的最大尺寸。单位支持bytes,K,M,G。默认值是unlimited。

■(10)
8.CONFIGURE ENCRYPTION 配置备份加密
10g版本中新增的配置选项。数据库端配置好了Oracle Encryption Wallet后,即可通过CONFIGURE命令设置加密备份策略,加密策略既可以是针对整个数据库,
也可以是表空间,或者归档文件。要打开备份加密,只需设置ENCRYPTION为ON即可:

RMAN> CONFIGURE ENCRYPTION FOR DATABASE ON;  如果要禁止的话将ON改为OFF:

RMAN> CONFIGURE ENCRYPTION FOR DATABASE OFF; 表空间级的设置同理。

■(11)
CONFIGURE ENCRYPTION ALGORITHM 配置默认的加密算法

视图V$RMAN_ENCRYPTION_ALGORITHMS中可以获取RMAN中支持的加密算法,视图中列出的加密算法可以在执行备份操作时指定,或者是通过CONFIGURE进行配置:

RMAN> CONFIGURE ENCRYPTION ALGORITHM 'AES256'; 如果没有指定加密算法,默认情况下会选择AES128。

■(12)
CONFIGURE ARCHIVELOG DELETION POLICY配置归档文件删除策略

也是从10g版本开始提供的配置选项,用来指定归档文件的删除策略。
在默认情况下归档文件备份完之后就可以被删除,不过对于配置了Data Guard环境的数据库系统,Primary数据库端的归档文件就不能说删就删,因为归档文件不仅它自己要用,
与其在相同Data Guard环境的Standby数据库也要用,从严谨的角度来考虑,DBA必须要保证归档文件在Standby端成功接收并且应用之前,Primary端始终能保存该文件。

在10g之前的版本,这一问题困扰了很多DBA,无奈之下不少人只能通过操作系统脚本的方式,在删除归档文件之前,首先对Standby端数据库的归档文件应用状态作判断,直到确认一切OK才敢在Primary端执行正常删除。

10g之后的版本,Oracle在RMAN中内置增加了一项归档文件的删除策略,终于,DBA可以仅通过一项配置就解决该问题了。该策略对应两个值:

APPLIED ON STANDBY:设置为该值时,当通过附加的DELETE INPUT子句删除Standby数据库仍需要的日志时,会提示RMAN-08137错误。
不过用户仍然可以手动地通过DELETE ARCHIVELOG方式删除。

NONE:设置为该值时,则不启用归档文件的删除策略。默认情况下就是NONE。

例如,启用APPLIED ON STANDBY:

RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;
new RMAN configuration parameters:
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;
new RMAN configuration parameters are successfully stored 

7、RMAN备份相关的动态性能表 (20110821)
  -- 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%'

8、RMAN组件 
  1
、目标数据库
  2
、服务器进程
  3
、通道
  4
RMAN资料库
     ORACLE
总是将RMAN元数据放到目标数据库的控制文件中,如果配置了恢复目录,则RMAN元数据会被放到恢复目录中。
  5
、恢复目录
     
RMAN元数据存放天数达到初始化参数
control_file_record_keep_time的值之后,其元数据可能会被覆盖,从而导致之前的备份不能使用。
  6
、介质管理层
  7
RMAN
     
dbms_backup_restore用于执行备份、转储和恢复操作。backupcopyrestorerecover
     
dbms_revcat用于维护恢复目录。resync catalogcatalog
     
dbms_rcvman用于查询恢复目录和目标数据库控制文件。listreport
 
9、RMAN
特点

  1
、备份数据库、表空间、数据文件、控制文件、归档日志和SPFILE。目标库必须处于MOUNT状态或OPEN状态。
  2
、存储频繁执行的备份和恢复操作。放到脚本中执行
  3
、跳过未用块。
  4
、执行增量块级备份
  5
、指定备份限制
  6
、在备份时检测损坏块。用DBVERIFY工具进行检查
  7
、自动使用并行化特征提高备份和恢复性能。分配多个CPU、多个通道。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值