11R2 RAC on Aix 基本任务
基础环 境配置 |
任务项 |
操作步骤 |
检查操作系统基本情况(内存,虚拟内存等) |
内存: 安装grid infrastructure最少需要1.5GB的内存, 安装grid infrastructure和RAC最少需要2.5GB的内存 swap:最少需要4GB,有的资料介绍最少1.5G,不过安装环境检查时显示需要4G。 temp:推荐10G,可以将安装文件上传至/tmp目录下,最少1GB 安装目录:grid infrastructure+ASM+Clusterware最少需要12GB 操作系统: AIX 6.1 TL 01 SP1 ("6100-01-01), 64-bit kernel lsattr -El sys0 -a realmem lsps -a chfs –a size=5G /tmp getconf HARDWARE_BITMODE lsdev -C | grep proc lsattr -El proc0
|
|
配置网卡IP,修改host文件 |
修改每个节点上的/etc/hosts文件。 127.0.0.1 loopback localhost # loopback (lo0) name/address # *** Oracle Scan IP *** 10.20.117.242 db_scan
# *** Oracle Public IP*** 10.20.117.19 node1 10.20.117.20node2
# *** Oracle Virtual IP *** 10.20.117.240 node1-vip 10.20.117.241 node2-vip
# *** Oracle Private IP *** 192.168.1.1node1-priv 192.168.1.2 node2-priv
注意:如果你的环境里不具备DNS服务器,那么SCAN地址解析可以通过/etc/hosts或GNS来实现,这需要在你的所有数据库主机的host文件里添加一个SCAN地址,并且这个地址的解析名不要超过16个字符,超过的话,oracle只会解析前16个字符。本例中我们通过/etc/hosts来解析scan。 |
|
安装必需系统包 |
AIX 6.1需要安装如下软件包: bos.adt.base bos.adt.lib bos.adt.libm bos.perf.libperfstat 6.1.2.1 or later bos.perf.perfstat bos.perf.proctools rsct.basic.rte rsct.compat.clients.rte xlC.aix61.rte 10.1.0.0 (or later) |
|
系统补丁安装 |
oslevel -r AIX 6L installations All AIX 6L 6.1 installations Authorized Problem Analysis Reports (APARs) for AIX 5L v. 5.3 ML06, and the following AIX fixes: IZ41855 IZ51456 IZ52319 验证:#/usr/sbin/instfix -i -k IZ41855 安装补丁: 由于6100-04不需要任何补丁,所以我们将系统升级到6100-04(但是安装grid的时候还是出现3个包未安装提示) 从IBM官网上下载6100-04-00-0943 将补丁文件上传至/tmp/tools下 smit update_all 选择不提交,保存被覆盖的文件,可以回滚操作,接受许可协议 COMMIT software updates? No SAVE replaced files? yes ACCEPT new license agreements? Yes 升级完后查看: # oslevel -s 6100-04-01-0944
|
|
建立用户和组 |
规划了一个组,但是规划两个用户,一个用于管理ASM实例,另一个用于管理DB实例。 创建一个组: dba 创建二个用户: grid:主要用与安装grid、ASM,管理ASM实例,grid用户主组为dba,属组为:dba。 oracle:要用与安装Clusterware,管理db实例,oracle用户主组为dba,属组为:dba。 创建命令: 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的一致。
*******linux下创建用户和组******* [root@node1 ~]# groupadd oinstall groupadd dba groupadd oper groupadd asmdba groupadd asmadmin groupadd asmoper useradd -g oinstall -G asmdba,asmadmin,asmoper,dba grid useradd -g oinstall -G dba,asmdba,oper oracle[root@node1 ~]# groupadd dba [root@node1 ~]# groupadd oper [root@node1 ~]# groupadd asmdba [root@node1 ~]# groupadd asmadmin [root@node1 ~]# groupadd asmoper [root@node1 ~]# useradd -g oinstall -G asmdba,asmadmin,asmoper,dba grid [root@node1 ~]# useradd -g oinstall -G dba,asmdba,oper oracle
[grid]$ id uid=500(grid)gid=500(oinstall)groups=500(oinstall),501(dba),503(asmdba),504(asmadmin),505(asmoper) [oracle@node1 ~]$ id uid=501(oracle) gid=500(oinstall) groups=500(oinstall),501(dba),502(oper),503(asmdba)
|
|
赋予用户权限 |
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 grid 2、设置grid用户密码: #passwd grid 3、在两台主机上取消grid用户shell限制 可以通过smit chuser去修改grid用户限制,或直接修改/etc/security/limits 文件,具体参数如下: default: fsize = -1 core = 2097151 cpu = -1 data = -1 rss = -1 stack = -1 nofiles = -1 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 oracle 2、设置oracle用户密码: #passwd oracle 3、在两台主机上取消oracle用户shell限制 可以通过smit chuser去修改oracle用户限制,或直接修改/etc/security/limits 文件,具体参数如下: default: fsize = -1 core = 2097151 cpu = -1 data = -1 rss = -1 stack = -1 nofiles = -1 root用户 在两台主机上取消root用户shell限制,因为CRS进程(crsd)需要以root用户运行。 可以通过smit chuser去修改root用户限制,或直接修改/etc/security/limits 文件,具体参数如下: default: fsize = -1 core = 2097151 cpu = -1 data = -1 rss = -1 stack = -1 nofiles = -1 |
|
修改用户shell |
在 /etc/security/limits文件中增加如下行: default: fsize = -1 core = 2097151 cpu = -1 data = -1 rss = -1 stack = -1 nofiles = -1 |
|
修改AIO参数 |
AIX 6.1 # ioo -o aio_maxreqs aio_maxreqs = 65536 ------------------------------------------- ioo -o aio_maxreqs=65536 ioo -o aio_minservers=20 ioo -o aio_maxservers=80
AIX 5.3 # lsattr -El aio0 -a maxreqs maxreqs 65536 Maximum number of REQUESTS True 查看当前启动了多少异步IO进程的方法: # ps -ek|grep -v grep|grep –v posix_aioserver|grep -c aioserver 调整aio_maxservers和aio_minservers为合适的值 原则: 调整maxservers的值为10倍的磁盘数量,但是不要超赤80 在高i/o的时间周期监控AIO的性能情况,如果所有的AIO服务进程都已经启动,那么增大maxservers的值。但是,过多的AIO进程也会增加系统的负载 监控AIO服务进程的使用情况: # ps -ek|grep -v grep|grep –v posix_aioserver|grep -c aioserver 调整参数 Ioo –po aio_maxservers=80 / ioo –po aio_minservers=40 |
|
调整虚拟内存参数 |
Oracle推存使用vmo命令去调优虚拟内存管理,参数推荐如下: 命令如下: vmo -p -o minperm%=3 vmo -p -o maxperm%=90 vmo -p -o maxclient%=90 vmo -p -o lru_file_repage=0 vmo -p -o strict_maxclient=1 vmo -p -o strict_maxperm=0 You must restart the system for these changes to take effect.
|
|
调整用户进程参数 |
# chdev -l sys0 -a maxuproc=16384 sys0 changed 也可以使用:smitty chgsys修改"Maximum number of PROCESSES allowed per user" 修改完成后查看: # lsattr -El sys0 -a maxuproc maxuproc 16384 Maximum number of PROCESSES allowed per user True # chdev -l sys0 -a ncargs=256 sys0 changed |
|
调整网络参数 |
用# /usr/sbin/no -a | more来查看网络参数是否满足下面的要求 PARAMETER RECOMMENDED VALUE ipqmaxlen 512 rfc1323 1 sb_max 1500000 tcp_recvspace 65536 tcp_sendspace 65536 udp_recvspace 1351680 这个值应该是udp_sendspace的10倍,但是必须小于sb_max udp_sendspace 135168 这个值至少应该是4K+(db_block_size*db_multiblock_read_count)的大小 修改命令 no -r -o ipqmaxlen=521 no -p -o rfc1323=1 no -p -o sb_max=1500000 no -p -o tcp_recvspace=65536 no -p -o tcp_sendspace=65536 no -p -o udp_recvspace=1351680 no -p -o udp_sendspace=13516 在修改前需要先查看系统设置的兼容性: # lsattr -El sys0 -a pre520tune 1、输出如: 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=512 fi |
|
建立文件系统及目录,赋予权限 |
创建/u01文件系统 安装目录:grid infrastructure+ASM+Clusterware最少需要12GB ================== export ORACLE_BASE=/u01/app/grid #需手工创建 export ORACLE_HOME=/u01/app/11.2/grid #需手工创建 export ORACLE_BASE=/u01/app/oracle #需手工创建 export ORACLE_HOME=$ORACLE_BASE/product/11.2 --------------------------------- mkdir -p /u01/app/grid #grid用户的ORACLE_BASE mkdir -p /u01/app/11.2/grid #grid用户的ORACLE_HOME chown -R grid:dba /u01 mkdir -p /u01/app/oracle #oracle用户的ORACLE_BASE chown -R oracle:dba /u01/app/oracle chmod -R 755 /u01/ 注意:如果grid与orcle安装在同一文件系统下面,如上,在进行权限修改的时候要注意顺序,先进行/u01赋权,再进行/u01/db赋权,否则会被覆盖。 |
|
修改用户环境变量 |
grid用户 在两台服务器的的grid用户的.profile最后,增加如下内容: umask 022 export ORACLE_BASE=/u01/app/grid #需手工创建 export ORACLE_HOME=/u01/app/11.2/grid #需手工创建 export ORACLE_SID=+ASM1 #节点2是+ASM2 export NLS_LANG=AMERICAN_AMERICA.UTF8 export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin export ORACLE_PATH=${PATH}:$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin export ORACLE_TERM=xterm export TNS_ADMIN=$ORACLE_HOME/network/admin export ORA_NLS10=$ORACLE_HOME/nls/data export LD_LIBRARY_PATH=$ORACLE_HOME/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export CLASSPATH=$ORACLE_HOME/JRE export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib export THREADS_FLAG=native export TEMP=/tmp export TMPDIR=/tmp export PS1='hostname':'$PWD'"$ oracle用户 在两台服务器的的oracle用户的.profile最后,增加如下内容: umask 022 export ORACLE_BASE=/u01/app/oracle #需手工创建 export ORACLE_HOME=$ORACLE_BASE/product/11.2 export ORACLE_SID=ytdb1 export ORACLE_UNQNAME=testdb export NLS_LANG=AMERICAN_AMERICA.UTF8 export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin export ORACLE_PATH=${PATH}:$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin export ORACLE_TERM=xterm export TNS_ADMIN=$ORACLE_HOME/network/admin export ORA_NLS10=$ORACLE_HOME/nls/data export LD_LIBRARY_PATH=$ORACLE_HOME/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export CLASSPATH=$ORACLE_HOME/JRE export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib export THREADS_FLAG=native export TEMP=/tmp export TMPDIR=/tmp export PS1='hostname':'$PWD'"$" |
|
配置SSH信任关系 |
以下两个节点都执行: #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中测试方法进行测试。 |
|
配置时间同步服务 |
||
配置共享存储 |
设置磁盘属性 该步骤若不做,在grid安装完成建立ASM时,第二个节点会找不到硬盘,同时加入不了群集。 检测: lsattr -El hdisk2 | grep reserve_ 查看一个即可 设置保持策略: 如果上面查看的结果是reserve_policy chdev -l hdisk2 -a reserve_policy=no_reserve chdev -l hdisk3 -a reserve_policy=no_reserve chdev -l hdisk4 -a reserve_policy=no_reserve chdev -l hdisk5 -a reserve_policy=no_reserve chdev -l hdisk6 -a reserve_policy=no_reserve 如果上面查看的结果是reserve_lock chdev -l hdisk2 -a reserve_lock=no 修改用于数据库存储的PV的属主 chown grid:dba /dev/rhdisk2 chown grid:dba /dev/rhdisk3 chown grid:dba /dev/rhdisk4 chown grid:dba /dev/rhdisk5 chown grid:dba /dev/rhdisk6 修改用于数据库存储的PV的权限 chmod 600 /dev/rhdisk2 chmod 600 /dev/rhdisk3 chmod 600 /dev/rhdisk4 chmod 600 /dev/rhdisk5 chmod 600 /dev/rhdisk6 如果出现两边盘符不一致,可使用软连接实现两边盘符的对应关系一致,如: Ln –s /dev/rhdisk2 /ShareDisk/grid_lun1 .. Ln –s /dev/rhdisk6 /ShareDisk/data_asm1 … 清除PVID 查看LUN,如果已经有了PVID的话,需要进行清除。 chdev -l hdisk2 -a pv=clear 重复同样的操作,清除2-6所有LUN的PVID
|
|
设置磁盘属性【属主,权限】 |
||
准备安装介质 |
上传介质 |
|
总结检查(内存,虚拟内存,临时文件夹,操作系统版本,oracle、grid和nobody用户信息,异步IO,系统包) |
prtconf |grep Memory lsps -a df -g /tmp oslevel -r getconf HARDWARE_BITMODE id oracle id grid id nobody ioo -a no -a |grep udp no -a |grep tcp lslpp -l bos.adt.base bos.adt.lib bos.adt.libm bos.perf.libperfstat bos.perf.perfstat bos.perf.proctools xlC.aix61.rte |
|
安装grid软件 |
安装grid软件 |
# /usr/sbin/slibclean #./rootpre.sh |
安装数据库软件 |
安装database软件 |
问题描述: Exception String: Error in invoking target 'agent nmb nmo nmhs' of makefile '/oracle/db/product/11.2/sysman/lib/ins_emagent.mk'. See '/oracle/oraInventory/logs/installActions2011-11-28_06-48-30PM.log' for details. 解决方法: 由于操作系统缺少补丁包IZ88711SP2.101121.epkg.Z所致。打该补丁包即可。 1、通过ftp://public.dhe.ibm.com/aix/efixes/iz88711/下载文件,并在aix操作系统下以root用户执行: emgr -e IZ88711SP2.101121.epkg.Z 2、以oracle用户执行 make -f $ORACLE_HOME/sysman/lib/ins_emagent.mk relink_sharedobj SHAREDOBJ=libnmem.so 语句。 3、重新retry后能够正常安装oracle软件 |
配置ASM磁盘 |
配置ASM磁盘 |
|
创建数据库 |
创建数据库 |
|
安装后配置 |
安装后检查,配置等 |
安装完成后 备份root.sh 官方建议在安装完成后要备份root.sh脚本文件。因为如果在oracle home目录中又安装其它oracle的产品,安装时OUI会升级已存在的root.sh文件。如果需要root.sh内的原始信息,就可以在备份中找到。 $ cd $ORACLE_HOME $ cp root.sh root.sh.bak 重新编译全部PL/SQL modules --定制模式不用 官方建议在建立或升级数据库后执行utlrp.sql脚本。这个脚本重新编译全部为不可用状态的PL/SQL module,包括包(packages)、存储过程(procedures)、类型(types)。这是一个可选操作,但oracle官方建议在安装后立即执行该脚本。 以oracle用户执行以下命令: $ sqlplus "/as sysdba" SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql 备份spfile文件 $ sqlplus / as sysdba SQL> create pfile='/home/oracle/initorcl1.ora' from spfile='+OCRVOTE/orcl/spfileorcl.ora'; |