RMAN性能优化全攻略(二)

2014-11-24 16:55:54 · 作者: · 浏览: 1
口写到备份设备
Oracle推荐设置合理的Large pool,让RMAN的buffer出自Large pool
③ SQL的优化
不好的SQL耗用IO,耗用cache等各种数据库资源
这会让RMAN可用资源减小
④ 备份策略的调整
在业务的不繁忙期进行备份,同时做好全、增量备份的设置工作
比如DG环境,全备份完全可以从Standby结点来做,在不影响业务的同时也保证了备份的速度
Rac环境可以从两个结点同时来备份增加读的速度
⑵ 战术上
① 并行通道(Channel Parallelism)
RMAN的备份、恢复的操作是通过通道(Channel)来完成的
Channel在数据库服务器的体现是一个Server进程
当RMAN分配一个Channel时,它即建立了一个到数据库实例的连接
多个Channel可以相互独立的完成备份、恢复的操作
因而活动通道数即并行通道数,简而言之为并行通道
② 多路复用(Mutiplexing)
多路复用的目的是为了加快备份时自磁盘读数据的性能,其针对的是单个channel
当单个通道在备份时,它从多个数据文件同时读取数据,然后写到同一个backupset中
这样的操作模式我们称之为多路复用
多路复用级别的多少取决于三个因素:
● FILESPERSET参数
● MAXOPENFILES参数
● 通道读取的文件数
例如我的库有100个数据文件,FILESPERSET参数为12,MAXOPENFILES参数为10
那么多路复用级别=min(min(100,12),10)=10
③ 同/异步IO
如下以备份到带库简单描述、比较一下在同异/步备份时数据流传送的过程:
④ 磁盘/磁带缓冲区(Buffers)
缓冲区的大小决定了单次IO所能传送数据的多少
Ⅰ 磁盘缓冲区
磁盘缓冲区的大小取决于多路复用(Mutiplexing)的级别,对照关系可以参数下表:
具体每个文件被分配了多大的Buffer可以通过如语句查到:
[sql]
sys@ORCL> ed
Wrote file afiedt.buf
1 SELECT type, filename, buffer_size, buffer_count, open_time, close_time
2 FROM v$backup_async_io
3* ORDER by type, open_time, close_time
Ⅱ 磁带缓冲区
当你使用带库作为备份设备,并且分配了SBT通道,Oracle会为每一个通道分配一个Buffer
当BACKUP_TYPE_IO_SLAVES初始化数值为TRUE时,磁带缓冲区这段内存空间会从SGA区分配
当BACKUP_TYPE_IO_SLAVES初始化数值为FALSE时,磁带缓冲区会从PGA中分配
ORACLE建议这部份空间从LARGE POOL中分配,避免RMAN的IO缓冲区与Library cache的争用问题
⑤ 磁带自身的情况
每家厂商每种产品的带机都有其利弊
㈢ 提升备份的性能
① 分配合理的并行通道数
实际测试表明,如果备份设备是带库,并行通道数等于带库中带机的数会达到最佳的性能
很少的情况也是一个带机分配2或3个通道达到最佳性能的状况
需要注意的是,如果并行通道数多于带机数,会出现Backupset在多盘磁带混合存放的情况
因而会影响到恢复的速度
如果备份到磁盘,并行通道数等于磁盘子系统的数量时会达到最佳的性能
磁盘子系统数量指的是输出设备跨几块磁盘
例如磁盘子系统分布在3块物理硬盘上,则应分配3个通道
并行通道设置起来很简单,以配置2个并行通道举例如下:
[sql]
CONFIGURE DEVICE TYPE SBT_TAPE PARALLELISM 2;
CONFIGURE CHANNEL 1 DEVICE TYPE 'SBT_TAPE' PARMS 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';
CONFIGURE CHANNEL 2 DEVICE TYPE 'SBT_TAPE' PARMS 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';
② 确定合理的“多路复用”数
从实际的测试及Oracle的建议来看,多路复用设置的规则为:
如果要备份的所有磁盘或数据文件很好的做了条带(stripe),多路复用处就不大了,可以将多路复用级别设为1或者2
如果磁盘没有做条带,多路复用应当设一个8之下的一个值
大于8的值常用在备份有很多空块的文件或在做增量备份时
③ 使用异步IO
默认的情况下,当RMAN备份到磁带时使用的是同步IO
同步IO在一个时点只能执行一次操作,此时的备份性能一定是很糟的
而异步IO一个时点可以做多次操作,更好的填充写缓冲区,保证磁带的streaming
对于支持本地异步IO的系统,启用比较简单,BACKUP_TAPE_IO_SLAVES这个初始化参数设为TRUE就可以了
④ 当备份设备为带库时,以BLKSIZE参数调整磁带缓冲区
当备到磁带时,这是改善RMAN备份性能很重要的一项
RMAN通道的BLKSIZE参数确定了磁带缓冲区的大小
实际的测试及Oracle的建议都表明磁带缓冲区至少应为256K
如果你的磁带备份出现了Not Streaming问题,经过检查发现问题的并不是出现在备份空文件及做增量备份上
你可以尝试调整BLKSIZE参数来改变磁带缓冲区,Not Streaming会有改善
改变B