热卖商品
新闻详情
...diskgroup asm rebalance 原理_Oracle ASM_Oracle研究中心
来自 : www.oracleplus.net/arch/14...h
发布时间:2021-03-24
【案例】Oracle ASM扩展新LAN加入asm diskgroup asm rebalance 原理
本站文章除注明转载外,均为本站原创: 转载自love wife love life Roger 的Oracle技术博客
本文链接地址: asm rebalance 原理
上周6,某客户进行存储扩容(11gR2 rac asm),扩容完成之后,我们需要将新划的lun加到现有的asm diskgroup中.
整个扩容过程比较顺利,唯一让人比较郁闷的是在将一个lun加到diskgroup时,时间太长。这个lun大小也就300gb,
整个数据库数据也就不到100gb,add disk rebalance需要花了3.5小时. 如下是操作节点的alert log信息 :
SQL alter diskgroup DATADG add disk /dev/rhdisk5 rebalance power 5 wait
NOTE: Assigning number (2,1) to disk (/dev/rhdisk5)
NOTE: requesting all-instance membership refresh for group=2
Sat Aug 03 03:10:25 2013
NOTE: initializing header on grp 2 disk DATADG_0001
NOTE: cache opening disk 1 of grp 2: DATADG_0001 path:/dev/rhdisk5
NOTE: requesting all-instance disk validation for group=2
Sat Aug 03 03:10:25 2013
NOTE: disk validation pending for group 2/0xc51feed1 (DATADG)
SUCCESS: validated disks for 2/0xc51feed1 (DATADG)
Sat Aug 03 03:10:38 2013
NOTE: initiating PST update: grp = 2
kfdp_update(): 13
Sat Aug 03 03:10:38 2013
kfdp_updateBg(): 13
NOTE: PST update grp = 2 completed successfully
Sat Aug 03 03:10:39 2013
NOTE: membership refresh pending for group 2/0xc51feed1 (DATADG)
kfdp_query(DATADG): 14
kfdp_queryBg(): 14
kfdp_query(DATADG): 15
kfdp_queryBg(): 15
SUCCESS: refreshed membership for 2/0xc51feed1 (DATADG)
NOTE: starting rebalance of group 2/0xc51feed1 (DATADG) at power 5
Starting background process ARB0
Starting background process ARB1
Sat Aug 03 03:10:43 2013
ARB0 started with pid=29, OS id=270748
Starting background process ARB2
Sat Aug 03 03:10:43 2013
ARB1 started with pid=30, OS id=1310820
Starting background process ARB3
Sat Aug 03 03:10:43 2013
ARB4 started with pid=33, OS id=1216590
NOTE: assigning ARB1 to group 2/0xc51feed1 (DATADG)
NOTE: assigning ARB2 to group 2/0xc51feed1 (DATADG)
NOTE: assigning ARB3 to group 2/0xc51feed1 (DATADG)
NOTE: assigning ARB4 to group 2/0xc51feed1 (DATADG)
Sat Aug 03 05:07:48 2013
NOTE: stopping process ARB2
NOTE: stopping process ARB3
NOTE: stopping process ARB4
NOTE: stopping process ARB1
Sat Aug 03 06:41:13 2013
NOTE: stopping process ARB0
SUCCESS: rebalance completed for group 2/0xc51feed1 (DATADG)
Sat Aug 03 06:41:15 2013
NOTE: GroupBlock outside rolling migration privileged region
NOTE: requesting all-instance membership refresh for group=2
NOTE: initiating PST update: grp = 2
kfdp_update(): 16
Sat Aug 03 06:41:19 2013
kfdp_updateBg(): 16
NOTE: PST update grp = 2 completed successfully
NOTE: initiating PST update: grp = 2
kfdp_update(): 17
kfdp_updateBg(): 17
NOTE: PST update grp = 2 completed successfully
NOTE: membership refresh pending for group 2/0xc51feed1 (DATADG)
Sat Aug 03 06:41:24 2013
kfdp_query(DATADG): 18
kfdp_queryBg(): 18
SUCCESS: refreshed memberOracleоship for 2/0xc51feed1 (DATADG)
Sat Aug 03 06:41:25 2013
SUCCESS: alter diskgroup DATADG add disk /dev/rhdisk5 rebalance power 5 wait
可以看到,从03:10:25开始到06:41:25 才完成整个rebalance过程,也就是3小时31分钟.
到这里大家或许跟我一样,有一个疑问,那就是oracle asm 的rebalance 操作,具体包含了哪些细节? 或者说rebalance操作需要做哪些事情 ?
回答这个问题之前,首先我们需要明白,asm 在什么情况下进行rebalance操作.
实际上,rebalance主要是在diskgroup中disk member发现变化时,比如add/drop/resize disk操作.
那么,asm diskgroup的rebalance操作,到底需要做什么呢 ?或者说包含了哪些步骤 ?
不同的oracle 版本,其实rebalance操作是有所差异的,在10g版本中,asm rebalance主要包含如下2个操作:
planning
extent relocatyion
然而在oracle 11.1版本中,引入了asm fast rebalance特性,大概是是说可以将asm实例启动到Restricted mode然后去完成rebalance操作。
例如:
SQL startup RESTRICT;
ASM instance started
Total System Global Area 92065792 bytes
Fixed SIZE 1297984 bytes
Variable SIZE 65601984 bytes
ASM Cache 25165824 bytes
SQL ALTER diskgroup data1 mount restricted;
Diskgroup altered.
SQL ALTER diskgroup data1 rebalance;
Diskgroup altered.
这一操作,在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会发现类似如下的信息:
*** 2013-08-03 03:11:09.824
ARB0 relocating file +DATADG.259.720462059 (120 entries)
*** 2013-08-03 03:13:21.610
ARB0 relocating file +DATADG.260.720462079 (120 entries)
*** 2013-08-03 03:15:12.632
ARB0 relocating file +DATADG.260.720462079 (120 entries)
*** 2013-08-03 03:16:59.255
ARB0 relocating file +DATADG.261.720462095 (1 entries)
。。。。。。。
。。。。。。。
*** 2013-08-03 05:07:19.041
ARB4 relocating file +DATADG.287.763989695 (120 entries)
*** 2013-08-03 05:07:32.945
ARB4 relocating file +DATADG.287.763989695 (120 entries)
在进行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.
时间:2016-12-22 11:22来源:Oracle研究中心作者:网络点击:次
天萃荷净Oracle研究中心案例分析:运维DBA反映Oracle数据库的ASM空间不足,需要扩展。通过划新的LAN加入asm diskgroup并分析asm rebalance 原理。本站文章除注明转载外,均为本站原创: 转载自love wife love life Roger 的Oracle技术博客
本文链接地址: asm rebalance 原理
上周6,某客户进行存储扩容(11gR2 rac asm),扩容完成之后,我们需要将新划的lun加到现有的asm diskgroup中.
整个扩容过程比较顺利,唯一让人比较郁闷的是在将一个lun加到diskgroup时,时间太长。这个lun大小也就300gb,
整个数据库数据也就不到100gb,add disk rebalance需要花了3.5小时. 如下是操作节点的alert log信息 :
SQL alter diskgroup DATADG add disk /dev/rhdisk5 rebalance power 5 wait
NOTE: Assigning number (2,1) to disk (/dev/rhdisk5)
NOTE: requesting all-instance membership refresh for group=2
Sat Aug 03 03:10:25 2013
NOTE: initializing header on grp 2 disk DATADG_0001
NOTE: cache opening disk 1 of grp 2: DATADG_0001 path:/dev/rhdisk5
NOTE: requesting all-instance disk validation for group=2
Sat Aug 03 03:10:25 2013
NOTE: disk validation pending for group 2/0xc51feed1 (DATADG)
SUCCESS: validated disks for 2/0xc51feed1 (DATADG)
Sat Aug 03 03:10:38 2013
NOTE: initiating PST update: grp = 2
kfdp_update(): 13
Sat Aug 03 03:10:38 2013
kfdp_updateBg(): 13
NOTE: PST update grp = 2 completed successfully
Sat Aug 03 03:10:39 2013
NOTE: membership refresh pending for group 2/0xc51feed1 (DATADG)
kfdp_query(DATADG): 14
kfdp_queryBg(): 14
kfdp_query(DATADG): 15
kfdp_queryBg(): 15
SUCCESS: refreshed membership for 2/0xc51feed1 (DATADG)
NOTE: starting rebalance of group 2/0xc51feed1 (DATADG) at power 5
Starting background process ARB0
Starting background process ARB1
Sat Aug 03 03:10:43 2013
ARB0 started with pid=29, OS id=270748
Starting background process ARB2
Sat Aug 03 03:10:43 2013
ARB1 started with pid=30, OS id=1310820
Starting background process ARB3
Sat Aug 03 03:10:43 2013
ARB4 started with pid=33, OS id=1216590
NOTE: assigning ARB1 to group 2/0xc51feed1 (DATADG)
NOTE: assigning ARB2 to group 2/0xc51feed1 (DATADG)
NOTE: assigning ARB3 to group 2/0xc51feed1 (DATADG)
NOTE: assigning ARB4 to group 2/0xc51feed1 (DATADG)
Sat Aug 03 05:07:48 2013
NOTE: stopping process ARB2
NOTE: stopping process ARB3
NOTE: stopping process ARB4
NOTE: stopping process ARB1
Sat Aug 03 06:41:13 2013
NOTE: stopping process ARB0
SUCCESS: rebalance completed for group 2/0xc51feed1 (DATADG)
Sat Aug 03 06:41:15 2013
NOTE: GroupBlock outside rolling migration privileged region
NOTE: requesting all-instance membership refresh for group=2
NOTE: initiating PST update: grp = 2
kfdp_update(): 16
Sat Aug 03 06:41:19 2013
kfdp_updateBg(): 16
NOTE: PST update grp = 2 completed successfully
NOTE: initiating PST update: grp = 2
kfdp_update(): 17
kfdp_updateBg(): 17
NOTE: PST update grp = 2 completed successfully
NOTE: membership refresh pending for group 2/0xc51feed1 (DATADG)
Sat Aug 03 06:41:24 2013
kfdp_query(DATADG): 18
kfdp_queryBg(): 18
SUCCESS: refreshed memberOracleоship for 2/0xc51feed1 (DATADG)
Sat Aug 03 06:41:25 2013
SUCCESS: alter diskgroup DATADG add disk /dev/rhdisk5 rebalance power 5 wait
可以看到,从03:10:25开始到06:41:25 才完成整个rebalance过程,也就是3小时31分钟.
到这里大家或许跟我一样,有一个疑问,那就是oracle asm 的rebalance 操作,具体包含了哪些细节? 或者说rebalance操作需要做哪些事情 ?
回答这个问题之前,首先我们需要明白,asm 在什么情况下进行rebalance操作.
实际上,rebalance主要是在diskgroup中disk member发现变化时,比如add/drop/resize disk操作.
那么,asm diskgroup的rebalance操作,到底需要做什么呢 ?或者说包含了哪些步骤 ?
不同的oracle 版本,其实rebalance操作是有所差异的,在10g版本中,asm rebalance主要包含如下2个操作:
planning
extent relocatyion
然而在oracle 11.1版本中,引入了asm fast rebalance特性,大概是是说可以将asm实例启动到Restricted mode然后去完成rebalance操作。
例如:
SQL startup RESTRICT;
ASM instance started
Total System Global Area 92065792 bytes
Fixed SIZE 1297984 bytes
Variable SIZE 65601984 bytes
ASM Cache 25165824 bytes
SQL ALTER diskgroup data1 mount restricted;
Diskgroup altered.
SQL ALTER diskgroup data1 rebalance;
Diskgroup altered.
这一操作,在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会发现类似如下的信息:
*** 2013-08-03 03:11:09.824
ARB0 relocating file +DATADG.259.720462059 (120 entries)
*** 2013-08-03 03:13:21.610
ARB0 relocating file +DATADG.260.720462079 (120 entries)
*** 2013-08-03 03:15:12.632
ARB0 relocating file +DATADG.260.720462079 (120 entries)
*** 2013-08-03 03:16:59.255
ARB0 relocating file +DATADG.261.720462095 (1 entries)
。。。。。。。
。。。。。。。
*** 2013-08-03 05:07:19.041
ARB4 relocating file +DATADG.287.763989695 (120 entries)
*** 2013-08-03 05:07:32.945
ARB4 relocating file +DATADG.287.763989695 (120 entries)
在进行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.
--------------------------------------ORACLE-DBA----------------------------------------
最权威、专业的Oracle案例资源汇总之【案例】Oracle ASM扩展新LAN加入asm diskgroup asm rebalance 原理
本文由大师惜分飞原创分享,网址:http://www.oracleplus.net/arch/1429.html
Oracle研究中心关键词:asm rebalance 原理扩展Oracle ASM磁盘组新LAN加入asm diskgroup本文链接: http://asmresearch.immuno-online.com/view-683720.html
发布于 : 2021-03-24
阅读(0)
最新动态
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24
联络我们
服务热线:4000-520-616
(限工作日9:00-18:00)
QQ :1570468124
手机:18915418616