近日处理一个Oracle Grid infrastructure(GI)安装的问题,在执行root.sh过程中失败,并显示下面错误:

1
2
3
4
5
6
7
8
9
Disk Group OCR creation failed with the following message:
ORA-15018: diskgroup cannot be created
ORA-15031: disk specification '/dev/vx/rdsk/dg_db01/lv_vote1' matches no disks    <<<<<<<<<<<<<<<
ORA-15031: disk specification '/dev/vx/rdsk/dg_db01/lv_vote2' matches no disks
ORA-15031: disk specification '/dev/vx/rdsk/dg_db01/lv_vote3' matches no disks
Configuration of ASM ... failed
see asmca logs at /oracle/base/cfgtoollogs/asmca for details
Did not succssfully configure and start ASM at /oracle/product/11.2.0.4/grid_1/crs/install/crsconfig_lib.pm line 6468.
/oracle/product/11.2.0.4/grid_1/perl/bin/perl -I/oracle/product/11.2.0.4/grid_1/perl/lib -I/oracle/product/11.2.0.4/grid_1/crs/install /oracle/product/11.2.0.4/grid_1/crs/install/rootcrs.pl execution failed

错误ORA-15031的提示,还是很明显的,无法识别对应的voting磁盘,正常解决思路,就是检查磁盘是否正常挂载,权限是否正确等,需要逐项检查。在Metalink上搜索,这个错误一般都是在node2上执行root.sh会遇到,而node1都是正常的。大多是权限以及系统层面挂载出现问题。但是我这个问题,是在node1上执行root.sh就失败了。

开始各项分析检查:

1. 检查磁盘是否存在,权限是否正确,All Pass

1
2
3
4
#ls -lrt /dev/vx/rdsk/dg_db01
crw-rw----    1 grid     asmadmin     40,60000 Feb 12 10:51 lv_vote1
crw-rw----    1 grid     asmadmin     40,60001 Feb 12 10:52 lv_vote2
crw-rw----    1 grid     asmadmin     40,60002 Feb 12 10:52 lv_vote3

2. 检查asm_diskstring设置

1
2
3
4
SQL> show parameter asm_diskstring
NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
asm_diskstring                       string                            /dev/vx/rdsk/dg_db01

3. 并使用kfod来查看,是否能扫描到对应的磁盘,也正常

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 kfod asm_diskstring='/dev/vx/rdsk/dg_db01/lv_*' disks=all
--------------------------------------------------------------------------------
Disk          Size Path                                     User     Group  
================================================================================
  1:     327680 Mb /dev/vx/rdsk/dg_db01/lv_data01           grid     asmadmin
  2:     327680 Mb /dev/vx/rdsk/dg_db01/lv_data02           grid     asmadmin
  3:     327680 Mb /dev/vx/rdsk/dg_db01/lv_data03           grid     asmadmin
  4:     112910 Mb /dev/vx/rdsk/dg_db01/lv_data04           grid     asmadmin
  5:       1024 Mb /dev/vx/rdsk/dg_db01/lv_vote1            grid     asmadmin
  6:       1024 Mb /dev/vx/rdsk/dg_db01/lv_vote2            grid     asmadmin
  7:       1024 Mb /dev/vx/rdsk/dg_db01/lv_vote3            grid     asmadmin
--------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME                                                          
================================================================================
    +ASM1 /oracle/product/11.2.0.4/grid_1                                      
grid@HAZZ-NRMS-RESDB01:/home/grid>

4. 至此,我怀疑是asm_diskstring设置的不够准确,将其更改为

1
2
3
4
SQL> show parameter asm_diskstring
NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
asm_diskstring                       string                            /dev/vx/rdsk/dg_db01/lv_*

但是问题依旧没有解决,

5. 检查集群安装环境,也没有发现问题

1
2
$ ./runcluvfy.sh stage -pre crsinst -n node1,node2 -verbose
$ ./runcluvfy.sh comp ssa -n all -verbose

6. 操作系统日志,没有发现错误

1
IBM: /bin/errpt -a > messages.out

