官方文档 恢复备份指南八 RMAN Backup Concepts

来源:互联网 发布:游戏支付软件 编辑:程序博客网 时间:2024/05/02 06:10
本章内容
  • Consistent and Inconsistent RMAN Backups
  • Online Backups and Backup Mode

  • Backup Sets

  • Image Copies

  • Multiple Copies of RMAN Backups

  • Control File and Server Parameter File Autobackups

  • Incremental Backups

  • Backup Retention Policies


1.Consistent and Inconsistent RMAN Backups 一致和不一致的备份
一致的备份指数据库在正常关闭(shutdown normal shutown immediate shutdown transactional )后执行的备份。
不一致备份指数据库开启情况下进行的备份。
注意:如果在noarchivelog模式下,不能执行不一致的备份。

2.Online Backups and Backup Mode 在线备份和备份模式
用户管理的备份(user-managed backup):如果直接复制数据文件,这时数据块是不一致的,数据块中包含已经更新和未更新的部分,这样的块称为断裂的块(fractured block)。断裂的块无法用于恢复,是无效的,因此不能在数据库OPEN的状态下,不能用OS命令复制数据文件进行备份。执行用户管理备份(以下简称UMB)备份时,首先要把数据文件设置成备份模式backup mode:alter datafile(tablespace) XX begin backup;再执行类似的OS命令:copy d:\oracle\users01.dbf to e:\backup。当数据文件置于备份模式后,数据库在修改块前将数据块的镜像写到日志文件,然后把修改的内容也写到日志文件中。数据数据还会冻结数据文件的检查点(data file checkpoint),直到解除备份模式;冻结数据头是因为,用第三方的工具复制数据文件时,不能保证先复制数据文件头后复制文件块;PS:这里只做翻译,不做解释。
请参考:http://blog.csdn.net/cymm_liu/article/details/7899056

RMAN备份不需要将数据文件置于备份模式,因为RMAN知道数据块的格式。RMAN不会复制断裂的块,在复制时,RMAN会比较块的头部和尾部。如果是断裂的块,RMAN再读一次这个块,如果还是断裂的,RMAN认识这是个永久的断裂块。但是RMAN不会冻结数据文件头,因为RMAN从检查点中可以得知数据库广场这个数据文件中的数据块的顺序。


3.Backup Sets 备份集
本节内容:
  • Backup Sets and Backup Pieces

  • Block Compression for Backup Sets

  • Binary Compression for Backup Sets

  • Backup Undo

  • Encryption for Backup Sets

  • Filenames for Backup Pieces

  • Number and Size of Backup Pieces

  • Number and Size of Backup Sets

  • Multiplexed Backup Sets

  • Proxy Copies

1)Backup Sets and Backup Pieces 备份集和备份片
备份集是备份的最小的逻辑单元。在SBT上只能备份成备份集。
备份集包含一个或多个二进制文件,这些文件称为备份片。当指定每个备份文件(即备份片)的大小是时,一次备份可能被分到多个备份片中。当启用大文件分段备份(multisection backup),一个大文件会被分成多个部分并行备份生成多个备份片,每个备份片包含文件的一部分。RMAN会记住关于分段备份的元数据。

2)Block Compression for Backup Sets 备份集中的块压缩
两种压缩方式:
  • Unused Block Compression (Supports disk backup and Oracle Secure Backup tape backup)  未使用的块进行压缩(支持磁盘备份和Oracle Secure Backup tape backup

  • Null Block Compression (Supports all backups)   空块压缩

这里的“压缩”并非指数据的压缩,更准确的说是块过滤。Unused Block Compression指当一个块不属于任何一个段时,RMAN不备份这个块,只有
本地管理(locally managed)的数据文件上可以使用,如果不开启这个功能,RMAN将会备份数据文件的每个块。空块压缩指,当一个块从没有被使用过(没有被分配过),则忽略这个块.RMAN每次被一个块之前都会判断是否为空块.

Unused Block Compression未使用的块进行压缩
默认自动开启.
使用条件:
1.COMPATIBLE>=10.2 
2.数据库没有guaranteed 的还原点
3.数据文件本地管理
4.备份在磁盘或 Oracle Secure Backup tape backup

Null Block Compression 空块压缩
ORACLE每次都会检查块是否被使用过,没使用过就不备份.

3)Binary Compression for Backup Sets 备份集二进制压缩
使用命令:CONFIGURE DEVICE TYPE <DISK | SBT> BACKUP TYPE TO COMPRESSED BACKUPSET进行压缩备份.
上一章已经讲过了,不再讲了.建议到网上找找,文档说的含糊不清.

