no -p -o tcp_sendspace=65536
1.1 调整系统参数
1.1.1 打开异步IO
AIX5.3中,在安装grid软件前执行rootpre.sh会自动打开异步IO服务,在AIX6.1中默认异步IO服务是打开的。推荐的aio_maxreqs值为 64k (65536),检查方法如下:AIX 6.1# ioo -o aio_maxreqsaio_maxreqs = 65536AIX 5.3# lsattr -El aio0 -a maxreqsmaxreqs 65536 Maximum number of REQUESTS True查看当前启动了多少异步IO进程的方法:# ps -ek|grep -v grep|grep –v posix_aioserver|grep -c aioserver调整aio_maxservers和aio_minservers为合适的值原则:1、 调整maxservers的值为10倍的磁盘数量,但是不要超赤802、 在高i/o的时间周期监控AIO的性能情况,如果所有的AIO服务进程都已经启动,那么增大maxservers的值。但是,过多的AIO进程也会增加系统的负载3、 监控AIO服务进程的使用情况:# ps -ek|grep -v grep|grep –v posix_aioserver|grep -c aioserver4、 调整参数Ioo –po aio_maxservers=80 / ioo –po aio_minservers=40### 1.1.2 调整虚拟内存管理 Oracle推存使用vmo命令去调优虚拟内存管理,参数推荐如下:命令如下:vmo -p -o minperm%=3vmo -p -o maxperm%=90vmo -p -o maxclient%=90vmo -p -o lru_file_repage=0vmo -p -o strict_maxclient=1vmo -p -o strict_maxperm=0You must restart the system for these changes to take effect.### 1.1.3 调整maxuproc(系统最大进程数)和ncargs(系统块大小)参数
chdev -l sys0 -a maxuproc=16384sys0 changed也可以使用:smitty chgsys修改“Maximum number of PROCESSES allowed per user”修改完成后查看:# lsattr -El sys0 -a maxuprocmaxuproc 16384 Maximum number of PROCESSES allowed per user True# chdev -l sys0 -a ncargs=256sys0 changed### 1.1.4 调整SHELL限制
- 在 /etc/security/limits文件中增加如下行:default: fsize = -1 core = 2097151 cpu = -1 data = -1 rss = -1 stack = -1 nofiles = -1### 1.1.5 确认网络配置参数
用# /usr/sbin/no -a | more来查看网络参数是否满足下面的要求l PARAMETER RECOMMENDED VALUEipqmaxlen 512rfc1323 1sb_max 1500000tcp_recvspace 65536tcp_sendspace 65536udp_recvspace 1351680 这个值应该是udp_sendspace的10倍,但是必须小于sb_maxudp_sendspace 135168 这个值至少应该是4K+(db_block_size*db_multiblock_read_count)的大小l 修改命令no -r -o ipqmaxlen=521 no -p -o rfc1323=1 no -p -o sb_max=1500000no -p -o tcp_recvspace=65536no -p -o tcp_sendspace=65536no -p -o udp_recvspace=1351680 no -p -o udp_sendspace=13516在修改前需要先查看系统设置的兼容性:# lsattr -El sys0 -a pre520tune1、输出如:pre520tune disable Pre-520 tuning compatibility mode True说明是不兼容方式,这样就可以用上面的方式调整:2、如果是compatibility模式,则:# /usr/sbin/no -o parameter_name=value并且编辑文件/etc/rc.net加入下面内容:if [ -f /usr/sbin/no ] ; then/usr/sbin/no -o udp_sendspace=65536/usr/sbin/no -o udp_recvspace=655360/usr/sbin/no -o tcp_sendspace=65536/usr/sbin/no -o tcp_recvspace=65536/usr/sbin/no -o rfc1323=1/usr/sbin/no -o sb_max=2*655360/usr/sbin/no -o ipqmaxlen=512fi## 1.2 创建用户、组
1.2.1 要求
本次安装我们就规划了一个组,但是规划两个用户,一个用于管理ASM实例,另一个用于管理DB实例。创建一个组:dba创建二个用户:grid:主要用与安装grid、ASM,管理ASM实例,grid用户主组为dba,属组为:dba。oracle:要用与安装Clusterware,管理db实例,oracle用户主组为dba,属组为:dba。### 1.2.2 创建命令:
mkgroup -'A' id='1000' adms='root' dba# mkuser id='1000' pgrp='dba' groups='dba' home='/home/grid' grid# mkuser id='1100' pgrp='dba' groups='dba' home='/home/oracle' oracle!注意保持双机用户与组的ID的一致。### 1.2.3 修改用户属性
1.2.3.1 grid用户
1、在两台主机上要保证grid用户具有以下能力:CAP_NUMA_ATTACH, CAP_BYPASS_RAC_VMM, and CAP_PROPAGATE查看grid用户能力:#lsuser -a capabilities grid增加grid用户能力:# chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE grid2、设置grid用户密码:#passwd grid3、在两台主机上最消grid用户shell限制可以通过smit chuser去修改grid用户限制,或直接修改/etc/security/limits 文件,具体参数如下:default:fsize = -1core = 2097151cpu = -1data = -1rss = -1stack = -1nofiles = -1#### 1.2.3.2 oracle用户 1、在两台主机上要保证oracle用户具有以下能力:CAP_NUMA_ATTACH, CAP_BYPASS_RAC_VMM, and CAP_PROPAGATE查看oracle用户能力:# lsuser -a capabilities oracle增加oracle用户能力:#chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle2、设置oracle用户密码:#passwd oracle3、在两台主机上最消oracle用户shell限制可以通过smit chuser去修改oracle用户限制,或直接修改/etc/security/limits 文件,具体参数如下:default:fsize = -1core = 2097151cpu = -1data = -1rss = -1stack = -1nofiles = -1#### 1.2.3.3 root用户 在两台主机上最消root用户shell限制,因为CRS进程(crsd)需要以root用户运行。可以通过smit chuser去修改root用户限制,或直接修改/etc/security/limits 文件,具体参数如下:default:fsize = -1core = 2097151cpu = -1data = -1rss = -1stack = -1nofiles = -1## 1.3 用户环境变量设置
1.3.1 grid用户
在两台服务器的的grid用户的.profile最后,增加如下内容:umask 022export ORACLE_BASE=/u01/app/grid #需手工创建export ORACLE_HOME=/u01/app/11.2/grid #需手工创建export ORACLE_SID=+ASM1 #节点2是+ASM2export NLS_LANG=AMERICAN_AMERICA.UTF8export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/binexport PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/binexport PATH=${PATH}:$ORACLE_BASE/common/oracle/binexport ORACLE_PATH=${PATH}:$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/adminexport ORACLE_TERM=xtermexport TNS_ADMIN=$ORACLE_HOME/network/adminexport ORA_NLS10=$ORACLE_HOME/nls/dataexport LD_LIBRARY_PATH=$ORACLE_HOME/libexport LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/libexport LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/libexport CLASSPATH=$ORACLE_HOME/JREexport CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlibexport CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlibexport CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlibexport THREADS_FLAG=nativeexport TEMP=/tmpexport TMPDIR=/tmpexport PS1='hostname':'$PWD'"$### 1.3.2 oracle用户 在两台服务器的的oracle用户的.profile最后,增加如下内容:umask 022export ORACLE_BASE=/u01/app/oracle #需手工创建export ORACLE_HOME=$ORACLE_BASE/product/11.2export ORACLE_SID=ytdb1export ORACLE_UNQNAME=testdbexport NLS_LANG=AMERICAN_AMERICA.UTF8export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/binexport PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/binexport PATH=${PATH}:$ORACLE_BASE/common/oracle/binexport ORACLE_PATH=${PATH}:$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/adminexport ORACLE_TERM=xtermexport TNS_ADMIN=$ORACLE_HOME/network/adminexport ORA_NLS10=$ORACLE_HOME/nls/dataexport LD_LIBRARY_PATH=$ORACLE_HOME/libexport LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/libexport LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/libexport CLASSPATH=$ORACLE_HOME/JREexport CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlibexport CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlibexport CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlibexport THREADS_FLAG=nativeexport TEMP=/tmpexport TMPDIR=/tmpexport PS1='hostname':'$PWD'"$"## 1.4 用户shell限制 更改root,grid,oracle用户的shell限制,要求如下:fsize = -1core = -1cpu = -1data = -1rss = -1stack = -1nofiles = -1更改命令:smit chuser## 1.5 创建安装目录并修改权限 mkdir -p /u01/app/grid #grid用户的ORACLE_BASEmkdir -p /u01/app/11.2/grid #grid用户的ORACLE_HOMEchown -R grid:dba /u01mkdir -p /u01/app/oracle #oracle用户的ORACLE_BASEchown -R oracle:dba /u01/app/oraclechmod -R 755 /u01/注意:如果grid与orcle安装在同一文件系统下面,如上,在进行权限修改的时候要注意顺序,先进行/u01赋权,再进行/u01/db赋权,否则会被覆盖。## 1.6 SSH信任关系设置(可选) SSH信任关系也可在grid安装时选择自动配置。注意:Oracle11g R2 grid在AIX上自动配置ssh时会报错,因为Oracle调用的命令路径和AIX系统上命令实际路径不符,可以修改oracle安装程序的sshsetup.sh脚本,或按照oracle调用路径添加程序软连接,具体路径安装过程中Oracle会提示。### 1.6.1 首先在两台机器上安装好OpenSSH软件; 具体安装方法本处不详述,需要下载openssh、openssl,安装时需先安装openssl,然后再安装openssh。也可以通过AIX系统光盘,执行smitty install,选择所有ssh包安装。安装完毕后可以检查:# lslpp –l | grep ssh### 1.6.2 然后在grid安装中选择自动配置SSH双机信任关系
1.6.2.1 方法1
l 修改/etc/ssh/sshd_config将:RSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keys前面的注释去掉。l 利用命令:ssh-keygen生成key全部选择默认的就可以 , 生成的private key和public Key会保存在 ~/.ssh目录下 . 注: 为了后面的访问方便, passphrase一行密码一般设置为空.l 将2台机器的public key互相传给对方 可以有好几种方法: ftp , rcp , scp都可以 .这里我们通过FTP将两个节点的~/.ssh下的id_rsa、id_rsa.pub两个文件分别拷下来传至对方。由于同名,分别将其更改为id_rsa239、id_rsa239.pub、id_rsa237、id_rsa237.pub,为了区分,后面加上其IP标识。l 建立authorized_keys文件由于上面修改了sshd_config文件 , 其中一行为AuthorizedKeysFile .ssh/authorized_keys为认证读取文件的位置 .我们采取默认的方式 , 在~/.ssh下touch一个authorized_keys文件. touch authorized_keys将传输过来的对方主机的pub key内容 ,追加到authorized_keys文件上,Node1(192.168.17.237):bash-3.00# cat id_rsa239.pub > authorized_keysnode2(192.168.17.239):# cat id_rsa237.pub > authorized_keys测试:ssh 192.168.17.237ssh 192.168.17.239第一次登录会出现提示,输入yes后以后就不会了#### 1.6.2.2 方法2 以下两个节点都执行:#su – grid$mkdir –p ~/.ssh$chmod 700 ~/.ssh$/usr/bin/ssh-keygen -t rsa提示输入密码时,保持为空,直接回车即可。以下只在节点1上执行:$ touch ~/.ssh/authorized_keys$ ssh ibmdb1 cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys$ ssh ibmdb2 cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys$ scp ~/.ssh/authorized_keys ibmdb2:.ssh/authorized_keys以下只在节点2上执行:$ chmod 600 ~/.ssh/authorized_keys配置完成后按方法1中测试方法进行测试。## 1.7 配置磁盘设备
1.7.1 设置磁盘属性
该步骤若不做,在grid安装完成建立ASM时,第二个节点会找不到硬盘,同时加入不了群集。检测:lsattr -El hdisk2 | grep reserve_查看一个即可设置保持策略:如果上面查看的结果是reserve_policychdev -l hdisk2 -a reserve_policy=no_reservechdev -l hdisk3 -a reserve_policy=no_reservechdev -l hdisk4 -a reserve_policy=no_reservechdev -l hdisk5 -a reserve_policy=no_reservechdev -l hdisk6 -a reserve_policy=no_reserve如果上面查看的结果是reserve_lockchdev -l hdisk2 -a reserve_lock=no.。。 ### 1.7.2 修改用于数据库存储的PV的属主 chown grid:dba /dev/rhdisk2chown grid:dba /dev/rhdisk3chown grid:dba /dev/rhdisk4chown grid:dba /dev/rhdisk5chown grid:dba /dev/rhdisk6### 1.7.3 修改用于数据库存储的PV的权限 chmod 777 /dev/rhdisk2chmod 777 /dev/rhdisk3chmod 777 /dev/rhdisk4chmod 777 /dev/rhdisk5chmod 777 /dev/rhdisk6如果出现两边盘符不一致,可使用软连接实现两边盘符的对应关系一致,如:Ln –s /dev/rhdisk2 /ShareDisk/grid_lun1..Ln –s /dev/rhdisk6 /ShareDisk/data_asm1…### 1.7.4 清除PVID 查看LUN,如果已经有了PVID的话,需要进行清除。chdev -l hdisk2 -a pv=clear重复同样的操作,清除2-6所有LUN的PVID## 1.8 配置NTP服务(可选) Oracle 11g R2提供Cluster Time Synchronization Service(CTSS)集群时间同步服务,在没有NTP服务时,该功能可以保证所有RAC节点的时间保持一致。ASM可以作为统一的存储把Oracle Cluster Registry(OCR)和Voting disks统一安装在ASM磁盘上,不再需要单独安装集群文件系统了,11g第二版也不再支持裸设备了(之前可以把集群件安装到裸设备上)。还有一个功能SCAN(Single Client Access Name)即单客户端访问名称而且该功能包括了Failover故障自动切换功能,在访问集群是只写一个SCAN名称就可以了,不需要象以前要把所有节点的VIP写在应用程序的配置文件里面了,这样就大大方便了客户端程序对RAC系统的访问,但该功能需要DNS服务器的支持。SCAN配置也可以采用hosts文件作解析。如果系统配置了NTP服务,CTSS服务会处于观察者模式,配置NTP具体步骤可参考AIX服务配置