当root.sh与ORA-15031相遇
近日处理一个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
错误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
2. 检查asm_diskstring设置
SQL> show parameter asm_diskstring NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ asm_diskstring string /dev/vx/rdsk/dg_db01
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>
4. 至此,我怀疑是asm_diskstring设置的不够准确,将其更改为
SQL> show parameter asm_diskstring NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ asm_diskstring string /dev/vx/rdsk/dg_db01/lv_*
但是问题依旧没有解决,
5. 检查集群安装环境,也没有发现问题
$ ./runcluvfy.sh stage -pre crsinst -n node1,node2 -verbose $ ./runcluvfy.sh comp ssa -n all -verbose
6. 操作系统日志,没有发现错误
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,测试一下
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、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,其中有这样一段解释
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识别的失败。
哎!!!神奇的经历!!!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

1. Tout d'abord, nous cliquons avec le bouton droit sur l'espace vide de la barre des tâches et sélectionnons l'option [Gestionnaire des tâches], ou cliquons avec le bouton droit sur le logo de démarrage, puis sélectionnons l'option [Gestionnaire des tâches]. 2. Dans l'interface du Gestionnaire des tâches ouverte, nous cliquons sur l'onglet [Services] à l'extrême droite. 3. Dans l'onglet [Service] ouvert, cliquez sur l'option [Ouvrir le service] ci-dessous. 4. Dans la fenêtre [Services] qui s'ouvre, cliquez avec le bouton droit sur le service [InternetConnectionSharing(ICS)], puis sélectionnez l'option [Propriétés]. 5. Dans la fenêtre des propriétés qui s'ouvre, remplacez [Ouvrir avec] par [Désactivé], cliquez sur [Appliquer] puis cliquez sur [OK]. 6. Cliquez sur le logo Démarrer, puis cliquez sur le bouton d'arrêt, sélectionnez [Redémarrer] et terminez le redémarrage de l'ordinateur.

Résumé des questions fréquemment posées sur l'importation de données Excel dans MySQL : Comment gérer les problèmes de journal d'erreurs rencontrés lors de l'importation de données ? L'importation de données Excel dans une base de données MySQL est une tâche courante. Cependant, au cours de ce processus, nous rencontrons souvent diverses erreurs et problèmes. L’un d’eux est le problème du journal des erreurs. Lorsque nous essayons d'importer des données, le système peut générer un journal d'erreurs répertoriant les informations spécifiques sur l'erreur survenue. Alors, comment devrions-nous gérer le journal des erreurs lorsque nous rencontrons cette situation ? Premièrement, nous devons savoir comment

Apprenez rapidement à ouvrir et traiter des fichiers au format CSV Avec le développement continu de l'analyse et du traitement des données, le format CSV est devenu l'un des formats de fichiers les plus utilisés. Un fichier CSV est un fichier texte simple et facile à lire avec différents champs de données séparés par des virgules. Que ce soit dans la recherche académique, l'analyse commerciale ou le traitement de données, nous rencontrons souvent des situations où nous devons ouvrir et traiter des fichiers CSV. Le guide suivant vous montrera comment apprendre rapidement à ouvrir et traiter des fichiers au format CSV. Étape 1 : Comprendre le format de fichier CSV. Tout d'abord,

Dans le processus de développement PHP, la gestion des caractères spéciaux est un problème courant, en particulier dans le traitement des chaînes, les caractères spéciaux sont souvent échappés. Parmi eux, la conversion de caractères spéciaux en guillemets simples est une exigence relativement courante, car en PHP, les guillemets simples sont un moyen courant d'encapsuler des chaînes. Dans cet article, nous expliquerons comment gérer les guillemets simples de conversion de caractères spéciaux en PHP et fournirons des exemples de code spécifiques. En PHP, les caractères spéciaux incluent, sans s'y limiter, les guillemets simples ('), les guillemets doubles ("), la barre oblique inverse (), etc. Dans les chaînes

La gestion des formats de données XML et JSON dans le développement C# nécessite des exemples de code spécifiques. Dans le développement de logiciels modernes, XML et JSON sont deux formats de données largement utilisés. XML (Extensible Markup Language) est un langage de balisage permettant de stocker et de transmettre des données, tandis que JSON (JavaScript Object Notation) est un format d'échange de données léger. Dans le développement C#, nous devons souvent traiter et exploiter des données XML et JSON. Cet article se concentrera sur la façon d'utiliser C# pour traiter ces deux formats de données et les attacher.

L'exception Java.lang.UnsatisfiedLinkError se produit au moment de l'exécution lorsqu'une tentative d'accès ou de chargement d'une méthode ou d'une bibliothèque native échoue en raison d'une incompatibilité entre son architecture, son système d'exploitation ou la configuration du chemin de bibliothèque et celui référencé. Cela indique généralement qu'il existe une incompatibilité avec l'architecture, la configuration du système d'exploitation ou la configuration du chemin qui empêche le succès. Généralement, la bibliothèque locale référencée ne correspond pas à la bibliothèque installée sur le système et n'est pas disponible au moment de l'exécution. la clé est de manière native. La bibliothèque est compatible avec votre système et est accessible via son paramètre de chemin de bibliothèque. Vous devez vérifier que les fichiers de bibliothèque existent dans leurs emplacements spécifiés et répondent à la configuration système requise. java.lang.UnsatisfiedLinkErrorjava.lang

Comment explorer et traiter les données en appelant l'interface API dans un projet PHP ? 1. Introduction Dans les projets PHP, nous devons souvent explorer les données d'autres sites Web et traiter ces données. De nombreux sites Web fournissent des interfaces API et nous pouvons obtenir des données en appelant ces interfaces. Cet article explique comment utiliser PHP pour appeler l'interface API afin d'explorer et de traiter les données. 2. Obtenez l'URL et les paramètres de l'interface API Avant de commencer, nous devons obtenir l'URL de l'interface API cible et les paramètres requis.

Comment gérer les problèmes de normalisation des données dans le développement C++. Dans le développement C++, nous devons souvent traiter différents types de données, qui ont souvent des plages de valeurs et des caractéristiques de distribution différentes. Pour utiliser ces données plus efficacement, nous devons souvent les normaliser. La normalisation des données est une technique de traitement de données qui mappe des données de différentes échelles sur la même plage d'échelles. Dans cet article, nous explorerons comment gérer les problèmes de normalisation des données dans le développement C++. Le but de la normalisation des données est d'éliminer l'influence dimensionnelle entre les données et de mapper les données à
