使用solaris的project设置CRS
适用版本:
Oracle Server - Enterprise Edition
Oracle Solaris on SPARC (64-bit)
Oracle Solaris on x86-64 (64-bit)
Oracle Clusterware (CRS) and patchsets 10.2.0.1 - 11.2.0.1
Sun Solaris x86-64 (64-bit
目的:本文讨论如何用project开启CRS
范围的应用:
我们应该能注意到,Sun Microsystems和Oracle始终支持一种老方法就是用/etc/syste/设定共享内存和信号。
这个文档中介绍了很多方法,但没有明确的建议
使用solaris的project设置CRS
当我们使用project设置遗留的后台进行。DBA和SA面对很难的挑战,oracle需要像SHMMAX或者SEMMNS的系统参数。
为避免开机设置会出现困难,所以solaris 10不会支持任何用户定义legacy_run守护进程项目。
为了克服这个困难会有两点存在:
1、 修改在启动时活动的SYSTEM project
2、 用newtask –p修改需要设置的project进程或者修改task project
情形1:修改SYSTEM project 有两种方法:
A:定义一些相关参数
例:projmod -s -K "project.max-shm-memory=(privileged,2.00TB,deny)" system
projmod -s -K "project.max-sem-ids=(privileged,2048,deny)" system
/etc/project应该显示如下:
system:0::::project.max-sem-ids=(privileged,2048,deny);project.max-shm-memory=(privileged,2199023255552,deny)
user.oracle:100::::project.max-sem-ids=(privileged,2048,deny);project.max-shm-memory=(privileged,2199023255552,deny)
B:用prctl而不用对/etc/project的设置
prctl -n project.max-shm-memory -v -r -i project system
prctl -n project.max-sem-ids -v -r -i project system
用rc脚本
#!/bin/sh
prctl -n project.max-shm-memory -v 2.2TB -r -i project system
prctl -n project.max-sem-ids -v 2048 -r -i project system
情形2:分配不同的任务和project的守护进程。
A:编辑init.crsd增加如下:
newtask -p -c $$
或
newtask -p $ORA_CRS_HOME/bin/crsd $BOOTFLAG $*
B:将CRSinit脚本移至SMF然后增加新的init.crsd服务
project='some_userdefined_crsproj' >
user='root' />
验证project开始工作
prctl -n project.max-shm-memory 1
应该显示
privileged 2.00TB - deny -
一些测试显示在/etc/user_attr增加project=system需要手动配置:
I.e. /etc/user_attr needed to look like:
root::::auths=solaris.*,solaris.grant;profiles=Web Console Management,All;lock_after_retries=no;project=system
经过研究这是由于solaris的CR#5000940:引起,为了避免我们应该运行以下命令
newtask -p system /usr/bin/true
在CRS启动之前,我们需要创建一个rc脚本/etc/rc3.d/S91proj:
#!/bin/sh
#
# see http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=5000940
# why this is needed
#
newtask -p system /usr/bin/true
这样就可以解决问题。