oracle rebalance参数,深入内核:Asm Rebalance 原理 SHAPE

zz/2023/6/4 15:40:57

深入内核:Asm Rebalance 原理SHAPE \* MERGEFORMAT

编辑手记:ASM Rebalance 的过程具体发生了什么操作呢,在不同版本间有什么样的区别,如何才能加快 Rebalance 的速度呢,本文将会解答你的困惑

我们先看一个例子

某客户进行存储扩容(11gR2 rac asm),扩容完成之后,我们需要将新划的lun加到现有的 asm diskgroup 中.整个扩容过程比较顺利,唯一让人比较郁闷的是在将一个 lun 加到 diskgroup时,时间太长。这个lun大小也就300gb,整个数据库数据也就不到100gb,add disk

rebalance需要花了3.5小时. 如下是操作节点的 alert log 信息 :

可以看到,从03:10:25开始到06:41:25 才完成整个 rebalance 过程,也就是3小时31分钟.

到这里大家或许跟我一样,有一个疑问,那就是 oracle asm 的 rebalance 操作,具体包含了哪些细节? 或者说 rebalance 操作需要做哪些事情 ?回答这个问题之前,首先我们需要明白,asm 在什么情况下进行 rebalance 操作.

实际上,rebalance 主要是在 diskgroup 中 disk member 发现变化时,比如 add/drop/resize

disk 操作.不同的 oracle 版本,其实rebalance 操作是有所差异的,在10g版本中,asm rebalance主要包含如下2个操作:

—planning

—extent relocatyion

然而在oracle 11.1版本中,引入了 asm fast rebalance 特性,大概是是说可以将 asm 实例启动到 Restricted mode 然后去完成 rebalance 操作。例如:

这一操作,在11.2中又有所变化,引入了一个 compact 操作,所谓 compact 操作,其实就是数据重组。 也就是说在11.2版本中,rebalance 操作应该包含如下几个步骤了:

1) planning

2) extent relocation

3) compacting

这里针对这几个步骤简单描述一下:

planning: 也就是说 oracle 会自己计算,绝对需要将那些 extent 进行 relocation 以及需要move 到什么地方去,应该也是用的 hash 算法.

extent

relocation:这个其实是根据前面 planning 的结果,将数据按照 extent 为单位进行move,移动到其他的 disk 上,均匀分布。我们称呼这个操作为 extent

relocation。一般来讲,这个操作是非常耗时的,也就是说整个 rebalance 操作中基本上时间大多的消耗在 relocation 这一步。当进行 extent

relocation 的时候,观察 rbal 的 log 会发现类似如下的信息:

在进行 extent

relocation 的阶段,是可以进行并行操作的,该操作是通过我们所熟知的一个参数 asm_power_limit

来进行控制。该参数在11.2.0.2以下版本中,其取值范围是0~11. 在11.2.0.2以及以上版本取值范围已经扩展为0~1024了.该参数控制rbal的 slave process 个数,换句话将,通常参数越大 rebalance 操作也就越快,当然这样也要看系统硬件配置.

另外有一点需要注意的是,rbal的slave process 的可以动态调整的,例如:

alter diskgroup

diskgroup_name rebalance power 5;需要注意的是,哪怕是你 alter diskgroup

add disk 命令已经发出了,也可以使用上面的方式来动态调整 rebalance power 值.

当rebalance power 值大于1后,oracle 会启动多个 rbal salve process 类似rba,rba1这样的命名.

这部分的消耗时间可以通过v$asm_operation.est_minutes

来进行估算,但是这个值不一定准确,受cpu,io等因素的影响。

compacting: 这个操作是11gR2引入的一个未公布的特性,其目的是在前面 extent

relocation完成之后,oracle 将 diskgroup 中都的每个 disk 中的数据进行重组。这里的重组其实是 disk 级别,不再是整个 diskgroup 级别. 其目的是将数据尽可能的挪到 disk 的外圈,这样可以加快访问,为什么可以加快访问? 这样可以降低 disk 寻道时间.

关于该特性,11gR2版本中引入了1个参数来进行控制:_disable_rebalance_compact