至此,可以确认,根据oracle的安装文档,目前的磁盘权限完全符合安装条件,在GI的图形化安装过程,也是可以看见ASM disk的,但是在root.sh执行过程中,就是无法通过。

后通过Metalink查询到下面文章
ASM Is Not Detecting Raw Devices Or Regular Raw Devices On AIX (Doc ID 1174604.1)

       根据文档描述:
EMC存储,使用多路径,可能会遇到这个问题,而我的存储确实使用的EMC和多路径。

好吧,按照这个文档的Solution,测试一下

1
2
3
4
5
Please attempt the next action plan on the mount point which contains the ASM Oracle Home:
1) Dismount the filesystem which contains the ASM Oracle Home.
2) Change the ownership of the mount point to oracle : dba
3) Remount the filesystem
4) The EMC PowerPath raw devices or regular raw devices are now being discovered.

我的执行步骤如下:

1
2
3
4
5
1、dismount /u01/oracle
2、chown -R oracle:oinstall /u01/oracle
   chmod 775 /u01/oracle
3、mount /u01/oracle
4、再次执行root.sh,成功

       说真的,我很难理解,为什么mount路径的权限,会影响到ASM disk的无法识别.

根据文档1174604.1中提及的Bug 9976459 : ASM DISK NOT GETTING DISCOVERED,其中有这样一段解释

1
2
3
4
When a file system is mounted over a directory, the permissions of the root directory of the mounted file system takes precedence over the permissions of  the mount point.
A common problem is failure of the pwd command. Without search permission in the mounted-over directory, the pwd command returns the following message:
pwd: Permission denied
This problem can be avoided by always setting the permissions of the mounted-over directory to at least 111.

最终,根据上面的描述,google到了IBM的解释:
http://www-01.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.osdevice/mountpoint.htm

安装点
        安装点是一个目录或文件,可在该处访问新文件系统、目录或文件。要安装文件系统或目录,安装点必须为一个目录;要安装文件,那么安装点必须为文件。
       通常,文件系统、目录或文件安装在空安装点上,但这不是必需的。如果作为安装点的文件或目录包含任何数据,那么另一个文件或目录在该安装点进行安装时,该数据不可访问。实际上,已安装的文件或目录覆盖了以前在该目录中的内容。一旦撤销在初始目录或文件上的安装,该目录或文件就重新可访问。
       在目录上安装文件系统时,已安装文件系统的根目录许可权优先于安装点的许可权。有一个例外是安装目录中的 ..(点点)父目录条目。为了操作系统能够访问新文件系统,安装点父目录信息必须可用。
      例如,如果当前工作目录是 /home/frank,那么命令 cd .. 将工作目录更改至 /home。 如果 /home/frank 目录是已安装的文件系统的根,那么为了使 cd .. 命令成功,操作系统必须在 /home/frank 目录中找到父目录信息。
      对于需要父目录信息才能成功的任何命令,用户必须具有在安装目录中的搜索许可权。授予对安装目录的搜索许可权失败可能会导致不可预测的结果,尤其是因为安装目录许可权是不可见的。常见问题是 pwd 命令失败。如果没有对安装目录的搜索许可权,pwd 命令将返回此消息:
pwd:许可权被拒绝
通过始终将安装目录的许可权至少设置为 111 可避免此问题。

至此,问题已经解决,由于mount点的权限问题,会导致ASM disk识别的失败。
哎!!!神奇的经历!!!

本文转自 hsbxxl 51CTO博客,原文链接:http://blog.51cto.com/hsbxxl/1614579,如需转载请自行联系原作者

