RMAN系列(四),RMAN备份
RMAN系列(三),介质管理问题
http://www.zzzyk.com/database/201310/253671.html
一. RMAN 备份的一些优点
1. RMAN 会检测和报告损坏的数据块。
2. 不需要将表空间置入热备份模式,RMAN 就可以连接备份数据库。 热备份期间会额外的生成重做日志。
3. RMAN 会自动跟踪新的数据文件和表空间,这样就不再需要在脚本中添加新的表空间和数据文件。
4. RMAN 只备份使用过的数据库(直至最高使用标记(High wate mark)),这样RMAN 备份映像通常小于联机备份的备份脚本。
5. RMAN 提供备份映像的实际压缩。
6. RMAN 提供自动且方便的备份,还原和恢复操作。 RMAN 跟踪恢复数据库所需要的所有备份,在要求还原操作时需要使用这些备份,并且只还原必要的对象。
7. RMAN 可以与第三方介质管理产品一起无缝的工作。
8. RMAN 支持增量备份策略。
9. 可以使用RMAN 来测试备份而不要实际还原他们。
二. RMAN 兼容性问题
在启动备份操作之前,需要考虑一些兼容性问题。在一个企业中,可能会运行不同的Oracle 版本,因此我们在设计备份策略时必须考虑RMAN 的兼容性问题。
Table B-1 shows version requirements for RMAN components.
Target/Auxiliary
Database RMAN Executable Catalog Database Catalog Schema
8.1.7.4 8.1.7.4 >=8.1.7 8.1.7.4
8.1.7.4 8.1.7.4 >=8.1.7 >=9.0.1.4
9.0.1 9.0.1 >=8.1.7 >= RMAN executable
9.2.0 >=9.0.1.3 and <= Target database >=8.1.7 >= RMAN executable
10.1.0 >=9.0.1.3 and <= Target database >=9.0.1 >= RMAN executable
10.2.0 >=9.0.1.3 and <= target database >=9.0.1 >= RMAN executable
11.1.0 >=9.0.1.3 and <= target database >=10.2.0.3 (note 1) >= RMAN executable
11.2.0 >=9.0.1.3 and <= target database >=10.2.0.3 (note 1)
>= RMAN executable
12.1.0.x =12.1.0.x >=10.2.0.3
= RMAN executable
三. 监控RMAN 备份情况
RMAN 在备份期间产生输出,如果在启动RMAN 时启用登录,则取消该输出。可以通过查看生成的日志文件来监控RMAN 操作,或者通过V$RMAN_OUTPUT 视图来查看。
SQL> select output from v$rman_output order by stamp;
四. 脱机RMAN 数据库备份
4.1 使用默认的设置执行备份操作:
RMAN 会有一些参数有默认值,在没有更改这些参数的情况下,我们也可以进行备份。 此时备份集将会备份到闪回区中。我们可以用catalog 模式或者是非catalog 模式来连接RMAN。 如果采用catalog 模式,只需在连接的时候加上catalog 参数即可。 不过要注意的是,一般建议在服务器本地直接连接RMAN,然后通过网络连接来连接catalog目录。
执行脱机备份操作时,数据库必须处于mount 状态。 一些命令如下:
Shutdown immediate
Startup mount
Backup database
或者
Backup as compressed backupset database -- 将数据库作为压缩的备份集来备份
C:/Users/Administrator.DavidDai>rman target '/@orcl as sysdba' catalog 'rman/rman@orcl';
恢复管理器: Release 11.2.0.1.0 - Production on 星期一 6月 21 23:25:24 2010
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: ORCL (DBID=1247395743)
连接到恢复目录数据库
4.2 不使用默认参数执行脱机备份操作
先来看一段脚本:
Shutdown immediate
Startup mount
Run {
Allocate channel c1 device type disk format 'D:/backup/sid_%U';
Allocate channel c2 device type disk format 'E:/backup/sid_%U';
Backup as compressed backupset database;
Backup current controlfile;
}
4.2.1 将数据库启动到mount 模式
在前面也说了,脱机备份,数据库必须启动到mount 状态。
4.2.2 运行Oracle
执行run 代码块。 在完整的语句块输入之前,Oracle 不会运行任何语句。
4.2.3 分配通道
先看一下 备份集 和 备份片。 通常情况下,每次创建一个通道时,都会创建一个或者多个备份集。
备份集(backup set): 逻辑实体,我们会为每个定义的通道创建一个或多个备份集(通常为每个通道创建一个备份集)。
备份片(backup piece):驻留备份数据的实际物理文件。 每个备份集可以关联一个或多个备份片。
可以使用backup 命令(或配置一个默认值)来控制整个备份集的大小,也可以使用allocate channel 命令(或在配置默认通道时配置一个默认值)来控制整个备份片的大小。
Allocate channel 命令定义给定通道(进而是一个备份集)所分配到的设备。设备可以是磁盘(type disk),也可以是磁带驱动器(type sbt)。如果为磁带系统分配通道,可能要在这条命令中加入MML 供应商所要求的特定参数设置。 比如Veritas Netbackup 为磁带分配通道的allocate channel 命令:
Allocate channel t1 type sbt parms='ENV=(NB_ORA_CLASS=RMAN_DB01');
执行这条命令可以为磁带分配一个通道。 为备份分配完两个通道后,RMAN 会在这两个通道间自动并行处理备份流。 由于分配了两个通道,因此会创建两个备份集,并且每个备份集拥有一个备份片。 备份片的大小按字节计算,不过也可以根据需要使用K,M或者G 占位符来分来表示。 如:
Allocate channel t1 type disk maxpiecesize=100M;
在这个示例中,我们限定了通道t1 通道创建备份集中每个备份片的大小不能超过100M。 这样能够最好的保证所创建的单个备份片大小不会超出磁带或者文件系统的处理范围。
Allocate channel t1 type disk maxpiecesize=100M format='D:/backup/sid_%U.bak';
在这个示例中,使用了format参数来定义备份片被放入磁盘的位置以及备份片的命名约定。 这里的%U 是格式占位符,以确保备份片名称的唯一性。
关于占位符的更多信息 。
4.2.4 备份操作
在示例代码中,分配通道之后,就使用backup 命令来备份数据库。 执行backup database 命令的结果是RMAN开始使用所创建的两个通道备份数据库。
默认情况下,如果只备份数据文件,backup 命令也会备份控制文件和服务器的参数文件(spfile)。 在这种情况下,控制文件备份的存储位置取决于controlfile autobackup 参数的设置。 如果controlfile autobackup 参数被设置为off,控制文件和服务器参数会被包含在数据库备份集中;如果controlfile autobackup 参数被设置为on,控制文件和服务器参数文件就会生成一个独立的控制文件备份。 可以在backup database 命令中加入include current controlfile 子句,迫使RMAN 将控制文件放入数据库备份集。 最好是单独备份控制文件,以确保备份的是当前的控制文件。
五. Backup 命令选项
5.1 压缩
默认情况下,RMAN 执行NULL 数据块压缩。
5.1.1 NULL 控制压缩
使用这种形式的压缩时,Oracle不会备份未使用的数据块。 执行NULL 数据块压缩的情形有一下两种情况:
(1)从未使用过的数据块不被压缩
(2)在给定的特定标准下,使用过一次的数据块也不被备份。
在第一种情况下,将不会备份其中一直没有数据的所有数据块,在第二种情况下,如果数据库和关联的数据库满足某种标准,空块将不被备份,即使它在某个时刻包含数据。 下面是允许RMAN 不备份这些数据块所必须满足的条件:
(1) 将兼容参数设置为10.2
(2) 没有为数据库定义任何有保证的还原点。
(3) 本地管理数据文件
(4) 备份是备份集,并且完全备份或者零级增量备份。
(5) 备份集在磁盘上创建。
如果满足上述条件,Oracle 将不会备份任何未使用的块,并且备份将因此占用磁盘或磁带上较少的空间。
5.1.2 RMAN 备份压缩
RMAN 可以将压缩算法应用于备份集,从而减小RMAN 创建的备份集的大小。 RMAN 压缩可以在很大程度上减小备份集的大小。 有时,压缩可能非常有效。如在测试数据库中,当使用压缩备份时,备份集映像的大小可以减小70%。如果没有配置数据库自动压缩备份集,可以使用 as compressed backupset 参数来创建压缩备份集。 如果已经配置了压缩并且不希望在给定的backup 命令中使用压缩,则只需使用backup as backupset 参数即可。
5.2 标记
可以为Oracle中的每个备份指派一个标记(tag)。标记可应用于完全备份,表空间备份,数据