二. 调整RMAN

即装即用的RMAN运行也是相当稳定的, 不过还是可以调整RMAN以达到更佳的选择。

1、调整RMAN设置

(1)并行通道设置

在调整数据库备份时可能施加的最大影响是使用多个RMAN通道并行化这些数据库备份。 通常我们要为备份数据的每个设备都配置一个通道。 因此,如果要在3个不同的磁盘上备份数据,就需要配置3个不同的通道。 在同一个设备上很少存在并行化的备份操作,如果在window系统上存在D和E两个驱动器,并且这个两个驱动器是同一个磁盘的不同分区,那么在这两个驱动器上执行并行化的备份操作并不能提高速度。

为备份分配多个通常可以实现备份操的并行化,使用configure命令可以为通道配置默认值,以及决定使用多少个默认并行级别。

如,要在两个磁带设备上备份数据,就可以配置两个默认的通道和一个默认的并行级别:

Configure device type disk parallelism 2;

Configure channel 1 device type sbt format parms 'ENV=(NB_ORA_CLASS=RMAN_ORCL)';

Configure channel 2 device type sbt format parms 'ENV=(NB_ORA_CLASS=RMAN_ORCL)';

这几条命令将确保每条backup 或 recover 命令都自动分配两个通道来并行化备份或恢复进程。

根据使用的设备,还可以在磁盘上运行并行的数据流。调整备份多路复用会显着地影响备份和恢复性能,通常,只要不会导致来回的磁盘交换,内存越大,性能就会越佳。 适当地配置多路复用会更有效地在磁带设备上传递数据流,为RMAN 分配的内存越大,I/O设备上传输的数据就越多。 对于新型的磁带驱动器,磁带数据流不在是一个问题,因为新的磁带驱动器通常使用大量的缓冲区内存以确保以不变的速率在磁带上写入数据。


(2) RMAN 多路复用

多路复用(multiplexing)允许使用单个RMAN通道在备份进程期间并行读取数据库数据文件,并且将这些数据文件的内容写入同一个备份集片。 因此,一个备份集片可能包含了许多不同数据文件的内容。

注意的是,某个特定数据文件的内容可以驻留在多个备份集片中。 不过在某个特定的备份中,只能通过一个通道或备份集备份一个数据文件。 因此,如果分配了两个通道(这样就具有两个备份集),并且数据库由一个大型数据文件组成,RMAN 并行备份这个数据文件的能力会受到很大的限制。

RMAN的多路复用级别由下列两个参数中较小的参数决定。 第一个参数是filesperset,才参数在执行backup命令时确定;第二个参数是maxopenfiles,该参数在分配通道时确定。

Filesperset 参数确定每个备份集所包含的数据文件个数。 一个备份集中的数据文件个数应当小于等于filesperset参数值。 执行备份操作时,RMAN 会为filesperset参数指派一个默认值, 这个默认值是64,也可以输入文件数除以分配通道数的结果(取较小值)。 可以通过执行带有filesperset 参数命令来使用非默认的filesperset 参数值, 如:

Backup database filesperset 4;

Maxopenfiles 参数确定RMAN能够并行读取的数据文件个数(默认值是8),该参数是基于每个通道来确定的。 如:

Configure channel 1 device type disk maxopenfiles 3 format  'D:/backup'

如果在多个磁盘上分块备份数据,就不需要多路复用备份操作,并且可以将maxopenfiles 参数设置为1. 如果在很少的几个磁盘上分块备份数据,可以考虑将maxopenfiles参数设置为4到8之间的值。 如果不需要分块备份数据,通常应当将maxopenfiles参数设置为8以上的值。

多路复用与filesperset参数和maxopenfiles 参数的使用能够显着地影响(改善或恶化)备份操作的性能。 只要系统在多路复用期间具备并行操作的能力,调整RMAN的多路复用就可以节省备份操作所花费的时间。 但如果并行度过高,也会增加系统的负担,降低备份操作的性能。

多路复用也会影响磁带操作。 由于磁带系统是流设备,所以为了不断地写入数据,保持流入设备的数据流速度非常重要。 通常,一旦输入磁带的数据流出现延迟,这个磁带设备在下一个写操作前停止写操作,并且重新定位写入的头,这样就会显着地影响备份操作的总性能。 通常将filesperset参数设置为较大值和将maxopenfiles参数设置为较小值,这样可以调整备份数据更有效地流入磁带设备。 当然,也不能太极端,以为I/O通道或CPU 不支持RMAN提供的数据流量。


(3)控制RMAN操作的整体影响

有些时候,我们需要减低RMAN 读写数据的速度。 在10g之前,我们可以使用RMAN 的rate 和 readrate 来抑制RMAN读写数据的速度,释放系统资源以用于其他操作。

在10g之后,可以在backup命令中使用duration参数来控制备份的持续时间。 Duration 参数有一个额外的关键字 minimize  load,该关键字用于指示RMAN 最小化在给定持续时间内备份数据库所需的I/O负载。

如,如果一个备份需要花费5个小时,占用90%的I/O,则可以指示RMAN,使用10个小时持续时间。 当minimize load 参数指示这一点时,就可以使用45%到50%的可用I/O。

Backup as copy database duration 10:00 minimize load database;

该命令让备份运行10个小时。 当然使用duration 参数的实际备份时间可能超过10个小时。 任何完整的备份集都可以用于恢复,即使备份进程由于持续时间导致的问题而失败。 在超出持续时间并且备份失败时,我们可以使用partial 关键字取消RMAN 错误。

使用duration 参数时,包含最老备份的数据文件比包含日期最新RMAN备份的数据文件具有更高的优先级。 比如,备份20个数据文件,若在备份完10个后失败,那么下次备份从没有备份的那10个数据文件开始备份。


2、调整MML 层

对于MML 备份设备来说,需要考虑很多问题。 许多MML备份设备是在异步模式中运行的,但是如果MML 备份设备不在异步模式中运行,就会带来很大的问题。另外,DBA偶尔会在为备份分配通道时设置rate 参数,由于这些人为地导致性能瓶颈问题,所以我们通常不执行这样的操作。

一些MML供应商提供了多种可配置的参数,我们可以在供应商指定的参数文件中配置这些参数,这些参数文件为用户提供了各种调整的可能性。

与MML层有关的因素有:所有备份设备的传输速率,压缩率,数据流和数据块大小。 我们必须了解这些因素,以便更好的调整RMAN 备份性能。



oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html