26 Dec 2016
对于安装oracle RAC database 11g r2,oracle推荐给oracle grid Infrastructure创建grid用户,给oracle RAC database 软件安装创建oracle用户。基于所安装的软件,每个用户被分配不同的用户组来处理特定的角色。但是按此方法分开创建用户还需要oracle和grid都有一个公有的主组,oracle的中央inventory组(oinstall)。
以下是为安装Oracle RAC database cluster和部分Oracle用户的系统用户组别:
以下是为安装oracle Grid infrastructure和部分grid用户的系统用户组别:
groupadd --gid 54321 oinstall groupadd --gid 54322 dba groupadd --gid 54323 asmdba groupadd --gid 54324 asmoper groupadd --gid 54325 asmadmin groupadd --gid 54326 oper useradd --uid 54321 --gid oinstall --groups dba,oper,asmdba,asmoper oracle passwd oracle useradd --uid 54322 --gid oinstall --groups dba,asmadmin,asmdba,asmoper grid passwd grid id oracle uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(asmdba),54324(asmoper),54326(oper) id grid uid=54322(grid) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(asmdba),54324(asmoper),54325(asmadmin)
oracle推荐给每个oracle用户设定soft和hard限制,包含以下三项
之所以要设定这些限制,是为了预防因为某个用户耗尽所有系统资源造成的系统级别的崩溃
touch /etc/security/limits.d/99-grid-oracle-limits.conf vim /etc/security/limits.d/99-grid-oracle-limits.conf ****************************************************** oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768 grid soft nproc 2047 grid hard nproc 16384 grid soft nofile 1024 grid hard nofile 65536 grid soft stack 10240 grid hard stack 32768 ******************************************************
特别需要注意的是,linux中,当系统去读取/etc/security/limits.conf中的配置之后,会去读取/etc/security/limits.d/目录中的*.conf文件,读取顺序为,特殊字符、数字的升序来排序,大写字幕和小写字幕按照字幕顺序排序。如果两个文件包含相同的内容,最后被读取的优先。
limits.conf文件中的修改会立即生效,为了保险起见,也可以重新登陆用户来使其生效。
使用root用户创建以下脚本,放在/etc/profile.d中,以便用户创建相应的ulimits设置
vi /etc/profile.d/oracle-grid.sh ****************************************************** #Setting the appropriate ulimits for oracle and grid user if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -u 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi if [ $USER = "grid" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -u 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi ******************************************************