当前位置:   article > 正文

ORACLE RAC ASM磁盘规划

oracle rac asm

 

 基于ASM冗余设计架构实现的数据库双活方案,如何规划ASM?

ASM使用独特的镜像算法:不镜像磁盘,而是镜像盘区。作为结果,为了在产生故障时提供连续的保护,只需要磁盘组中的空间容量,而不需要预备一个热备(hot spare)磁盘。不建议用户创建不同尺寸的故障组,因为这将会导致在分配辅助盘区时产生问题。ASM将文件的主盘区分配给磁盘组中的一个磁盘时,它会将该盘区的镜像副本分配给磁盘组中的另一个磁盘。给定磁盘上的主盘区将在磁盘组中的某个伙伴磁盘上具有各自的镜像盘区。ASM确保主盘区和其镜像副本不会驻留在相同的故障组中。

磁盘组的冗余可以有如下的形式:双向镜像文件(至少需要两个故障组)的普通冗余(默认冗余)和使用三向镜像(至少需要3个故障组)提供较高保护程度的高冗余。 一旦创建磁盘组,就不可以改变它的冗余级别。为了改变磁盘组的冗余,必须创建具有适当冗余的另一个磁盘组,然后必须使用RMAN还原或DBMS_FILE_TRANSFER将数据文件移动到这个新创建的磁盘组。三种不同的冗余方式如下:

1、 外部冗余(external redundancy):表示Oracle不帮你管理镜像,功能由外部存储系统实现,比如通过RAID技术;有效磁盘空间是所有磁盘设备空间的大小之和。

2、 默认冗余(normal redundancy):表示Oracle提供2份镜像来保护数据,有效磁盘空间是所有磁盘设备大小之和的1/2 (使用最多)

3、 高度冗余(high redundancy):表示Oracle提供3份镜像来保护数据,以提高性能和数据的安全,最少需要三块磁盘(三个failure group);有效磁盘空间是所有磁盘设备大小之和的1/3,虽然冗余级别高了,但是硬件的代价也最高。

至于如何选择,不言而喻。

一个简单的案例:

A中心存储的LUN在系统上看到的设备文件名叫: hdisk1,hdisk2,100G hdisk3,hdisk4,20G, hdisk5,1G

B中心存储的LUN在系统上看到的设备文件名叫: hdisk6,hdisk7,100G hdisk8,hdisk9,20G, hdisk10,1G

仲裁中心的LUN在系统上看到的文件名叫:hdisk11,1G

DATA磁盘组: 规划两个failuregroup: 
failuregroup1=(hdisk1,hdisk2) failuregroup2=(hdisk6,hdisk7)
策略=n

ormal

FRA磁盘组:规划两个failuregroup:
failuregroup1=(hdisk3,hdisk4) failuregroup2=(hdisk8,hdisk9)
策略=normal

OCR磁盘组:
hdisk5,hdisk10,hdisk11

ASM磁盘组规划

(1)磁盘组相关

除了OCR磁盘组之外,一般建议建立磁盘组不超过2个,一个是存放数据的数据磁盘组(+DATA),另外一个是存放日志的闪回区磁盘组(+FRA)。假设我们选择磁盘组的冗余策略为Normal,那么建议磁盘数目为偶数个并且至少为4个相同大小相同性能配置,一方面考虑到冗余为2份,另外一方面保障Failure Group里面数目的条带化分布,可以保障磁盘组的读写性能。如果是其他冗余策略,那么按照同样的思路去选择磁盘组的数目。另外Lun的大小不能超过2T(容易引起ORA-15196、ORA-15099问题)。

(2)磁盘分配单元及文件条带

AU是ASM Disk Group磁盘空间分配单元。Strip实际上是文件层面的条带,准确说法应该是文件的扩展块儿。对于文件的扩展块儿来讲就是文件切割的单元。它有两种模式(coarse & fine)。对于coarse模式来讲,扩展块儿大小等于AU大小,对应的参数固定不变(_asm_stripesize=AU,_asm_stripewidth=1)。对于fine模式来讲,扩展块儿大小是可以进行调整,根据我们的业务需求进行适当调整。例如设置为256K,那么原来1M的文件写在一个磁盘中的AU中,那么现在可以并行写入到赐个磁盘的4个AU当中。充分发挥了小IO的并行读写性能。但是对于某些大IO的数据库业务,那么AU可以适当调整到4M,同时启用操作系统的大页读写参数。文件扩展块儿可以保持corse模式。对于一般的OLTP业务来讲,数据文件、归档文件一般设置为corse;而redo日志、控制文件、flashback日志设置为fine。对于11g之后的oracle,这些参数基本不需要我们去主动调整,除非确实有性能问题与之相关。

 

2.5 ASM内存管理参数

(1)内存参数相关

 db_cache_size: 缓冲区,存放metadata块儿的buffer cache,建议值为64M。

 shared_pool: 管理ASM实例所需要的内存池,建议值为128M。

 Large_pool: 用来存储 extent maps,建议值为64M。

(2)其他参数相关

在11g当中,如果多个数据库共享ASM实例的话,那么建议按照以下规则计算process的数目设置。

ASM processes = 25 + (10 &

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/1005897
推荐阅读
相关标签
  

闽ICP备14008679号