[20171223]grid使用者的環境變數問題.txt

lfree發表於2017-12-22

[20171223]grid使用者的環境變數問題.txt

--//oracle 11G 安裝RAC,一般需要建立grid使用者,使用這個使用者管理asm,群集資訊.
--//在安裝過程中,同事的疑問實際上也是我以前的疑問.

--//grid使用者:
$ id
uid=1100(grid) gid=1000(oinstall) groups=1000(oinstall),1200(asmadmin),1201(asmdba),1202(asmoper)

$ env| egrep "ORACLE_BASE|ORACLE_HOME"
ORACLE_BASE=/u01/app/grid
ORACLE_HOME=/u01/app/11.2.0/grid

--//oracle使用者:
$ id
uid=1101(oracle) gid=1000(oinstall) groups=1000(oinstall),1201(asmdba),1300(dba),1301(oper)

$  env| egrep "ORACLE_BASE|ORACLE_HOME"
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

--//為什麼oracle使用者建立ORACLE_HOME在ORACLE_BASE之中,而grid使用者建立ORACLE_HOME卻沒有建立為
--//ORACLE_HOME目錄之下,例如:/u01/app/grid/product/11.2.0/dbhome_1

--//我開始一直以為也許是一種約定,按照文件操作就ok了.昨天別人問這個問題,我google:

For ASM installation of software:

. The directories are located by the operating system environment variables.
-- ORACLE_BASE is the top-level directory for a particular software owner.
-- ORACLE_HOME is used to identify the top-level directory of the Grid Infrastructure software.

. Use a common ORACLE_BASE for all Oracle products owned by the same user.
. Use an isolated ORACLE_HOME location from other Oracle products even if they are the same version.
. Do not place Grid ORACLE_HOME below ORACLE_BASE.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
. ORACLE_HOME requires 3 GB to 5 GB of disk space.


--//對方的解答:

The recommendation is correct.  GRID_HOME should be separate.  The root.sh script for the GRID_HOME changes ownership
and permissions for certain files to rooot so it should be separate.

...

Gridhome must not be a subdirectory of gridbase, because of the permission change to root.  It works good in production
and hopefully survives a deinstall of grid base after e.g. an upgrade.

--//按照官方的解析,許多檔案目錄在按照後修改為root使用者.

$ ls -l $ORACLE_HOME |grep " root "
drwxrwxrwt  6 root oinstall  4096 2016-12-24 12:12:53 auth
drwxr-xr-x  2 root oinstall 12288 2016-12-24 12:12:53 bin
drwxr-x---  4 root oinstall  4096 2016-12-24 12:12:53 crf
drwxr-xr-x 17 root oinstall  4096 2016-12-24 12:12:53 crs
drwxr-xr-x  3 root oinstall  4096 2016-12-24 12:12:53 ctss
drwxr-x---  3 root oinstall  4096 2016-12-24 12:12:53 gnsd
drwxr-xr-x  3 root oinstall 12288 2016-12-24 12:12:53 lib
drwxr-xr-x  3 root oinstall  4096 2016-12-24 12:12:53 ologgerd
drwxr-xr-x  3 root oinstall  4096 2016-12-24 12:12:53 osysmond
drwxr-xr-x  4 root root      4096 2016-12-24 12:13:13 tfa

$ find /u01/app/11.2.0 -uid 0  -exec ls -ld {} \;
--//能查詢到許多目錄檔案都是root使用者.

$ ls -l /u01/app
total 16
drwxr-xr-x. 3 root   oinstall 4096 2016-12-18 14:47:35 11.2.0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drwxrwxr-x. 9 grid   oinstall 4096 2016-12-30 12:09:18 grid
drwxrwxr-x. 7 oracle oinstall 4096 2016-12-24 12:52:35 oracle
drwxrwx---  6 grid   oinstall 4096 2016-12-24 12:42:52 oraInventory

--//11.2.0 目錄的owner=root.我估計安裝在子目錄下安裝也能過去,問題也許更多在取消安裝或者升級.
--//實際上有許多帖子是關於grid中檔案目錄許可權的問題.總之按照安裝文件要求實施總是有一定道理.

--//實際上最好的方法是儲存一份許可權目錄的檔案,必須時查詢與用於恢復.
getfacl -R /u01/app/11.2.0/grid > dir_privs.txt
setfact -restore dir_privs.txt
--//注意這樣儲存的是相對路徑.儲存絕對路徑使用如下命令:
getfacl -R --absolute-names /u01/app/11.2.0/grid > dir_privs.txt

--//grid在安裝後還儲存一份檔案目錄的許可權在如下目錄:
# find /u01 -name "crsconfig_*" -exec ls -l {} + | grep utl
-rw-r--r-- 1 root   root       8159 Dec 24  2016 /u01/app/11.2.0/grid/crs/utl/crsconfig_dirs
-rw-r--r-- 1 root   root      12877 Dec 24  2016 /u01/app/11.2.0/grid/crs/utl/crsconfig_fileperms
-rw-r--r-- 1 root   root      11936 Dec 24  2016 /u01/app/11.2.0/grid/crs/utl/crsconfig_files

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2149062/,如需轉載,請註明出處,否則將追究法律責任。

相關文章