本例环境:
操作系统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