本例环境:
操作系统OEL 6.5
数据库版本:11.2.0.4
问题:DBCA建库的时候,检测不到ASM磁盘组
因素一:可能是在授权的时候执行了 chown –R 775 /u01/app等修改权限。
分析:数据库无法连接ASM,这应该是权限问题,grid的$ORACLE_BASE是/u01/app/grid,oracle的$ORACLE_BASE是/u01/app/oracle,在创建这几个目录时,赋予权限/u01/app的属组关系是grid:oinstall,/u01/app/oracle的属组关系是oracle:oinstall。在安装完grid软件前,我怕权限不足,就赋予了/u01 775的权限。ORACLE_HOME不能直接赋予775的权限,查询grid和oracle $ORACLE_HOME/bin/oracle下的权限,都变成了775权限。
[root@OCP bin]# cd /u01/app/grid/11.2.0/bin
[root@OCP bin]# ll oracle
-rwxr-x--x. 1 grid oinstall 239789591 Jul 24 20:38 oracle
[root@OCP bin]# cd /u01/app/oracle/product/11.2.0/db_1/bin
[root@OCP bin]# ll oracle
-rwxr-x--x. 1 oracle oinstall 239789591 Jul 24 20:38 oracle
而ORACLE_HOME/bin/oracle文件默认是6751权限,有个s权限,更改为775后,s权限取消,这时将ORACLE_HOME/bin/oracl的权限改为6751权限后,问题解决。
[root@OCP bin]# chmod 6751 /u01/app/grid/11.2.0/bin/oracle
[root@OCP bin]# ll oracle
-rwsr-s--x. 1 grid oinstall 239789591 Jul 24 20:38 oracle
[root@OCP bin]# chmod 6751 /u01/app/oracle/product/11.2.0/db_1/bin/oracle
[root@OCP bin]# ll oracle
-rwsr-s--x. 1 oracle oinstall 239789591 Jul 24 20:38 oracle
下面罗列网友总结的几个ASM磁盘无法识别的现象。
ASM磁盘无法识别几种现象:
1)
gi家目录或者其子目录权限错误
2)asm磁盘的权限错误
3)asm实例未启动或者asm磁盘组没有mount上
4)asm磁盘组资源没有在线
5)oracle用户的权限错误
6)oracle($ORACLE_HOME/bin)可执行文件的权限错误
OK,那我就按照上面的分析结果进行逐一排查:
1)
gi家目录或者其子目录权限错误
[root@rac1 ~]# ls -ld /u01/app/grid//11.2.0
drwxr-x--- 66 root oinstall 4096 Apr 19 01:36
我先简单查看了GI的家目录权限,这是正常的。这里想要提醒大家,有些DBA有意无意中看到这样的目录权限,发现所属主是root,以为出了问题,理所应当地通过命令去更改,如果只更改该目录权限问题也不大,回退方法很简单,但一旦加上-R参数递归方式把子目录、子文件的权限一并更改,那故障就发生了。所以,大家在操作的时候不要盲目去做没有把握的事情,掌握每个操作后面的原理以及其带来的后果,以至于充分准备好回退方法.
2)
asm磁盘的权限错误
[root@rac1 ~]# ls -l /dev/oracleasm/disks/
total 0
brw-rw---- 1 grid oinstall 8, 17 Apr 19 01:22 ASMDISK1
brw-rw---- 1 grid oinstall 8, 33 Apr 19 01:22 ASMDISK2
如果发现权限不对,通过如下命令修改:
[root@rac1 ~]# oracleasm configure -I
或者
[root@rac1 ~]# /etc/init.d/oracleasm configure
修改之后查看:
[root@rac1 ~]# oracleasm configure
ORACLEASM_ENABLED=true
ORACLEASM_UID=grid
ORACLEASM_GID=oinstall
ORACLEASM_SCANBOOT=true
ORACLEASM_SCANORDER=""
ORACLEASM_SCANEXCLUDE=""
3)
asm实例未启动或者asm磁盘组没有mount上
4)
asm磁盘组资源没有在线:
[grid@rac1 ~]$ crsctl stat res –t
---------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
---------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE rac1
ora.FLASH.dg
ONLINE ONLINE rac1
ora.GRID.dg
ONLINE ONLINE rac1
ora.LISTENER.lsnr
ONLINE ONLINE rac1
ora.asm
ONLINE ONLINE rac1 Started
ora.ons
OFFLINE OFFLINE rac1
---------------------------------------------------------------------
Cluster Resources
---------------------------------------------------------------------
ora.cssd
1 ONLINE ONLINE rac1
ora.diskmon
1 OFFLINE OFFLINE
ora.evmd
1 ONLINE ONLINE rac1
5)
oracle用户的权限错误
[root@rac1 ~]# id oracle
uid=1101(oracle) gid=1000(oinstall)
groups=1000(oinstall),1300(dba),1301(oper),1201(asmdba)
oracle用户需要加入到asmdba组,如果发现没有加入,进行如下操作:
[root@rac1 ~]# gpasswd -a oracle asmdba
Adding user oracle to group asmdba
6)
oracle($ORACLE_HOME/bin)可执行文件的权限错误
[root@rac1 ~]# su - oracle
[oracle@rac1 ~]$ cd $ORACLE_HOME/bin
[oracle@rac1 bin]$ ls -l oracle
-rwsr-s--x 1 oracle oinstall 232399473 Apr 19 07:04 oracle
oracle可执行文件的权限不正确:
[root@rac1 ~]# cd /u01/app/oracle/product/11.2.0/db_1/bin/
[root@rac1 bin]# chown oracle.oinstall oracle
[root@rac1 bin]# ls -l oracle
-rwxr-x--x 1 oracle oinstall 232399473 Apr 19 07:04 oracle
[root@rac1 bin]# chmod +s oracle
[root@rac1 bin]# ls -l oracle
-rwsr-s--x 1 oracle oinstall 232399473 Apr 19 07:04 oracle