我们可要通过动态调整该参数来关闭这个特性,当rebalance进行到这个步骤时,查询v$asm_operation.est_minutes会显示为0.这也就是为什么我们上次看到est_minutes为0了,rebalance 操作却还没有完成,还进行了1.5小时.

那么最后大家可能比较关心的是,如何加快asm rebalance的速度,大概有如下几种方法:

1) 调大 asm_power_limit 参数

2) 将参数

_disable_rebalance_compact 设置为 true,可动态调整

3) 设置 diskgroup 的 attributes 属性:_REBALANCE_COMPACT=false

4) 将参数

_asm_imbalance_tolerance 调的更低(11gR2默认为3%)

4) 调整参数 _disable_rebalance_space_check,关闭 compact 过程中的 space use 检查.

5) 调大 _asm_rebalance_plan_size 参数,该参数控制 maximum

rebalance work unit,通过调大该参数应该可以降低 extent

relocation 的次数,但是这个也受限于系统的 io 能力.

最后说明一下,对于生产环境而言,大多数情况下建议调大

asm_powner_limit 即可,其他几个隐含参数要慎重,可能碰到 bug.

http://www.ngui.cc/zz/2389887.html

相关文章

HDFS的Rebalance功能

HDFS中的数据按照一定策略分布在集群中的多个数据节点上,但在某些情况下,数据的分布也会出现不均衡的情况,比如说集群新增加了节点,在新增加的节点上就没有数据存在,虽说之后新增的数据会分配到新节点上,不…

kafka的rebalance

rebalance的出现 订阅Topic的分区数发生变化 简单地说,就是之前 topic 有 10 个分区,现在变成了 20 个,那么多出来的 10 个分区的数据就没人消费了。那么此时就需要进行重平衡,将新增的 10 个分区分给消费组内的消费者进行消费。…

hadoop rebalance

之前一直没做过rebalance,以为速度很快,结果大意了,等到磁盘达到90%的时候,才开始做rebalance。 默认的从日志中可以看到总共需要迁移1.89T,但是每次只移动40G大小的量。 然后查看40G的数据量从15:45分到15:48分&#…

【Kafka】Kafka的Rebalance机制可能造成的影响及解决方案

一、kafka的rebalance机制在Kafka中,当有新消费者加入或者订阅的Topic数发生变化时,会触发Rebalance(再均衡:在同一个消费者组当中,分区的所有权从一个消费者转移到另外一个消费者)机制,Rebalance顾名思义就是重新均衡…

第6章 Rebalance详解

rebalance本质是一种协议,规定了一个consumer group下的所有consumer如何达成一致来分配订阅的topic的每个分区。比如某个group下有20个consumer,它订阅了一个具有100个分区的topic。正常情况下,Kafka平均会为每个consumer分配5个分区。这个分…

电话机器人核心技术之NLP

什么是NLPNLP是神经语言程序学 (Neuro-Linguistic Programming) 的英文缩写; NLP译为“身心语法程式学”或“神经语言程序学”。N(Neuro)指神经系统,意译为身心。指我们比较稳定的身心素质,结构及比较逸动的身心状态。L&#xff0…

产品用户-缩写

tts : text to speech 语音合成 IVR:(Interactive Voice Response)即互动式语音应答,您只须用电话即可进入服务中心,可以根据操作提示收听手机娱乐产品,也可以根据用户输入的内容播放有关的信息。 CTI:一般指计算机电…

java 常用缩写简表_java 常用缩写

java EE -->Java Platform Enterprise Edition //平台企业版此版本中主要包括如下技术:EJB 3.0、Java Persistance Architecture (JPA)、Web 服务、JAX-WS。.包含J2SE 中的类,并且还包含用于开发企业级应用的类。比如:EJB、servlet、JS…

Android--控件的单位(px,pt,dp,sp)

px:代表像素,即在屏幕中可显示的最小单位元素,应用程序中任何控件都是由一个像素点组成的,分辨率越高的手机,屏幕的像素点就越多。因此,如果使用px控制控件的大小,在分辨率不同的手机控件显示的…

web前端常用长度单位(px,em,rem,pt)

px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。 em是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸,最初是指字母M的宽度&…