阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

grid与Oracle用户下Oracle程序权限不一致导致无法连接ASM问题

123次阅读
没有评论

共计 2865 个字符,预计需要花费 8 分钟才能阅读完成。

在 RAC 中,启动数据库时遇到如下报错:

Oracle instance started.

Total System Global Area 807682048 bytes
Fixed Size 1347964 bytes
Variable Size 549457540 bytes
Database Buffers 251658240 bytes
Redo Buffers 5218304 bytes
ORA-00205: error in identifying control file, check alert log for more info

查看日志,错误如下:

Fatal NI connect error 12547, connecting to:
 (DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/u01/app/11.2.0/grid/bin/oracle)(ARGV0=oracle+ASM2_asmb_gzyt2)(ENVS=’ORACLE_HOME=/u01/app/11.2.0/grid,ORACLE_SID=+ASM2′)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))’))(enable=setuser)(CONNECT_DATA=(CID=(PROGRAM=oracle@node2)(HOST=node2)(USER=oracle))))

VERSION INFORMATION:
 TNS for Linux: Version 11.2.0.3.0 – Production
 Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.3.0 – Production
 Time: 23-JAN-2018 22:11:58
 Tracing not turned on.
 Tns error struct:
 ns main err code: 12547

TNS-12547: TNS:lost contact
 ns secondary err code: 12560
 nt main err code: 517

TNS-00517: Lost contact
 nt secondary err code: 32
 nt OS err code: 0
ERROR: Failed to connect with connect string: (DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/u01/app/11.2.0/grid/bin/oracle)(ARGV0=oracle+ASM2_asmb_gzyt2)(ENVS=’ORACLE_HOME=/u01/app/11.2.0/grid,ORACLE_SID=+ASM2′)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))’))(enable=setuser))

排查:

1.ASM 磁盘组已经正常挂载:

复制代码
SQL> select name,state from v$asm_diskgroup;

NAME                                              STATE
————————————————– ———–
DATA                                              MOUNTED
FRA                                                MOUNTED
OCRVOTE                                            MOUNTED

2. 数据库 alert 日志:

ORA-00210: cannot open the specified control file
ORA-00202: control file: ‘+FRA/gzyt/controlfile/current.256.966128177’
ORA-17503: ksfdopn:2 Failed to open file +FRA/gzyt/controlfile/current.256.966128177
ORA-15001: diskgroup “FRA” does not exist or is not mounted
ORA-15055: unable to connect to ASM instance
ORA-12547: TNS:lost contact

问题解决:

1. 查看 ORACLE 程序的权限:

[oracle@node1 ~]$ ls -l /u01/app/oracle/product/11.2.0/db_1/bin/oracle
-rwsr-s–x 1 oracle oinstall 239626665 Jan 6 10:59 oracle
[grid@node1 ~]$ ls -l /u01/app/11.2.0/grid/bin/oracle
-rwxr-x–x 1 grid oinstall 209914471 Jan 6 10:33 oracle

2. 修改权限为 6751 后,恢复正常:

[oracle@node1 ~]$ ls -l /u01/app/oracle/product/11.2.0/db_1/bin/oracle
-rwsr-s–x 1 oracle oinstall 239626665 Jan 6 10:59 oracle
[grid@node1 ~]$ ls -l /u01/app/11.2.0/grid/bin/oracle
-rwsr-s–x 1 grid oinstall 209914471 Jan 6 10:33 oracle

3. 在安装仅 oracle software 之后,$ORACLE_HOME/bin/oracle 文件属性权限为 751(-rwxr-x–x)
在用安装 ASM 建库 (DBCA) 时,此文件属性会自动被修改为 6751(-rwsr-s–x)
– 此权限问题也有可能导致 ORA-12537: TNS:connection closed
– 此权限问题也有可能导致使用 DBCA 建库时无法找到 ASM 磁盘

4. 关于 6751 权限的说明:
6751 分别指定了 ugoa 的权限:
第一位 6 代表 u(所有者)有读、写权限,没有执行权限
第二位 7 代表 g(组)有读、写、执行权限
第三位 5 代表 o(其它用户)有读、执行权限
第四位 1 代表 a(所有者、组、其它用户)有执行权限
四位 6751 如果用三位表示就是 675,第四位继承 umask 的值
Linux 权限模型有两个专门的位,叫做“suid”和“sgid”。当设置了一个可执行程序
的“suid”这一位时,在用户执行该程序时, 用户的权限是该程序文件属主的权限。例如程序文件的属主是 root,那么执行该程序的用户就将暂时获得 root 账户的权限。sgid 与 suid 类似,只是执行程序时获得的是文件属组的权限。

更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址:http://www.linuxidc.com/Linux/2018-01/150590.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2865字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中