ASM DISK 的Discovery PATH

ASM实例的ASM_DISKSTRING初始化参数使用一个逗号分割的字符串限制ASM实例发现的DISK可以用于ASM DISK, 该字符串支持通配符如使用星号(*)表示LIKE,只有匹配了该字符串中的路径,ASM disk才会被发现;同样支持如果问号(?)为该字符串的第一个字符时,像sqlplus中一样表示的是ORACLE_HOME的路径。注意同一DISK不会因为路径多次匹配而显示多次。

ASM_DISKSTRING的格式依赖于使用的是ASM library还是操作系统路径,如使用了ASM library,在安装和配置时asm_diskstring只需要配置ASM路径如ORCL:*路径即可,不要再配置ASMLIB中指定的映射前的DISK的路径如/dev/oracleasm/asmdisk*, 如果配置了会导致在v$asm_disk显示2种类型的路径,可以使用ASMCMD> dsget 查看,并使用ASMCMD> dsset –profile ‘ORCL:*’修正GPNPprofile中的配置。

ASM_DISKSTRING的默认值是NULL,NULL值表示ORACLE ASM会查找当前系统中默认路径中可以读写访问的所有磁盘。默认的路径是平台中指定的,依赖于操作系统,已知如下:

----------------------------------------------------------|
|Platform                          |Discovery Path    |
-----------------------------------------------------------
|AIX                                   |/dev/rhdisk*      |
-----------------------------------------------------------
|HP-UX                                 |/dev/rdisk/*      |
-----------------------------------------------------------
|Solaris                           |/dev/rdsk/*       |
-----------------------------------------------------------
|WINDOWS                           |\\.\ORCLDISK*     |
-----------------------------------------------------------
|Linux                                 |/dev/raw/*        |
-----------------------------------------------------------
|On Linux if using ASMLib Kernel Driver| ORCL:*           |
----------------------------------------------------------|

除非同一个ASM instance集群中的每个ASM实例Node都能通过自己的ASM_DISKSTRING发现,否则磁盘将不可用。 在同一ASM集群中所有节点的磁盘名不一定非要相同,但是必须都要被发现,因为ASM DG信息在DISK的磁盘头中, 可以动态的改变ASM_DISKSTRING参数增加新存储。

如何发现ASM DISK?
当ASM 实例启动时,会扫描并审核在参数ASM_DISKSTRING指定的路径中的所有磁盘,是的,所有。除了在实例启动时还有如下情况同样也会发生读取ASM_DISKSTRING查找磁盘:
* MOUNT一个ASM磁盘组时
* online一个ASM磁盘组中的磁盘时
* 创建一个ASM磁盘组时
* 增加一个ASM 磁盘到到ASM磁盘组时
* resize 一个asm 磁盘大小时
* 查询 v$asm_diskgroup 或者 v$asm_disk视图时
注: 以上行为不限于SQL或asmcmd或EM ,GC,CC等其它等同工具。

当ASM instance成功发现了ASM DISK后,会出现在V$ASM_DISK视图中,同时在DISK盘头上会记录磁盘的状态信息,可以在视图中或使用kfed查看磁盘的状态(kfdhdb.hdrsts)。

|——————————————————————————|
|状态                         |描述                                                                             |
——————————————————————————–
|MEMBER              |属于当前diskgroup的disk                                       |
——————————————————————————–
|FORMER              |这个disk以前属于一个diskgroup,现在这个diskgroup被删除了       |
——————————————————————————–
|CANDIDATE        |当使用裸设备,一个新的可以被diskgroup所用的disk               |
——————————————————————————–
|PROVISIONED    |特定平台的功能提供的可用asmdisk,如WIN asmtool或LINUX asmlib  |
——————————————————————————-|

ASM DISK发现的规则

* asm 最多可以发现1万个asm disk(10G,11g,12c R1),如果ASM disk超过了1万个,也是只显示前1万个。
* asm 只会发现磁盘分区,不会发现包含分区表中的分区
* 对于ASM DISK状态为condidate,provisioned,former的DISK不用force选项加入DISKGROUP, 而对于foreign状态只能使用force选项填加。
* 对于member状态的disk,如果不属于当前的任何mount的diskgroup,可以使用force强制填加。
* 同一个磁盘不要显示多个路径,如使用多路径软件时只显示伪路径。
* 如果使用了copy disk,可能会导致多个asm disk同一个磁盘头,填加时会失败
对于ASM的限制请查看#370921.1 ASM – Scalability and Limits

提升ASM DISK发现的时间
ASM的asm_diskstring参数是依赖操作系统值,用于限制ORACLE ASM查找ASM磁盘的路径集。当一个磁盘被加进DISKGROUP时, 每个ASM实例mounted的diskgroup中的磁盘路径必须匹配自己实例中的asm_diskstring路径。 多数情况时使用asm_diskstring默认的值足够, 但是使用更严格的值可能会减少oracle asm扫描磁盘时不必要的时间。提升asm diskgroup mount时间或add disk时的时间。 默认的asm_diskstring值(NULL)可能不会发现所有的磁盘, 比如如果使用了ASMLIB或第三方的多路径软件时, 必须使用asm_diskstring;

在ORACLE ASM 10gR1时查询v$asm_disk和v$asm_diskgroup是一个排它操作,因为每一次执行都要执行disk discovery.为了减少开销,允许轻量级的访问数据集,ORACLE ASM 10g R2及以后引入了新的视图,v$asm_disk_stat 和v$asm_diskgroup_stat,查询这两个视图数据来源内存并且不需要执行disk discovery. 所以在OEM中也通常使用该视图。

删除asm disk并且不想在v$asm_disk中看到,可以在drop diskgroup或drop disk后修改该disk的owner和权限禁止ASM访问,如果删除asm_diskstring中的部分disk也可以动态的修改asm_diskstring参数。

Reference  Esteban D. Bernal [improving oracle asm discovery time best practices]

转载于:https://www.cnblogs.com/DataArt/p/10018193.html

ASM Disk Discovery 最佳实践相关推荐

  1. AIX 6.1 安装 Oracle 11.2.0.4 ASM RAC PSU 最佳实践

    AIX 6.1 安装 Oracle 11.2.0.4 ASM RAC PSU 最佳实践 近期自己在AIX 6.1平台上安装过多次RAC,碰到过各种坑,究其原因大多是因为配置不对,权限问题等没有遵循官方 ...

  2. RAC 和 Oracle Clusterware 最佳实践和初学者指南(平台无关部分) (文档 ID 1526083.1)

      RAC 和 Oracle Clusterware 最佳实践和初学者指南(平台无关部分) (文档 ID 1526083.1) 转到底部 文档内容 用途   适用范围   详细信息   RAC 平台特 ...

  3. oracle asru,最佳实践之二:VSP+ORACLE

    大家周四好. 昨天看到四爷和若曦的事情,愣了一下.<步步惊心>是这几年唯一看完的电视连续剧,娱乐圈的事情,看来一切皆有可能,不知道我们的存储八卦是否也有八卦成真的.大家尽快爆料,我们的存储 ...

  4. jumbo 安装mysql,RAC 和 Oracle Clusterware 最佳实践和初学者指南「ID 1526083.1」

    In this Document Applies to: Oracle Database - Enterprise Edition - Version 10.2.0.1 to 11.2.0.3 [Re ...

  5. eBCC性能分析最佳实践(1) - 线上lstat, vfs_fstatat 开销高情景分析...

    Guide: eBCC性能分析最佳实践(0) - 开启性能分析新篇章 eBCC性能分析最佳实践(1) - 线上lstat, vfs_fstatat 开销高情景分析 eBCC性能分析最佳实践(2) - ...

  6. Apache Kafka: 优化部署的10个最佳实践

    原文作者:Ben Bromhead      译者:江玮 原文地址:https://www.infoq.com/articles/apache-kafka-best-practices-to-opti ...

  7. 你应该知道的 MongoDB 最佳实践

    https://mp.weixin.qq.com/s/zWS1ifKsdh16hV6yT_sXow 前言 作为MongoDB的一名方案架构师,我的大部分时间都是在和MongoDB的客户和用户交互.在这 ...

  8. SpringCloud 应用在 Kubernetes 上的最佳实践 —— 开发篇

    作者 | 孤弋  阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作. 前言 近年来,云原生.Kubernetes.微服务.SpringCloud 这些名词在技术圈内不绝于耳,数据显示,使用 ...

  9. solr文档索引最佳实践

    solr文档索引最佳实践 @(OTHERS)[solr] solr文档索引最佳实践 一直接提交 二AutoCommit 三 commitWithin 四建议及结论 1单线程情况 2多线程情况 solr ...

最新文章

  1. c语言用fread读取全部文本,C中用fread()从文件读取数据问题
  2. 三星15TB固态硬盘开卖 售价高达10000美元
  3. IOS纯手写代码支持旋屏
  4. Android的内存优化
  5. jQuery插件simplePagination的使用-踩坑记_03
  6. CloudStack 的配置、部署与管理,以及 API 的使用
  7. 英国文化影响管理风格_文化如何影响用户体验
  8. [转]总结:Apache/Tomcat/JBOSS/Jetty/Nginx区别 .
  9. container-with-most-water(最大蓄水问题)
  10. 华为麦芒8首发开箱图赏:年轻潮流美学就看它
  11. 生成.properties文件(bat文件生成)
  12. voip语音中转服务器,基于VoIP的语音应用服务器的设计与实现
  13. Eclipse搭建Android开发环境并运行Android项目 (详细)
  14. python matplotlib绘图总结
  15. 基于微信驾校考试小程序系统设计与实现 开题报告
  16. 在html中主要支持的音频格式,html5中audio支持音频格式
  17. element-ui表格列排序错乱问题解决方案
  18. 银行招计算机专业算什么岗,银行计算机专业岗位全方位分析
  19. Excel黑科技——含合并单元格的同行求和并下拉自动填充
  20. 第一行代码——第十三章:继续进阶——你还应该掌握的高级技巧

热门文章

  1. 七年之痒,很多人迈不过去的槛
  2. 中科院院士梅宏用哪5个字描绘了云计算的未来?
  3. unity3d修改批量物体材质
  4. 方差、协方差、协方差矩阵的概念及意义 的理解
  5. 基于单片机的刷卡考勤系统的设计
  6. Concept Whitening for interpretable image recognition 用于可解释图像识别的概念白化
  7. 《C++语言基础》程序阅读——字符串类的设计
  8. 各种抠图动态图片_10种ps抠图办法(动态图演示全过程)
  9. C/C++实现矩阵/图形90°旋转
  10. Vue之集成阿里云滑块验证