4)Backup Undo
可以开启undo备份优化,对于已经提交的事务不进行备份,只备份未提交的事务.undo优化是不可配置的,强制开启.详情请查看:
http://www.eygle.com/archives/2007/07/oracle11g_rman_undo_bypass.html

5)Encryption for Backup Sets 加密备份
前一章也讲过,不再讲了,完全重复的内容.

6)Number and Size of Backup Pieces 备份片的数目和大小
默认RMAN一个备份集只生成一个备份片.可以用maxpiecesize限制备份片的大小.备份片的一用外示例:每个磁带只有10G,但是备份集一共有80G,这时就要设置备份片,第个10G.
如果设置了setion size,将启用多段备份(multisection backup),如一个300G的文件,设置setion size为30G,刚会启用10个通道(如果已经设置了10个通道的话)进行并行备份,提高大文件备份速度.


7)Number and Size of Backup Sets 备份集的数目和大小
备份集的数目和大小取决于RMAN的算法(一般情况下,一个RMAN通道备份一个文件,如有15个文件,4个通道,则会生成15/4=3+3/4=4 个备份集,如果有17个文件则生成5个备份集).可以用maxsetsize设置每个备份集的大小.如所有的文件一共100G, maxsetsize为40G,则生成3个备份集.
同时也可以指定FILESPERSET 设备每个备份集的数据文件的个数。

8)Multiplexed Backup Sets  多路备份
Multiplexed Backup Sets 指同时读取多个文件,然后写一个备份集中。备份到镜像时不能使用此功能。



多路备份由多个因素决定。FILESPERSET  指定了一个备份集可以有多少个数据文件。 MAXOPENFILES  参数RMAN同时可以读多少个数据文件。算法如下(这里均不设置MAXSETSIZE MAXPIECESIZE 参数):
1. 每个备份集的数据文件个数
 每个备份集的数据文件个数=min(FILESPERSET ,需要备份的数据文件个数)的最小值。FILESPERSET  的默认值是64
2.多路备份的级数(level of multiplexing)
level of multiplexing 决定了同时读取的数据文件的个数(写到一个备份集)。该值=min(MAXOPENFILES,每个备份集的数据文件个数).默认是8.
示例:
备份12个文件,FILESPERSET 为4,则每个备份集的数据文件为MIN(4,12)=4.多路备份的级数=MIN(4,8)=4.则同时进行4个多路备份。
如果有50个数据文件,不设置FILESPERSET (FILESPERSET为默认值64),则每个备份集的数据文件个数为50,多路备份的级数=MIN(50,8)=8.同时将8个数据文件写进一个备份集。
注意:不要使用磁带上的多路备份。
多路备份只是同时备份多个数据文件到一个备份集,生成几个备份集是由FILESPERSET 和maxsetsize决定的,不要混淆。 实际上,一个通道至少会生成一个备份集,当通道个数据大于FILESPERSET 时,备份集的个数由 文件数据/通道数 决定.


9)Proxy Copies 代理备份
可以通过介质管理器进行代理备份,不能用磁盘进行代理备份.仅当介质管理器有代理备份功能时使用.
文档没有做详细说明.



2. Image Copies 镜像复制备份
直接复制文件,而不像备份集只备份使用过的块,与OS复制一模一样.(PS:我觉得不可能是一一模一样的,如果一样,直接用OS复制就行了,为什么手动热备时还要将数据文件置于备份模式?RMAN肯定是要先读数据文件头的, 而OS复制则可能从任意一部分开始.)
镜像备份可用于非RMAN的还原和恢复

1)RMAN-Created Image Copies RMAN创建的镜像
使用backup as copy进行镜像备份.可设置默认的磁盘备份类型为镜像.在进行镜像复制时,会检查数据块是否有错误,并记录备份信息.
默认的备份文件名格式是U%.如:
/d1/oracle/work/orcva/RDBMS/datafile/o1_mf_sysaux_2qylngm3_.dbf
在镜像备份时,可以设置DB_FILE_NAME_CONVERT ,与设置初始化参数DB_FILE_NAME_CONVERT   的作用是一样.
用镜像还原时,默认情况下把镜像复制到要还原的数据文件位置上再进行恢复,不过可以设置数据文件切换,直接用镜像中的数据文件而不用将数据文件还原.

2)User-Managed Image Copies 用户复制的镜像
用户手工执行的备份文件可以被RMAN使用.
使用CATALOG命令检查用户备份的镜像文件并将备份信息写入RMAN资源库.但是CATALGO命令不会执行以下操作
1.检查镜像是否有错误
2.确保镜像当前正处于备份模式(BACKUP MODE)
当检查完成后,可以使用RESTORE或者SWITCH命令使用这个镜像,就是使用RMAN备份的镜像一样.当镜像被删除后,执行CHANGE ... UNCATALOG 命令从RMAN资源库删除这个镜像信息.

