Home Database Mysql Tutorial 当root.sh与ORA-15031相遇

当root.sh与ORA-15031相遇

Jun 07, 2016 pm 02:55 PM
deal with

近日处理一个Oracle Grid infrastructure(GI)安装的问题,在执行root.sh过程中失败,并显示下面错误: DiskGroupOCRcreationfailedwiththefollowingmessage:ORA-15018:diskgroupcannotbecreatedORA-15031:diskspecification'/dev/vx/rdsk/dg_db01/lv_vote1'm

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

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
Copy after login

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

开始各项分析检查:

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

#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
Copy after login

2. 检查asm_diskstring设置

SQL> show parameter asm_diskstring
NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
asm_diskstring                       string                            /dev/vx/rdsk/dg_db01
Copy after login

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

 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>
Copy after login

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

SQL> show parameter asm_diskstring
NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
asm_diskstring                       string                            /dev/vx/rdsk/dg_db01/lv_*
Copy after login

但是问题依旧没有解决,

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

$ ./runcluvfy.sh stage -pre crsinst -n node1,node2 -verbose
$ ./runcluvfy.sh comp ssa -n all -verbose
Copy after login

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

IBM: /bin/errpt -a > messages.out
Copy after login

至此,可以确认,根据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,测试一下

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.
Copy after login

我的执行步骤如下:

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

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

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

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.
Copy after login

        最终,根据上面的描述,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识别的失败。
哎!!!神奇的经历!!!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Have Crossplay?
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

The operation process of WIN10 service host occupying too much CPU The operation process of WIN10 service host occupying too much CPU Mar 27, 2024 pm 02:41 PM

1. First, we right-click the blank space of the taskbar and select the [Task Manager] option, or right-click the start logo, and then select the [Task Manager] option. 2. In the opened Task Manager interface, we click the [Services] tab on the far right. 3. In the opened [Service] tab, click the [Open Service] option below. 4. In the [Services] window that opens, right-click the [InternetConnectionSharing(ICS)] service, and then select the [Properties] option. 5. In the properties window that opens, change [Open with] to [Disabled], click [Apply] and then click [OK]. 6. Click the start logo, then click the shutdown button, select [Restart], and complete the computer restart.

Summary of frequently asked questions about importing Excel data into Mysql: How to deal with error log problems encountered when importing data? Summary of frequently asked questions about importing Excel data into Mysql: How to deal with error log problems encountered when importing data? Sep 10, 2023 pm 02:21 PM

Summary of frequently asked questions about importing Excel data into Mysql: How to deal with error log problems encountered when importing data? Importing Excel data into a MySQL database is a common task. However, during this process, we often encounter various errors and problems. One of them is the error log issue. When we try to import data, the system may generate an error log listing the specific information about the error that occurred. So, how should we deal with the error log when we encounter this situation? First, we need to know how

A quick guide to CSV file manipulation A quick guide to CSV file manipulation Dec 26, 2023 pm 02:23 PM

Quickly learn how to open and process CSV format files. With the continuous development of data analysis and processing, CSV format has become one of the widely used file formats. A CSV file is a simple and easy-to-read text file with different data fields separated by commas. Whether in academic research, business analysis or data processing, we often encounter situations where we need to open and process CSV files. The following guide will show you how to quickly learn to open and process CSV format files. Step 1: Understand the CSV file format First,

Learn how to handle special characters and convert single quotes in PHP Learn how to handle special characters and convert single quotes in PHP Mar 27, 2024 pm 12:39 PM

In the process of PHP development, dealing with special characters is a common problem, especially in string processing, special characters are often escaped. Among them, converting special characters into single quotes is a relatively common requirement, because in PHP, single quotes are a common way to wrap strings. In this article, we will explain how to handle special character conversion single quotes in PHP and provide specific code examples. In PHP, special characters include but are not limited to single quotes ('), double quotes ("), backslash (), etc. In strings

How to handle XML and JSON data formats in C# development How to handle XML and JSON data formats in C# development Oct 09, 2023 pm 06:15 PM

How to handle XML and JSON data formats in C# development requires specific code examples. In modern software development, XML and JSON are two widely used data formats. XML (Extensible Markup Language) is a markup language used to store and transmit data, while JSON (JavaScript Object Notation) is a lightweight data exchange format. In C# development, we often need to process and operate XML and JSON data. This article will focus on how to use C# to process these two data formats, and attach

How to handle java.lang.UnsatisfiedLinkError error in Java? How to handle java.lang.UnsatisfiedLinkError error in Java? Aug 24, 2023 am 11:01 AM

The Java.lang.UnsatisfiedLinkError exception occurs at runtime when an attempt to access or load a native method or library fails due to a mismatch between its architecture, operating system, or library path configuration and the referenced one. It usually indicates that there is an incompatibility with the architecture, operating system configuration, or path configuration that prevents success - usually the local library referenced does not match the library installed on the system and is not available at runtime. To overcome this error, the key is to be native The library is compatible with your system and can be accessed through its library path setting. You should verify that library files exist in their specified locations and meet system requirements. java.lang.UnsatisfiedLinkErrorjava.lang

How to crawl and process data by calling API interface in PHP project? How to crawl and process data by calling API interface in PHP project? Sep 05, 2023 am 08:41 AM

How to crawl and process data by calling API interface in PHP project? 1. Introduction In PHP projects, we often need to crawl data from other websites and process these data. Many websites provide API interfaces, and we can obtain data by calling these interfaces. This article will introduce how to use PHP to call the API interface to crawl and process data. 2. Obtain the URL and parameters of the API interface. Before starting, we need to obtain the URL of the target API interface and the required parameters.

How to deal with data normalization issues in C++ development How to deal with data normalization issues in C++ development Aug 22, 2023 am 11:16 AM

How to deal with data normalization issues in C++ development. In C++ development, we often need to process various types of data, which often have different value ranges and distribution characteristics. To use this data more efficiently, we often need to normalize it. Data normalization is a data processing technique that maps data of different scales to the same scale range. In this article, we will explore how to deal with data normalization issues in C++ development. The purpose of data normalization is to eliminate the dimensional influence between data and map the data to

See all articles