oracle 11gR2 rac on aix6.1
1 整体拓扑
2 预安装检查与规划
2.1 硬件环境
两台 IBM P750 ;
两台 B80光纤交换机
一台 Sun StorageTek 6540 存储;
2.2 系统版本
[root@jxtest01:/# oslevel -s
[root@jxtest01:/# lslpp -L | grep ssh
2.3 软件
集群及数据库软件:
p10404530_112030_AIX64-5L_1of7.zip
p10404530_112030_AIX64-5L_2of7.zip
p10404530_112030_AIX64-5L_3of7.zip
其他软件:
---解压工具
p10275325_100_Generic.zip --一款多路径软件
2.4 系统硬件环境检查
Oracle11gR2 RAC 最低安装要求:
内存:安装 grid infrastructure 最少需要 1.5GB 的内存,安装 grid、infrastructure和 RAC 最少需要 2.5GB 的内存
swap:最少需要 1.5GB
temp:最少 1GB
安装目录:grid+datase 30G
操作系统:AIX 6.1 TL 02 SP1 ("6100-02-01), 64-bit kernel
验证方法:
1、确认内存大小
#lsattr -El sys0 -a realmem
realmem 32048576 Amount of usable physical memory in Kbytes False
2、确认 SWAP 空间,最少 2G。
#lsps -a
Page Space Physical Volume Volume Group Size %Used Active Auto Type
hd6 hdisk0 rootvg 4096MB 12 yes yes lv
#chps -s 3 hd6 增加 3 个 pp
3、确认/tmp 大于 1.5GB 和 Oracle 目录空间 15GB
#chfs -a size=1.5G /tmp
4、确认系统结构
#getconf HARDWARE_BITMODE
64
5、确认系统 CPU 个数和主频:
# lsdev -C |grep proc
proc0 Available 00-00 Processor
proc4 Available 00-04 Processor
proc8 Available 00-08 Processor
proc12 Available 00-12 Processor
# lsattr -El proc0
frequency 752010000 Processor Speed False
state enable Processor state False
type PowerPC_RS64-III Processor type False
2.5 整体规划
ASM磁盘组规划: |
|||
磁盘组名 |
PV |
单个lun大小 |
冗余 |
OCR |
/dev/rhdisk10 |
10G |
normal |
DATA |
/dev/rhdisk4 /dev/rhdisk5 /dev/rhdisk6 /dev/rhdisk8 /dev/rhdisk9 |
300G |
externa |
ARCH |
/dev/rhdisk10 |
300G |
externa |
IP地址规划: |
|||
网卡 |
名称 |
IP |
用途 |
en0 |
jxtest01 |
132.77.64.** |
public |
jxtest02 |
132.77.64.** |
||
en2 |
jxtest01-priv |
132.77.54.** |
private |
jxtest02-priv |
132.77.54.** |
||
虚拟IP |
jxtest01-vip |
132.77.64.** |
VIP |
jxtest02-vip |
132.77.64.** |
||
scan |
jxtest-scan |
132.77.64.** |
Scan address |
目录规划: |
|||
用户 |
目录 |
||
oracle |
$ORACLE_BASE = /u01/app/oracle |
||
$ORACLE_HOME = /u01/app/oracle/11.2.0/oracle |
|||
grid |
$ORACLE_BASE=/u01/grid |
||
$ORACLE_HOME=/u01/app/11.2.0/grid |
3 安装准备
3.1 配置IP地址
根据IP地址规划表配置IP地址
服务地址要配置网关
3.2 修改hosts文件
132.77.64.** jxtest01
132.77.64.** jxtest02
132.77.54.** jxtest01-priv
132.77.54.** jxtest02-priv
132.77.64.** jxtest01-vip
132.77.64.** jxtest02-vip
132.77.64.** jxtest-scan
3.3 安装操作系统软件包
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)
以上 filesets 安装与否可以用命令 lslpp -l 进行检查确认。
安装 PATCHES ( 此步可以省略)
AIX 版本要求如下
AIX 6.1 TL 02 SP1 ("6100-02-01), 64-bit kernel 或以上版本
检查方法:
# oslevel -r
6100-03
其它单个补丁的要求如下:
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
AIX 5L installations All AIX 5L 5.3 installations Authorized Problem Analysis
Reports (APARs) for AIX 5L v. 5.3 ML06, and the following AIX
fixes:
IZ42940
IZ49516
IZ52331
验证:#/usr/sbin/instfix -i -k IZ41855
可以在安装数据库软件的时候选择忽略
3.4 创建操作系统组合用户
以 root 用户使用如下命令为网格及 Oracle 用户创建 OS 组:
#mkgroup -'A' id='501' adms='root' oinstall
#mkgroup -'A' id='502' adms='root' asmadmin
#mkgroup -'A' id='503' adms='root' asmdba
#mkgroup -'A' id='504' adms='root' asmoper
#mkgroup -'A' id='505' adms='root' dba
#mkgroup -'A' id='506' adms='root' oper
创建 Oracle 软件所有者:
#mkuser id='501' pgrp='oinstall' groups='dba,asmadmin,asmdba,asmoper'
home='/home/grid' fsize=-1 cpu=-1 data=-1 rss=-1 stack=-1 stack_hard=-1
capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PR
OPAGATE grid
#mkuser id='502' pgrp='oinstall' groups='dba,asmdba,oper'
home='/home/oracle' fsize=-1 cpu=-1 data=-1 rss=-1 stack=-1 stack_hard=-1
capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PR
OPAGATE oracle
检查上面创建的两个用户:
#id grid
#id oracle
使用 passwd 命令为 grid(密码:grid)和 oracle(密码:oracle)账户设
置密码。
#passwd grid
#passwd oracle
3.5 创建软件安装目录结构并更改权限
mkdir -p /u01/grid
mkdir -p /u01/app/11.2.0/grid
mkdir -p /u01/app/oracle
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/
--------------安装后 ------安装后
/u01 root:oinstall
/u01/app root:oinstall
/u01/app/11.2.0 root:oinstall
/u01/app/11.2.0/grid root:oinstall
/u01/grid grid:oinstall
/u01/app/oracle oracle:oinstall
3.6 修改用户环境参数文件
环境变量:
#oracle user
umask 022
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/11.2.0/oracle
export ORACLE_SID=jxdb1
export ORACLE_UNQNAME=jxdb
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
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'"$"
PS1="$LOGNAME@`hostname`$"; export PS1
#if [ -t 0 ]; then
#stty intr ^C
#fi
set -o vi
===================================================
# grid
umask 022
export ORACLE_BASE=/u01/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_SID=+ASM1
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'"$"
set -o vi
3.7 系统部分参数修改
3.7.1 打开异步 IO
在 AIX6.1 中默认异步 IO 服务是打开的。
推荐的 aio_maxreqs 值为 64k (65536),检查方法如下:
AIX 6.1
# ioo –o aio_maxreqs
aio_maxreqs = 65536
查看当前启动了多少异步 IO 进程的方法:
# ps -ek|grep -v grep|grep –v posix_aioserver|grep -c aioserver
3.7.2 调整虚拟内存管理
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.
3.7.3 增加系统块尺寸分配
Oracle 推荐增加 ARG/ENV 空间分配到 128,也就是 128 个 4K 的块大小,
命令如下:
/usr/sbin/chdev -l sys0 -a ncargs='128'
3.7.4 调整 SHELL 限制
root 用户
在两台主机上最消 root 用户 shell 限制,因为 CRS 进程(crsd)需要以 root 用
户运行。
可以通过 smit chuser 去修改 root 用户限制,或直接修改/etc/security/limits
文件,具体参数如下:
root:
fsize = -1
core = 2097151
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1
oracle 用户和grid用户 在创建的时候已经修改了,如果没有,可以仿照 修改root shell限制的方法一样去修改
3.7.5 查看系统当前允许运行的最大进程数:
#/usr/bin/lsattr -E -l sys0 -a maxuproc
修改 maxuproc 参数
#/usr/sbin/chdev -l sys0 -a maxuproc = 16384
3.7.6 确认网络配置参数
先查看系统设置的兼容性:
# /usr/sbin/lsattr -E -l sys0 -a pre520tune
1、如果输出如:
pre520tune disable Pre-520 tuning compatibility mode True
说明是不兼容方式,这样就可以用下面的方式调整:
ipqmaxlen 参数:
no -r -o ipqmaxlen=512
其他参数:
no -p -o rfc1323=1
no -p -o sb_max=1310720
no -p -o tcp_recvspace=65536
no -p -o tcp_sendspace=65536
no -p -o udp_recvspace=655360
no -p -o udp_sendspace=65536
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
3.8 配置共享存储
3.8.1 扫盘认盘
cfgmgr 扫描磁盘 认到存储上划过来的lun
lspv 查看
查看 LUN,如果已经有了 PVID 的话,需要进行清除。
chdev -l hdisk2 -a pv=clear
3.8.2 修改物理卷属性
共享存储磁盘的 reserve_policy 属性需要是 no,使用如下
lsattr -E -l hdisk*| grep reserve_policy
3.8.3 更改磁盘属性:
chdev -l hdisk4 -a reserve_policy=no_reserve
chdev -l hdisk5 -a reserve_policy=no_reserve
chdev -l hdisk6 -a reserve_policy=no_reserve
chdev -l hdisk7 -a reserve_policy=no_reserve
chdev -l hdisk8 -a reserve_policy=no_reserve
chdev -l hdisk9 -a reserve_policy=no_reserve
chdev -l hdisk10 -a reserve_policy=no_reserve
chdev -l hdisk11 -a reserve_policy=no_reserve
chdev -l hdisk12 -a reserve_policy=no_reserve
3.8.4 更改磁盘的属组
chown -R grid:oinstall rhdisk4
chown -R grid:oinstall rhdisk5
chown -R grid:oinstall rhdisk6
chown -R grid:oinstall rhdisk7
chown -R grid:oinstall rhdisk8
chown -R grid:oinstall rhdisk9
chown -R grid:oinstall rhdisk10
chown -R grid:oinstall rhdisk11
chown -R grid:oinstall rhdisk12
3.8.5 更改磁盘权值
chmod -R 660 rhdisk4
chmod -R 660 rhdisk5
chmod -R 660 rhdisk6
chmod -R 660 rhdisk7
chmod -R 660 rhdisk8
chmod -R 660 rhdisk9
chmod -R 660 rhdisk10
chmod -R 660 rhdisk11
chmod -R 660 rhdisk12
3.9 配置ntp
3.9.1 配置时钟同步
如果存在时钟服务器可以让每个节点都指向时钟服务器
没有时钟服务器可以用集群的一个节点来当做时钟服务器
3.9.2 修改AIX平台配置文件
# vi /etc/rc.tcpip
# start /usr/sbin/xntpd "$src_running" "-x"
3.9.3 AIX停止和启动XNTPD进程
#stopsrc -s xntpd
#startsrc -s xntpd -a "-x"
3.10 配置ssh
手动配置并不好使
解压出的软件包内有配置ssh的脚本
分别在:
/soft /grid/sshsetup/ 下
/soft /database/sshsetup/ 下
分别以grid 和 oracle 用户执行:
配置互信:
(grid和oracle 都有这个脚本,在解压目录里)
sshUserSetup.sh -user grid -hosts "jxtest01 jxtest02" -advanced –PromptPassphrase
sshUserSetup.sh -user oracle -hosts "jxtest01 jxtest02" -advanced –PromptPassphrase
3.11 dns配置 (可忽略)
DNS 配置(避免 grid 最后验证报错,可忽略)
#[/]mv /usr/bin/nslookup /usr/bin/nslookup.org
#[/]cat /usr/bin/nslookup
#!/usr/bin/sh
HOSTNAME=${1}
if [[ $HOSTNAME = "rx-cluster-scan" ]]; then
echo "Server: 24.154.1.34"
echo "Address: 24.154.1.34#53"
echo "Non-authoritative answer:"
echo "Name: rx-cluster-scan"
echo "Address: 1.1.1.11" #假设 1.1.1.1 为 SCAN 地址
else
/usr/bin/nslookup.org $HOSTNAME
fi
注意:if you need to modify your SQLNET.ORA, ensure that EZCONNECT is in the list if you
specify the order of the naming methods used for client name resolution lookups (11g Release
2 default is NAMES.DIRECTORY_PATH=(tnsnames, ldap, ezconnect)).
4 安装 grid
4.1 准备介质
p10404530_112030_AIX64-5L_3of7.zip
4.2 解压以及更改权限
unzip p10404530_112030_AIX64-5L_3of7.zip
chown -R grid:oinstall grid/
4.3 使用 CVU脚本来校验系统是否满足安装需求
1. 执行 CVU 脚本校验系统,并将检查结果输出到 report.txt 文本文件中。
./runcluvfy.sh stage -pre crsinst -n jxtest01,jxtest02 -fixup -verbose >report.txt
2. 可以使用如下命令查看分析 report.txt 文件:
cat report.txt|grep failed
3. root 用户执行:
#./ rootpre.sh
在执行 root.sh 的时候 会报错
4.4 开始安装
正常步骤即可
4.5 执行脚本
执行第一个脚本没有问题,在执行第二个脚本的时候会触发bug
Adding Clusterware entries to inittab
ohasd failed to start
Failed to start the Clusterware. Last 20 lines of the alert log follow:
[client(18649)]CRS-2101:The OLR was formatted using version 3.
原因:
1. 在执行root.sh时候 会在/tmp/.oracle下产生一个文件npohasd文件,此文件的只有root用户有权限(按照此原因可以解决)
因此,出现不能启动ohasd进程
2. 系统bug 升级到 11.2.0.3.4 可以解决
解决步骤总结如下:
1. 使用类似如下路径的命令 删除配置
/u01/app/11.2.0/grid/crs/install/rootcrs.pl -verbose -deconfig -force ---删除配置
2. 重新运行root.sh
./root.sh
3. 同时另开一个窗口执行:
/bin/dd if=/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
如果出现
/bin/dd: opening`/var/tmp/.oracle/npohasd': No such file or directory
的时候文件还没生成就继续执行,直到能执行为止,一般出现Adding daemon to inittab这条信息的时候执行dd命令。
4. 另外还有一种解决方法就是更改文件权限
#cd /tmp/.oracle/
#rm npohasd
#touch npohasd
#chmod 755 npohasd
5 安装 database
校验:
su - oracle
调用grid的脚本,进入grid对应的命令(bin)目录:
./cluvfy stage -pre dbinst -n jxtest01,jxtest02 >/home/oracle/report.txt
cat report.txt|grep failed
安装 略….
6 创建 Oracle RAC集群数据库
6.1 创建asm磁盘组
6.2 dbca建库
7 Oracle RAC 集群的简单管理
grid 用户查看集群节点个数:
#olsnodes -n
grid 用户查看集群状态:
#crsctl stat res -t(或者 crs_stat -t -v)
oracle 用户关闭数据库:
#sqlplus / as sysdba
SQL>shutdown immediate
SQL>exit
Srvctl stop database –d dbid
root 用户关闭集群:
#/u01/app/11.2.0/grid/bin/crsctl stop crs
crsctl stop cluster -all
root 用户关闭操作系统:
shutdown -F
root 用户启动集群:
#/u01/app/11.2.0/grid/bin/crsctl start crs
oracle 用户启动数据库:
#sqlplus / as sysdba
SQL>startup
SQL>exit
8 本次安装遇到的bug
Oracle 11.2.0.1 RAC GRID 无法启动 : Oracle High Availability Services startup failed
[root@rac1 bin]# ./crsctlstart crs
CRS-4124: Oracle HighAvailability Services startup failed.
CRS-4000: Command Startfailed, or completed with errors.
[root@rac1 bin]# ps -ef|grep has
root 8081 1 0 03:14 ? 00:00:00/u01/app/grid/11.2.0/bin/ohasd.bin reboot
root 8137 4230 1 03:23 pts/0 00:00:00 grep has
[root@rac1 bin]# kill -9 8081
[root@rac1 bin]# ./crsctl start crs
CRS-4124: Oracle High Availability Servicesstartup failed.
CRS-4000: Command Start failed, orcompleted with errors.
-----为bug:
解决:
在启动CRS之前,先在2个节点指定dd命令:
[root@rac1 client]# /bin/ddif=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
然后启动,这没有问题了:
--查看进程,都拉起来了。注意11g的进程启动有些慢,多等一会。
现在可以处理我们实例,弄好之后在升级到11.2.0.3.4. 免得每次都遇到这种问题。
还有就是配置开机启动脚本,开机执行dd