5Multiple Copies of RMAN Backups 多重复制(一次备份生成多个完全相同的备份片)
1)Duplexed Backup Sets   多重复制备份
多重复制备份可以一次备份在不同路径生成最多4个完全一样的备份片,只能用于备份集,不能用于镜像.可以在磁盘或磁带上使用,但是不能同时在磁盘和磁带上进行多重备份.在磁带上使用时,注意备份集的个数不要超过磁驱的个数.用法:confiuger bakcup set中使用.
BACKUP DEVICE TYPE DISK COPIES 3 DATAFILE 7   FORMAT '/disk1/%U','?/oradata/%U','?/%U';
RMAN并不是生成三个一样的备份集,而是生成一个备份集,包含三个一样的备份片.

2)Backups of Backups 备份备份集或镜像
可以备份已经存在的备份集或镜像.
1.Backups of Backup Sets 备份备份集
把备份集再备份一遍,一般用于把备份集放到不同的设备上(在备份时,不能同时备份到磁盘和磁带).如果已经存在的备份集备份到磁带上.
而且,当一个备份集不可用时,RMAN会从另一种介质上寻找相同的备份集.
备份到磁盘的同时复制到磁带(前提是configure了一个SBT通道):
BACKUP DEVICE TYPE DISK AS BACKUPSET   DATABASE PLUS ARCHIVELOG; BACKUP   DEVICE TYPE sbt   BACKUPSET ALL; # copies backup sets on disk to tape
将一个星期前的备份从磁盘备份到磁带,并且删除磁盘上的备份:
BACKUP   DEVICE TYPE sbt   BACKUPSET COMPLETED BEFORE 'SYSDATE-7'   DELETE INPUT

2.Backups of Image Copies 备份已在存在的镜像
可以把已在存在的镜像备份成备份集或镜像.


6.Control File and Server Parameter File Autobackups  控制文件和参数文件自动备份
备份控制文件和参数文件对于恢复来说是很重要的,在恢复时,如果控制文件和参数文件丢失,可以从备份中还原控制文件和参数文件.
CONFIGURE CONTROLFILE AUTOBACKUP is ON 开启控制文件自动备份,在执行一次备份后会自动的备份控制文件.如果数据库运行在archivelog模式下,当数据库结构变化(如添加数据文件)后,RMAN人自动备份控制文件(不需要人为操作??????)

How RMAN Performs Control File Autobackups RMAN怎么执行控制文件自动备份?
在自动备份时,RMAN会用第一个通道来创建一个专门备份控制文件的备份集,同时也将spfile备份到这个备份集里.注意:控制文件自动备份只会备份一份,不同时备份成多份.


7.Incremental Backups 增量备份
增量备份只会备份上一次增量备份这后发生更改的块.
1)Multilevel Incremental Backups 多级增量备份
增量备份包括两级0级和1级 .0级备份是1级增量备份的基础,备份集和镜像都可以做为0级备份.注意:完整备份不能做为增量备份的基础.
完全备份和0级备份的唯一区别是,0级备份可以做为增量备份的基础,而完全备份不能(真是个十分二逼的区别啊!!!!!!!傻爆了!!!!)
增量备份分两种:
1.差异备份differential incremental backup :备份上个增量0级和1级以来修改过的块
2.累积备份cumulative incremental backup:备份上个增量0级以来修改过的块.
默认是差异备份.

1.差异备份differential incremental backup
备份上个增量0级和1级(可以是累积备份1级)以来修改过的块.

周末进行0级备份,周一到周6进行1级差异备份.

2.累积备份cumulative incremental backup
备份上个增量0级以来修改过的块.

周日0级备份,周一到周六1级累积备份.

3.Block Change Tracking 块修改跟踪
块修改跟踪:将数据文件中修改的块记录在文件中,在增量备份时,中需要备份这些块就可以了,提高了备份速度,但系统的影响较小.如果不启用块跟踪,则备份时将会扫描所有的数据文件块.
块跟踪文件是一个二进制文件,放在database area中(由DB_CREATE_FILE_DEST 参数决定).

4.Incremental Backup Algorithm 增量备份算法
<1>Checkpoint SCN 检查点SCN
每个数据文件都有一个数据文件检查点SCN(data file checkpoint SCN),查看V$DATAFILE.CHECKPOINT_CHANGE#字段可以得到,小于这个SCN的数据块都已经写在文件中了(即该SCN以前的脏块都已经写到数据文件中).执行0级增量备份时,会数据文件连同这个SCN都写到备份中.执行增量1级备份时,备份文件中此数据文件的SCN向前推至增量备份后的SCN.
(备份时,应该备份到Checkpoint SCN就停止备份了)

