Phone:18180207355 提供专业Oracle&MySQL数据恢复、性能优化、迁移升级、紧急救援等服务

关于Oracle GRID HOME文件目录的权限问题

今天一个网友咨询一个问题,使用chown -R 误操作了,将整个/u01/app的权限修过了,导致grid无法启动。

这个问题还是第一次见,搜了下mos发现了一篇文档:Tips for checking file permissions on GRID environment(ID 1931142.1)

该文档中描述到,$GRID_HOME/crs/utl下面的几个文件中记录了整个GRID_HOME下面的文件和目录的相关权限。

我们来看下是否是这样的:

[root@rac2 bin]# cd  /home/grid/app/11.2/grid/crs/utl
[root@rac2 utl]# ls -ltr
total 324
-rw-r–r– 1 root root  1128 Aug 11 09:48 usrvip
-rw-r–r– 1 root root  8437 Aug 11 09:48 srvctl
……
-rw-r–r– 1 root root 12102 Aug 11 09:48 crsconfig_files
-rw-r–r– 1 root root 13468 Aug 11 09:48 crsconfig_fileperms
-rw-r–r– 1 root root  8666 Aug 11 09:48 crsconfig_dirs
-rw-r–r– 1 root root   699 Aug 11 09:48 crfsetenv
-rw-r–r– 1 root root  1280 Aug 11 09:48 cmdllroot.sh
-rw-r–r– 1 root root  3680 Aug 11 09:48 cluutil
-rw-r–r– 1 root root  1648 Aug 11 09:48 clsrwrap
-rw-r–r– 1 root root   540 Aug 11 09:48 appvipcfg
[root@rac2 utl]# more crsconfig_dirs
# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
# The values in each line use the following format:
#
# OSLIST DIRNAME OWNER GROUP CLOSED-PERMS OPEN-PERMS
#
# Note:
# 1) OSLIST is a comma-separated list of platforms on which the directory
#    needs to be created.  ‘all’ indicates that the directory needs to be
#    created on every platform.  OSLIST MUST NOT contain whitespace.
# 2) Permissions need to be specified AS OCTAL NUMBERS.  If permissions are
#    not specified, default (umask) values will be used.
#
# TBD: OPEN-PERMS need to be added for each dir

all /home/grid/app/11.2/grid/cdata oracle oinstall 0775
all /home/grid/app/11.2/grid/cdata/rac-scan oracle oinstall 0775
all /home/grid/app/11.2/grid/cfgtoollogs oracle oinstall 0775
all /home/grid/app/11.2/grid/cfgtoollogs/crsconfig oracle oinstall 0775
all /home/grid/app/11.2/grid/log oracle oinstall 0775
all /home/grid/app/11.2/grid/log/rac2 root oinstall 01755
all /home/grid/app/11.2/grid/log/rac2/crsd root oinstall 0750
all /home/grid/app/11.2/grid/log/rac2/ctssd root oinstall 0750
all /home/grid/app/11.2/grid/log/rac2/evmd oracle oinstall 0750
all /home/grid/app/11.2/grid/log/rac2/cssd oracle oinstall 0750
all /home/grid/app/11.2/grid/log/rac2/mdnsd oracle oinstall 0750
all /home/grid/app/11.2/grid/log/rac2/gpnpd oracle oinstall 0750
all /home/grid/app/11.2/grid/log/rac2/gnsd root oinstall 0750
all /home/grid/app/11.2/grid/log/rac2/srvm oracle oinstall 0750
………

我们可以看到,确实是这样,里面记录了该文件记录了所有相关目录的权限。至于文件的权限,记录在另外2个文件之中.
所以要解决这个问题其实并不难,我们大致可以通过如下几种方法来解决

1. 根据前面的几个权限配置脚本自己参考进行修改,实际上并不难,直接UE编辑就很快搞定.

2. 根据Mos文档提供的建议通过 $GRID_HOME/crs/install/rootcrs.pl -init 或 roothas.pl -init进行解决.
—不过我测试发现,这种方法没有成功,但是网友测试貌似通过了.

3. 11R2可以deconfig crs的配置,然后重新跑root.sh即可。重新跑root.sh脚本并不影响数据库,所以无需担心.

4. 如果是rac的某个节点的误操作,那么还可以通过delete node然后add node来做,不过这个相对麻烦太多了,但是或许是最保险的一种方式。oracle也推荐这样,因为你如果人为修改文件权限,很难保证以后运行过程中不会出现什么问题。

 

备注:当是学习,记录一下!

 

补充:

Linux环境中还可以通过getfacl和setfacl来进行操作,如下是例子:

1) getfacl   /home/grid/app/11.2/grid  > dir_privs.txt

2) set –restore dir_privs.txt

 

 

    分享到:
  • wwfbxs

    以前就碰到过类似的问题

  • 汤义

    getfacl 和setfacl可以搞定

  • James peng

    1) getfacl /home/grid/app/11.2/grid > dir_privs.txt

    是只将grid文件夹的权限导出吗?

18180207355
加Q咨询