五. 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)。标记可应用于完全备份,表空间备份,数据文件备份,增量备份甚至备份副本。 示例如下:
Backup database tag='TEST';
需要注意的是:使用了tag 参数来标记这个完全备份。每个标记都应当是唯一的,如果没有指定一个命名约定,RMAN 就会使用默认约定为每个备份集
分配一个标记。 相同的标记可以应用与多个备份,并且默认情况下只还原最新的备份。
5.3 限定备份的影响
为了帮助减少RMAN备份对其他进程的整体I/0影响,RMAN提供了backup命令的duration 参数。 Duration 参数类似与闹钟,如果备份运行时间超过指
定的持续时间,RMAN将取消备份。 如:
Backup duration 00:30 database;
注意事项: 不可以使用backup database plus archivelog命令。 Duration 参数也可以用来抑制备份。 当定义持续时间时,可以让RMAN 使以下因
素之一最小化:
(1)备份运行时间
(2)备份使用的I/0 负载
如果尝试最小化备份运行时间,RMAN 将预先全速备份。 这是默认设置。 使用默认的minimize time 参数的另一个特性是,RMAN 将区分备份的数据
文件的优先级。 最近备份的数据文件具有较低的优先级,而较早备份的数据文件具有较高的优先级。
也可以让RMAN 尝试将备份的I/O 操作分布到持续时间内的各个时间点上,从而消除备份对系统的整体影响。
Backup duration 00:30 minimize time database;
Backup duration 00:30 minimize time database;
使用duration 参数,可以指示RMAN如何处理超出backup duration时间限制的备份。 当使用partial 参数时,如果备份因为超出duration 参数的持
续时间而终止,RMAN 不会将其作为失败的备份进行处理。 因此,任何run 代码块中的剩余命令将继续执行。 因此,如果接下来还有backup 命令,
例如归档的重做日志备份,使用这个参数就会很方便。 无论partial 参数的设置是什么,机制整个备份过程没有完成,Oracle 也会将成功完成的备
份集认为是可用的。
5.4 限定备份集大小
Backup database maxsetsize=50m tag='TEST';
在这个示例中,我们设定备份集的大小不超过50mb。 如果磁带的大小有限制,或者磁盘只能处理一定大小的数据文件,是哦那个这个参数就非常方便
。 Oracle 将备份分成多个备份集,每个备份集都不会超出所定义的maxsetsize参数值。
但是maxsetsize 参数限制了单个备份集的总大小。 因此,如果备份集中的数据文件大小超过了定义的限定范围,备份操作就会失败。因此使用该参
数要特别小心。
有时,也可以使用allocate channel 命令的maxpiecesize 参数来完成这个操作。 也可用configure 命令创建备份集大小的默认限定值和备份大小的
限定值。
5.5 修改备份集的保存策略
我们可以使用keep 参数来重写默认的保存策略。
Backup database keep forever;
Backup database keep until time='sysdate+180';
在第一条语句中,会永远保存备份,第二条语句中,只保存180天。
5.6 重写configure exclude 命令
通过执行configure exclude 命令可以配置RMAN,排除上一次备份以来没有发生变化的数据文件。 如果要确保RMAN 备份这些数据文件,可以在下面
的backup 命令中添加noexclude 参数:
Backup database noexclude keep forever tag='TEST';
5.7 使用backup 命令检查数据库的错误
RMAN 不需要执行备份操作就可以扫描数据库的物理错误和逻辑错误。 使用backup 命令的validate 参数可以实现这个功能。 如:
Backup validate database;
5.8 跳过脱机的,不可读取的或者只读的数据文件
有时候,数据库中的数据文件可能处于Online 以外的状态,如果数据文件是只读的,在备份数据库时可能不要每次都备份这些只读的数据文件。 如
果数据文件是脱机的或者不可存取的,假如没有执行特别的操作来指示RMAN跳过这些缺少的数据文件,RMAN 备份操作就会失败。 因此需要使用skip