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]
转载于:https://www.cnblogs.com/DataArt/p/10018193.html
ASM Disk Discovery 最佳实践相关推荐
- 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,碰到过各种坑,究其原因大多是因为配置不对,权限问题等没有遵循官方 ...
- RAC 和 Oracle Clusterware 最佳实践和初学者指南(平台无关部分) (文档 ID 1526083.1)
RAC 和 Oracle Clusterware 最佳实践和初学者指南(平台无关部分) (文档 ID 1526083.1) 转到底部 文档内容 用途 适用范围 详细信息 RAC 平台特 ...
- oracle asru,最佳实践之二:VSP+ORACLE
大家周四好. 昨天看到四爷和若曦的事情,愣了一下.<步步惊心>是这几年唯一看完的电视连续剧,娱乐圈的事情,看来一切皆有可能,不知道我们的存储八卦是否也有八卦成真的.大家尽快爆料,我们的存储 ...
- 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 ...
- eBCC性能分析最佳实践(1) - 线上lstat, vfs_fstatat 开销高情景分析...
Guide: eBCC性能分析最佳实践(0) - 开启性能分析新篇章 eBCC性能分析最佳实践(1) - 线上lstat, vfs_fstatat 开销高情景分析 eBCC性能分析最佳实践(2) - ...
- Apache Kafka: 优化部署的10个最佳实践
原文作者:Ben Bromhead 译者:江玮 原文地址:https://www.infoq.com/articles/apache-kafka-best-practices-to-opti ...
- 你应该知道的 MongoDB 最佳实践
https://mp.weixin.qq.com/s/zWS1ifKsdh16hV6yT_sXow 前言 作为MongoDB的一名方案架构师,我的大部分时间都是在和MongoDB的客户和用户交互.在这 ...
- SpringCloud 应用在 Kubernetes 上的最佳实践 —— 开发篇
作者 | 孤弋 阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作. 前言 近年来,云原生.Kubernetes.微服务.SpringCloud 这些名词在技术圈内不绝于耳,数据显示,使用 ...
- solr文档索引最佳实践
solr文档索引最佳实践 @(OTHERS)[solr] solr文档索引最佳实践 一直接提交 二AutoCommit 三 commitWithin 四建议及结论 1单线程情况 2多线程情况 solr ...
最新文章
- c语言用fread读取全部文本,C中用fread()从文件读取数据问题
- 三星15TB固态硬盘开卖 售价高达10000美元
- IOS纯手写代码支持旋屏
- Android的内存优化
- jQuery插件simplePagination的使用-踩坑记_03
- CloudStack 的配置、部署与管理,以及 API 的使用
- 英国文化影响管理风格_文化如何影响用户体验
- [转]总结:Apache/Tomcat/JBOSS/Jetty/Nginx区别 .
- container-with-most-water(最大蓄水问题)
- 华为麦芒8首发开箱图赏:年轻潮流美学就看它
- 生成.properties文件(bat文件生成)
- voip语音中转服务器,基于VoIP的语音应用服务器的设计与实现
- Eclipse搭建Android开发环境并运行Android项目 (详细)
- python matplotlib绘图总结
- 基于微信驾校考试小程序系统设计与实现 开题报告
- 在html中主要支持的音频格式,html5中audio支持音频格式
- element-ui表格列排序错乱问题解决方案
- 银行招计算机专业算什么岗,银行计算机专业岗位全方位分析
- Excel黑科技——含合并单元格的同行求和并下拉自动填充
- 第一行代码——第十三章:继续进阶——你还应该掌握的高级技巧