grid赋予oracle磁盘权限,grid 与 Oracle 用户下 Oracle 程序权限不一致导致无法连接 ASM 问题...

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

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

TotalSystemGlobalArea807682048bytes

FixedSize1347964bytes

VariableSize549457540bytes

DatabaseBuffers251658240bytes

RedoBuffers5218304bytes

ORA-00205:errorinidentifying control file,check alert logformore info

查看日志, 错误如下:FatalNI connect error12547,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:

TNSforLinux:Version11.2.0.3.0-Production

OracleBequeathNTProtocolAdapterforLinux:Version11.2.0.3.0-Production

Time:23-JAN-201822:11:58

Tracingnotturned on.

Tnserrorstruct:

ns main err code:12547

TNS-12547:TNS:lost contact

ns secondary err code:12560

nt main err code:517

TNS-00517:Lostcontact

nt secondary err code:32

nt OS err code:0

ERROR:Failedto connectwithconnectstring:(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>selectname,statefromv$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:2Failedto open file+FRA/gzyt/controlfile/current.256.966128177

ORA-15001:diskgroup"FRA"doesnotexistorisnotmounted

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--x1oracle oinstall239626665Jan610:59oracle

[grid@node1~]$ ls-l/u01/app/11.2.0/grid/bin/oracle

-rwxr-x--x1grid oinstall209914471Jan610:33oracle

2. 修改权限为 6751 后, 恢复正常:[oracle@node1~]$ ls-l/u01/app/oracle/product/11.2.0/db_1/bin/oracle

-rwsr-s--x1oracle oinstall239626665Jan610:59oracle

[grid@node1~]$ ls-l/u01/app/11.2.0/grid/bin/oracle

-rwsr-s--x1grid oinstall209914471Jan610:33oracle

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 类似, 只是执行程序时获得的是文件属组的权限

来源: http://www.linuxidc.com/Linux/2018-01/150590.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值