zoukankan      html  css  js  c++  java
  • ASM Disk Discovery 最佳实践

    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]

  • 相关阅读:
    第二阶段冲刺第二天
    第二阶段冲刺第一天
    第十四周学习进度条
    《探索需求-设计前的质量》阅读笔记六
    《探索需求-设计前的质量》阅读笔记五
    xxx征集系统项目目标文档
    《探索需求-设计前的质量》阅读笔记四
    《探索需求-设计前的质量》阅读笔记三
    将一台电脑上的虚拟机上的系统复制到另一台电脑的虚拟机上!!!and想询问大神们问题的解决办法??
    《探索需求-设计前的质量》阅读笔记二
  • 原文地址:https://www.cnblogs.com/DataArt/p/10018193.html
Copyright © 2011-2022 走看看