Discover Your Missed ASM Disks
[oracle@vrh1 raw]$ cd /dev/rdsk/* 演示中我们要用到的三个裸设备位于/dev/rdsk下 */[oracle@vrh1 rdsk]$ ls hdisk1 hdisk2 hdisk3[oracle@vrh1 rdsk]$ sqlplus / as sysdbaSQL> select * from v$version;BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod PL/SQL Release 10.2.0.4.0 - Production CORE 10.2.0.4.0 Production TNS for Linux: Version 10.2.0.4.0 - Production NLSRTL Version 10.2.0.4.0 - ProductionSQL> select path from v$asm_disk; no rows selectedSQL> alter system set asm_diskstring='/dev/rdsk/hdisk*'; System altered.SQL> select * from v$asm_disk; no rows selected/* 以上虽然设置了asm_diskstring参数,ASM instance依然无法在指定路径下找到合适的设备这是为什么呢?! */[oracle@vrh1 rdsk]$ ps -ef|grep rbal|grep -v grep oracle 31375 1 0 15:40 ? 00:00:00 asm_rbal_+ASM1/* 找出当前ASM实例中的rbal后台进程 *//* 针对该后台进程做系统调用的trace,一般Linux上使用strace,而Unix上使用truss */strace -f -o /tmp/asm_rbal.trc -p $OS_PID_OF_RBAL_BGPROCESS truss -ef -o /tmp/asm_rbal.trc -p $OS_PID_OF_RBAL_BGPROCESS[oracle@vrh1 rdsk]$ strace -f -o /tmp/asm_rbal.trc -p 31375 Process 31375 attached - interrupt to quit/* 在另外一个终端窗口中打开sqlplus登录ASM实例,执行对v$ASM_DISK或者X$KFDSK的查询 */SQL> select * from x$kfdsk;no rows selected/* 完成以上查询后使用Ctrl+C中断strace命令,并分析生成的system call trace *//* 因为在不同Unix平台上rbal后台进程可能使用不同的system call function函数以达到相同的目的,所以在你的平台上可能并不像在Linux上使用open和access2个关键词搜索就可以得到答案了! */[oracle@vrh1 rdsk]$ cat /tmp/asm_rbal.trc |egrep "open|access" 31375 open("/dev/rdsk", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 15 31375 access("/dev/rdsk/hdisk3", R_OK|W_OK) = -1 EACCES (Permission denied) 31375 access("/dev/rdsk/hdisk2", R_OK|W_OK) = -1 EACCES (Permission denied) 31375 access("/dev/rdsk/hdisk1", R_OK|W_OK) = -1 EACCES (Permission denied)
可以看到以上系统调用中使用access函数访问候选的hdisk*ASM磁盘设备时出现了"Permission denied"的问题,很显然是因为权限不足导致了ASM实例无法利用这部分的磁盘设备,我们来纠正这一问题后再次尝试:
[root@vrh1 ~]# chown oracle:dba /dev/rdsk/hdisk*SQL> select path_kfdsk from x$kfdsk;PATH_KFDSK -------------------------------------------------------------------------------- /dev/rdsk/hdisk3 /dev/rdsk/hdisk2 /dev/rdsk/hdisk1SQL> select path from v$asm_disk;PATH -------------------------------------------------------------------------------- /dev/rdsk/hdisk3 /dev/rdsk/hdisk1 /dev/rdsk/hdisk2
以上丢失ASM Disk诊断方法的原理是在查询v$asm_disk或者x$kfdsk视图时Oracle会让RBAL这个ASM特别的后台进程去访问asm_diskstring参数指定路径下的所有可用设备,只要我们了解了在访问过程中RBAL遭遇的问题,那么一般来说都可以很简单地予以解决,如果strace/truss也无法给予你任何启示的话,也许你不得不去提交一个SR让Oracle Support来进一步协助你了,当然在正式提交SR之前你有必要再次确认一下你的ASM Disk是否都满足了以下的这些硬指标: 1.合理地设置ASM_DISKSTRING参数,若没有设置ASM_DISKSTRING参数那么ASM实例会尝试到默认的一些路径去搜索磁盘设备,这些默认路径在不同操作系统上略有不同:
操作系统 | 默认搜索路径 |
Solaris | /dev/rdsk/* |
Windows | \\.\orcldisk* |
Linux | /dev/raw/* |
Linux with ASMLIB | ORCL:* |
Linux with ASMLIB | /dev/oracleasm/disks/* |
HPUX | /dev/rdsk/* |
HP-UX(Tru 64) | /dev/rdsk/* |
AIX | /dev/* |
2.候选磁盘设备应当属于安装ASM的Oracle软件的用户,否则使用chown或卷管理软件修改磁盘拥有者,并保证磁盘被正确加载 3.候选磁盘设备应当设置合理的权限,一般为660,如果存在问题那么可以临时设为770以便测试 4.RAC环境中需要注意所有的磁盘设备应当在所有节点都可见,建议使用cluvfy工具验
证
本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/1277762
Discover Your Missed ASM Disks相关推荐
- Oracle Grid 11.2.0.4 安装是出现INS-30510: Insufficient number of ASM disks selected.
最新文章:Virson's Blog 错误的原因是由于磁盘数和冗余层级不匹配: 如果创建用来存放OCR和VOTEDISK的ASM磁盘组,那么External.Normal.High三种冗余级别对应的F ...
- 深入了解Oracle ASM(一):基础概念
ASM基础概念 任何转载请注明源地址,否则追究法律责任!:http://www.askmaclean.com/archives/know-oracle-asm.html 相关文章链接: Asm ...
- 【ASM】ASM基础知识
[ASM]ASM基础知识 市场占有率 ASM自动存储管理技术已经面世10多个年头,目前已经广泛使用于各个领域的数据库存储解决方案. 到2014年为止,ASM在RAC上的采用率接近60%,在单机环境中也 ...
- Oracle 10GR2+ASM在OEL上的安装(VMware Server 1.0)
自动存储管理 (ASM) 是 Oracle 数据库 10g/11g 的一个特性,它为数据库管理员提供了一个简单的存储管理界面,并且该界面在所有服务器和存储平台上都是一致的.作为专门为 Oracle 数 ...
- ASM安装和sqlplus管理
asm 架构图 ******************************** asm安装: 安装三个必要的包 # rpm -ivh *.rpm 1:oracleasm-support 2:orac ...
- 【ASM】Oracle ASM + 11gR2 + RHEL6.5 安装
[ASM]Oracle ASM + 11gR2 + RHEL6.5 安装 [ASM]Oracle ASM + 11gR2 + RHEL6.5 安装 1.1 简介 1.1.1 ASMLib ...
- 红帽Linux 6.5上配置ASM流程
ASM(Automatic Storage Management)是Oracle官方推荐的软件存储解决方案.自10g版本正式推出以来,软件架构层面上ASM的地位是在不断的提升.首先是11g将ASM从数 ...
- 多路径下使用ASMLIB创建ASM磁盘
多路径下使用ASMLIB创建ASM磁盘 Asmlib有扫描磁盘有默认的顺序,通常为/dev/sd*,而多路径配置磁盘目录往往映射在/dev/mapper下 因此 # egrep -v "^ ...
- 如果ASM磁盘组由哪些物理磁盘组成?
我们知道用下面的方法可创建 ASM 磁盘,然后再创建逻辑的ASM组 以 root 用户身份创建 ASM 磁盘. # /etc/init.d/oracleasm createdisk VOL1 /dev ...
最新文章
- 创建php数组的方法,创建PHP数组的方法讲解
- 深入浅出设计模式原则之开闭原则(OCP)
- 清明赏春攻略——来一场技术踏青!
- 用Trivy扫描容器镜像
- java编译异常有哪些_编译时JAVA最常见的错误有哪些
- 使用RequireJS优化Web应用前端
- iOS 10 UserNotifications 框架解析
- 2018 腾讯内部转岗面试题 1 —— 不用 sizeof 判断操作系统是 32 还是 64 位
- Python源码深度解析—对象的创建
- 源码分析之String
- 拓端tecdat|R语言缺失值的处理:线性回归模型插补
- 50道编程题(有精力的同学看看)
- html页面怎么加入qq群,qq群申请
- 左程云算法体系班笔记
- 简简单单几行Python代码就能暴力破解网站登录密码,真有这么强吗?
- 王家林Spark笔记
- Java对象的生命周期与垃圾回收以及四种引用
- 抖音直播弹幕协议解析记录
- 【Android开发日记】jsonObject = new JSONObject(info)报错 A JSONObject text must begin with '{' at character
- 4.R语言【rehsape2包】介绍、melt( )、cast( )函数、其他使用技巧