<2>Incremental start SCN 增量备份开始的SCN
This SCN applies only to level 1 incremental backups. All blocks whose SCN is greater than or equal to the incremental start SCN are included in the backup. Blocks whose SCN is lower than the incremental start SCN are not included in the backup. The incremental start SCN is most often the checkpoint SCN of the parent of the level 1 backup.
大于或者等于Incremental start SCN的块,将被写在此次在备份中,小于Incremental start SCN的块将不会被写入此次备份文件中.


如果是差异备份,则Incremental start SCN 就是上个备份1级或0级的备份的Checkpoint SCN(检查点SCN),累积备份的Incremental start SCN就是0级备份的Checkpoint SCN(检查点SCN).
(简单点说,0级备份完后,数据文件SCN为10,第一个1级备份后数据文件SCN为15,则差异备份的Incremental start SCN为16,从SCN 16开始备份.而和累积备份的Incremental start SCN 为10,从SCN 10开始备份).

<3>Block SCN 数据块的SCN
每个数据块都记录了最近修改时对应的SCN(版本号).

当开启了块跟踪时,就不用扫描整个数据文件,就能知道Incremental start SCN(下次备份开始的SCN,即上次备份结束时的Checkpoint SCN) 到当前的Checkpoint SCN之间变化过的块,备份这些块就行了.

一个重要的结论:增量备份会备份nologing的对象发生的块更改.如果nologing的对象在0级备份之后创建,并且增量备份已经备份了这个对象,则在进行恢复时,增量备份是唯一能恢复(应该是有限的恢复,恢复到最后一次增量备份这个nologing对象时)这个对象的方法.如果是全量备份,则需要用日志来恢复,而对象是nologing的,则无法恢复.

5.Recovery with Incremental Backups 增量备份恢复
在恢复时,RMAN优先选择增量备份而不是归档日志来恢复文件.因为从增量备份恢复比使用归档日志恢复快的多.如果一个数据文件仅仅存在于增量备份中时,不需要还原这个增量备份的基础增量备份(上一个增量备份). 


8.Backup Retention Policies 备份保留策略
CONFIGURE RETENTION POLICY  可以创建一个永远自动的保留策略.
过期的备份(obsolete backup):当备份集已经不再需要用于恢复时,这个备份集就是(过期的). 可以设置保留策略来决定什么情况下备份过期.注意:当前最新的可用于恢复的备份永远不会过期,即使违反了备份策略.
RMAN会标记出过期的备份,但是不会删除过期的备份,必须手动执行RMAN命令.
如果启用了FRA,在FRA空间不足的情况下,则ORACLE会自动删除FRA中过期的备份或者复制到磁带的备份.

失效的备份(expired backup ):只有一种情况发现失效的备份,即RMAN用crosscheck命令发现备份丢失. 丢失的备份被称为expired backup.

保留策略只用于完全备份\0级备份\控制文件自动备份. 增量备份或归档日志备份保留策略依赖于完全备份或0级备份是否要用到它们.

1)Recovery Window保留窗口
保留窗口指可以恢复到最近N天内的任意一个时间点,N为保留期窗口.RMAN将根据这个保留策略保留完全备份、增量备份、归档日志等。
可以恢复到7天之内的任意一个时间点:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
要满足这个要求,必须有7天之前的备份(如7天分别是1,2,3,4,5,6,7,如果只有第二天的的备份,则无法恢复到第1天,不满足条件):
SYSDATE - BACKUP CHECKPOINT TIME >= 7
示例:
A 保留期为7天
B 两天备份一次:
January 1
January 15
January 29
February 12
C 当前时间 2月23

则jan1  jan7 的备份过期,jan14 jan21的备份是不过期的.log500以前的日志也是过期的。jan14的备份用于恢复到jan16-jan21之间。jan21的备份用于恢复到jan21到jan23之间。


2)Backup Redundancy 备份的冗余策略
使用保留窗口可能使磁盘使用变的比较复杂,因为要保留各种文件.而使用备份冗余就简单的多.
设置可能可以用于恢复的备份只保留两份:
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
如周一,周二完全备份,周三备份完后,则周一的备份失效,已经有两个备份可以用于恢复,旧的备份自动过期.


本章内容真是非常多,而且难于理解,不准确之处请多多谅解,花了我三个晚上....

0 0
原创粉丝点击