当root.sh与ORA-15031相遇相关推荐

  1. Oracle 11g ora 15018,oracle 11gR2 RAC root.sh 错误 ORA-15072 ORA-15018

    Oracle 11gR2 RAC安装Clusterware结束, 在第二个节点执行root.sh脚本的是报如下错误: DiskGroup DATA1 creation failed with the ...

  2. 关于 运行root.sh 时出错误Timed out waiting for the CRS stack to start.的解决

    Creating OCR keys for user 'root', privgrp 'root'.. Operation successful. Adding daemon to inittab C ...

  3. 苹果双系统运行oracle失败,oracle 11gR2 RAC for linux x86_64 grid运行root.sh 失败问题处理...

    昨天一个朋友问到我,在oracle 11gR2 RAC for linux x86_64安装过程中,grid用户运行root.sh在第一节点可以成功,但在第二节点不成功,报错如下: CRS-2674: ...

  4. How to recover from root.sh on 11.2 Grid Infrastructure Failed

    从10g的clusterware到11g Release2的Grid Infrastructure,Oracle往RAC这个框架里塞进了太多东西.虽然照着Step by Step Installati ...

  5. oracle9i rac for aix,oracle 11gR2 rac for aix 第二个节点运行root.sh不成功问题处理

    今天帮客户规划安装一套11gR2 rac for aix 数据库,在安装grid集群软件时,第一个节点运行 root.sh成功,运行第二个节点root.sh不成功,主要原因是忘记更改两个节点磁盘的 r ...

  6. 安装oracle 19c rac报错:2节点执行root.sh asm实例启动失败

    安装oracle 19c rac报错:2节点执行root.sh asm实例启动失败 背景 解决过程 查看lmon trc 查看mos 真的是网络的问题 haip 禁用haip 安装好的环境禁用haip ...

  7. Oracle RAC 第二节点 root.sh 报错 Timed out waiting for the CRS stack to start

    在VBox 上安装11.2.0.1的RAC. 这里打算安装11.2.0.1是因为从11.2.0.2以后的版本对public 和private 网卡网段区分很严格,这个网卡必须配置在不同的网段. 而在1 ...

  8. oracle修改c root,从新发现Oracle太美之root.sh

    重新发现Oracle太美之root.sh 如果你执行下以下命令基本上会在Oracle软件目录下会发现两个root.sh的脚本 [oracle@rh64 Templates]$ find /u01/ - ...

  9. oracle 11gR2 RAC root.sh 错误 ORA-15072 ORA-15018

    Oracle  11gR2 RAC 安装Clusterware 结束, 在第二个节点执行root.sh脚本的是报如下错误: DiskGroup DATA1 creation failed with t ...

最新文章

  1. 高亮提示、聚焦控件并滚动到浏览器中干好可以查看到该控件的位置
  2. 编写音乐播放器的一些感想
  3. android Run模式也会出现Waiting for debugger的解决方法
  4. 对文本框只允许输入数字
  5. 成功解决ValueError: (‘Unknown transform primitive years. ‘, ‘Call ft.primitives.list_primitives() to get
  6. LeetCode 4. Median of Two Sorted Arrays
  7. 8999元起!vivo X Fold折叠屏旗舰今日首销:采用航天级浮翼式铰链
  8. UI实用素材|登录和个人资料界面模板
  9. Oracle收购后的Mysql目标市场
  10. 更新学生的成绩C语言,学生成绩管理系统C语言代码实现.pdf
  11. 计算机组成原理 最新教材,《计算机组成原理》东南大学教材.pdf
  12. 安卓psp模拟器联机教程_让PSP带你回童年FC模拟器联机教程.doc
  13. Delphi 10.3 Rio实现FMX应用APP增加Android“应用程序快捷方式”
  14. 【C语言】关机程序的实现以及函数
  15. 【Python】使用python 画出一张机器猫doraemon
  16. word2vec和bert的基本使用方法
  17. TOJ 3015.Convert Kilometers to Miles
  18. 11月20日 如何在场景开启Debug,自定义AI任务,EQS,创建自己的环境任务,使用Pawn环境检测来检测周围的环境,让AI动作更顺滑(动画混合
  19. php 命格算法,命格是怎么个算法???
  20. 视频有黑边怎么办?如何裁剪视频画面的黑边?

热门文章

  1. C语言 *、 的含义
  2. 优酷开放sdk-setOnerroListener
  3. 服务器文档怎么打开,服务器链接怎么打开
  4. 读文件并返回其中最大最小行的shell脚本
  5. jquery常用功能
  6. TCP/IP协议学习
  7. 03-命令图片.doc
  8. 《JavaScript面向对象的编程指南》--读书笔记
  9. 边工作边刷题:70天一遍leetcode: day 35
  10. 设计模式解析笔记之Adapter模式