技术开发 频道

RMAN性能调优


3.2.4 磁盘/磁带缓冲区(Buffers)
    顾名思义,此时的缓冲区为缓冲备份时要传送的数据,目的是为了提升备份的性能。RMAN在备份时使用了两种类型的缓冲区,即磁盘缓冲区和磁带缓冲区。磁盘缓冲区是在读数据及写数据到磁盘备份设备时被使用的,磁带缓冲区是在执行各种磁带IO操作时被使用的。缓冲区的大小决定了单次IO所能传送数据的多少。

3.2.4.1 磁盘缓冲区
   磁盘缓冲区的大小取决于多路复用(Mutiplexing)的级别,对照关系可以参数下表: 
 
Mutiplexing
缓冲区大小
小于或等于4
每一个Buffer大小为1MB,每个数据文件4个Buffer,每个数据文件4MB*一个通道*每个通道4个文件=16M,即单个Channel缓冲区为16MB。
大于4且小于等于8
每个Buffer为512K,每个Channel的总Buffer大小最大为16M。
大于8
RMAN为每个文件分配4个固定的磁盘Buffer,每个Buffer为128K,因此每个文件会有512K的Buffer。
 
具体每个文件被分配了多大的Buffer可以通过如语句查到:
SELECT type, filename, buffer_size, buffer_count, open_time, close_time
FROM v$backup_async_io
ORDER by type, open_time, close_time

3.2.4.2 磁带缓冲区
    当你使用带库作为备份设备,并且分配了SBT通道,Oracle会为每一个通道分配一个Buffer,每个Buffer的大小为256KB,因此每个通道的总Buffer大小为256KB*4=1024KB。
当BACKUP_TYPE_IO_SLAVES初始化数值为TRUE时,磁带缓冲区这段内存空间会从SGA区分配,如果此时也配置了LARGE_POOL_SIZE,那么磁带缓冲区会取自于LARGE POOL。当BACKUP_TYPE_IO_SLAVES初始化数值为FALSE时,磁带缓冲区会从PGA中分配。ORACLE建议这部份空间从LARGE POOL中分配,避免RMAN的IO缓冲区与Library cache的争用问题。

3.2.5 磁带驱动器相关方面
    如果备份的设备是带库,磁带驱动器的多少、性能是影响RMAN的备份性能的一个很重要的因素,因此,关于磁带驱动器如下的几个方面也是很重要的。为表述方面,这时将磁带驱动器简称为带机。

3.2.5.1 本地传送速率
    英文的表达为Native Transfer Speed,说白了就是带机不经过压缩每秒能备份多少数据量,表现的是带机工作性能的上限,或者说最大值。
   不同厂商的带机、不同型号的带机会体现出不同的本地传送速率,例如DLT4000的本地传送速率约为1.5M/秒,而到DLT7000就达到了约5M/秒,DLT8000会有6M/秒。到现在LTO3已经成了主流,LTO2的本地传送速率为35M/秒,LTO3已经上升到了80M/秒。

3.2.5.2 磁带压缩
    磁带压缩这一项对于备份的性能也是很重要的,如果有一个很好的压缩比就隐性的表明了带机更快的备份能力,以LTO2的35M为例,通常LTO的压缩比为2.3:1,此时带机便有80M/秒的备份能力。当然压缩比取决于不同厂商不同的算法,具体多少在设备的白皮书会有说明。

3.2.5.3 磁带streaming
    没想好一个确切的词来表述streaming含义,有的书翻译成“数据流”,个人觉得这个词也不太恰当。Oracle用streaming这个词想表达的是带机不间断的将要备份的数据写到磁带。只所说谈及streaming是因为带机基本上是以固定的速度写数据,而当读出要备份数据的速度不及写的速度时,势必带机要停一会,然后重新启动,重新定位写入头,这些都会显著影响到RMAN备份操作总的性能。非streaming的问题经常会发现在增量备份及要备份的文件有大量的空块的情况下,在下面优化的部分还会说到这方面优化的问题。需要说明的是现在的带机通过配置大的内部缓存,在streaming方面都有了很大的改善,出现问题的机率已经很小了。

3.2.5.4 物理磁带块大小
    物理磁带块大小表达的是介质管理软件一次写操作写入的数据量,这一项在实际RMAN优化中很重要,也经常用到。通常说来,大的物理磁带块大小会带来快的备份速度。不过需要注意的是,物理磁带块大小并不是受RMAN或是Oracle服务器控制,它取决于介质管理软件。加大物理磁带块大小对于改善3.2.5.3所提及的非streaming问题也很有帮助。

3.2.6 介质管理软件
    上面几次提到了介质管理软件这个词,当说名词可能还有些模糊。当我们说Legato 的Networker软件、Veritas的NetBackup软件、HP的Data protector软件及Backbone等这些软件都是介质管理软件时你就明白它是什么东西了。Oracle并不直接与带库打交道,管理磁带、调动机械手等等这些介质管理工作都是由介质管理软件来完成的,Oracle通过介质管理软件提供的接口(MML)完成读、写及管理备份数据等操作。
0
相关文章