AIX 6.1 Oracle11g 11.2.0.4 RAC 安装心得

时间:2021-02-27 08:20:46
在RAC安装过程中涉及多个用户,多种工具,这里列出常见命令提示符:
#  UNIX的SHELL提示符,表示root用户的登录
$  UNIX的SHELL提示符,表示oracl用户或grid用户的登录


安装RAC是一个比较耗时,并且容易出错的过程。最重要的阶段是安装前的准备,准备工作越充分,安装就会越顺利。在这个阶段对硬件、软件进行一系列的配置,如配置存储、网络、参数、权限等步骤繁多,环环相扣,一样都不能马虎。在项目实施期间,数据库工程师往往是后出场的角色,前面有系统工程师安装好操作系统,安装所需的包,调通网络。存储工程师划分好磁盘柜,安装多路径软件,接下来才能开始安装Oracle数据库。有些必要的包最好在安装前和其他工程师沟通好,按照版本要求安装,以免在安装Oracle数据库时发现缺东少西的十分麻烦。
 
AIX的操作系统无法再虚拟机下安装,没接触过AIX操作系统的同学会感觉陌生。其实和Linux相比安装方法是大同小异,或者说没有差异,只是在前期的配置有些不同,具体细节在下文中会有所体现。                                                                                                                
系统配置
1号机主机名
cjscora01
2号机主机名
cjscora02
1号机IP及虚拟IP
10.157.140.1  10.157.140.3
2号机IP及虚拟IP
10.157.140.2  10.157.140.4
SCAN IP
10.157.140.5




数据库安装配置
   
 
ORACLE_BASE
grid: /oracle/app/grid
oracle:/oracle/app/oracle
ORACLE_HOME 
grid: /oracle/app/11.2.0/grid
oracle: /oracle/app/oracle/11.2.0/db
ORACLE_SERVICE_NAME
eicdb
数据文件路径
+DATA
Oracle管理员帐户口令
oracle
数据库组件
全选
标准数据库功能
全选
初始化参数:
  Memory size
 
160G
数据库参数:
   db_block_size
   character set(字符集)
 
8k
ZHS16GBK
是否使用归档方式运行数据库

如果使用归档方式运行数据库,归档路径位置
+ARCH


































































安装过程
一、每个节点的硬件要求:
1、内存:至少4GB。此次实施的服务器为IBM780,内存配置为192GB
#/usr/sbin/lsattr –E –l sys0 –a realmem
MemTotal:     201326592 kB
 
2、交换分区:分配24GB
#/usr/sbin/lsps -a
SwapTotal:   25165824 kB
 
注意:所有节点的CPU主频、内存大小应该大致相当,这样当在做节点间切换时,两个节点的处理能力不会有较大差异。本次项目项目采用的服务器为IBM780,内存192GB,32颗CPU,配置比较不错。
二、操作系统要求:
1、系统包要求
AIX 6.1 required packages: 
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 (For RAC configurations only) 
rsct.compat.clients.rte (For RAC configurations only) 
xlC.aix61.rte:10.1.0.0 or later 
gpfs.base 3.2.1.8 or later (Only for RAC)
 
APARs for AIX 6.1: 
IZ41855 
IZ51456 
IZ52319 
IZ97457 
IZ89165
 
注意:为了通过SSH在两个节点间建立对等关系,需要在每个节点上安装以下软件。
.bash
.openssl
.openssh
2、tmp分区
[root@db1 /]# df –k
至少1GB
 
3、系统版本
[root@db1 /]# oslevel -s
6100-05-11-1140
 
注意:首选的操作系统版本一定是最稳定的而不一定是最新的。本次操作系统采用了比较保守的6100-05-11-1140
,本次安装系统的IBM工程师经验丰富,推荐我们采用了这个版本。
 
4、系统内核参数
smitty chgsys
Maximum number of processes available to a single user    [16384]
 
注意:该参数的默认值偏小,在高并发的生产环境下,session数和process数都比较高,在图形安装页面时如果只是把process调高而相对应的该参数没有及时调整会报出一个警告。
5、建用户和组,配置环境变量
mkgroup -'A' id='1000' adms='root' oinstall
mkgroup -'A' id='1020' adms='root' asmadmin
mkgroup -'A' id='1021' adms='root' asmdba
mkgroup -'A' id='1022' adms='root' asmoper
mkgroup -'A' id='1031' adms='root' dba
mkgroup -'A' id='1032' adms='root' oper
 
mkuser id='1001' pgrp='oinstall' groups='dba,asmdba,asmadmin,oper' home='/home/oracle' oracle
mkuser id='1002' pgrp='oinstall' groups='asmadmin,asmdba,asmoper,oper,dba' home='/home/grid' grid
passwd grid
passwd oracle
 
分别用grid和oracle用户登陆一次,修改密码。
 
给grid、oracle用户授权
检查权限
# /usr/bin/lsuser -a capabilities grid
/usr/bin/lsuser -a capabilities oracle
授权命令如下:
/usr/bin/chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE grid
/usr/bin/chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle
 
6、Grid用户环境变量设置如下:
节点1
umask 022
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_SID=+ASM1; export ORACLE_SID
ORACLE_BASE=/oracle/app/grid; export ORACLE_BASE
ORACLE_HOME=/oracle/app/11.2.0/grid; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH; export PATH
 
节点2
umask 022
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_SID=+ASM2; export ORACLE_SID
ORACLE_BASE=/oracle/app/grid; export ORACLE_BASE
ORACLE_HOME=/oracle/grid; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH; export PATH
 
7、Oracle用户环境变量设置如下:
节点1
umask 022
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/oracle/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/11.2.0/db; export ORACLE_HOME
ORACLE_SID= oradb1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
 
节点2
umask 022
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/oracle/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/11.2.0/db; export ORACLE_HOME
ORACLE_SID= oradb2; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
 
8、设置shell限制
vi /etc/security/limits.conf
文件中加入
default:
       fsize = -1
       core = 2097151
       cpu = -1
       data = -1
       rss = -1
       stack = -1
       nofiles = -1
       stack_hard = -1
 
grid :
       core = -1
oracle :
       core = -1
 
注意:针对grid用户和oracle用户,需要分别设置它们在SHELL中对资源的使用情况,如对CPU、内存、数据段等。为了保证数据库能够运行,需要这些资源的限制取消,也就是-1,或者设置为Oracle推荐的值。
9、检查Core File Creation是否启用
用如下命令检查是否enable
lsattr -El sys0 -a fullcore
fullcore false Enable full CORE dump True
 
1. Set the ulimit setting for core dumps to unlimited:
# ulimit -c unlimited
2. Set the ulimit setting for core files to unlimited:
# ulimit -f unlimited
10、创建相应目录
# mkdir -p /oracle/app/oracle/11.2.0/db
# mkdir -p /oracle/app/grid/
# mkdir -p /oracle/grid
# mkdir -p /oracle/app/oraInventory
# chown -R oracle:oinstall /oracle/app/oracle
# chown -R grid:oinstall /oracle/grid
# chown -R grid:oinstall /oracle/app/grid
# chown -R grid:oinstall /oracle/app/oraInventory
# chmod -R 775 /oracle/
 
11、删除ntp服务,使用oracle时间同步器
# stopsrc -s xntpd
# mv /etc/ntp.conf /etc/ntp.conf.org
注意:RAC集群在运行的过程中要求各节点的时钟进行同步。常用的同步方法有两种,一种是利用操作系统提供的NTP服务;另一种是用Oracle提供的集群时间同步软件。此次项目采用第二种方式。为了避免冲突,将/etc/ntp.conf文件改名,使其失效。
12、网络参数调整
检查参数
 /usr/sbin/no -a | fgrep ephemeral
tcp_ephemeral_low = 32768
tcp_ephemeral_high = 65535
udp_ephemeral_low = 32768
udp_ephemeral_high = 65535
 
修改参数如下
/usr/sbin/no -p -o tcp_ephemeral_low=9000 -o tcp_ephemeral_high=65500
/usr/sbin/no -p -o udp_ephemeral_low=9000 -o udp_ephemeral_high=65500
 
13、其他参数调整
检查系统知否运行在compatibility mode
lsattr -E -l sys0 -a pre520tune
 
如果返回 pre520tune enable Pre-520 tuning compatibility mode True
则系统运行在compatibility mode
 
修改参数方法如下:
# 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=4194304
/usr/sbin/no -o ipqmaxlen=512
fi
 
如果上述命令的执行结果为:
pre520tune disable Pre-520 tuning compatibility mode True,系统未运行在compatibility mode
修改参数方法如下:
 
/usr/sbin/no -r -o ipqmaxlen=512
/usr/sbin/no -p -o rfc1323=1
/usr/sbin/no -p -o sb_max=4194304
/usr/sbin/no -p -o tcp_recvspace=65536
/usr/sbin/no -p -o tcp_sendspace=65536
/usr/sbin/no -p -o udp_recvspace=655360
/usr/sbin/no -p -o udp_sendspace=65536
 
三、配置节点间互信关系
1、修改/etc/hosts加入下面内容:
vi /etc/hosts
127.0.0.1               loopback localhost      # loopback (lo0) name/address
10.157.140.1      cjscora01
10.157.140.3      cjscora01-vip
192.168.150.1     cjscora01-priv
10.157.140.2      cjscora02
10.157.140.4      cjscora02-vip
192.168.150.2     cjscora02-priv
10.157.140.5      cjscora-scan
 
2、配置用户等效性
这部分操作是传统的做法,在oracle11g R2版本后我们可以省去这部分手工操作,在图形化安装集群软件的过程中配置,只需点点鼠标就可完成所有的工作。
配置grid用户等效性
在节点一执行下命令:
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
 
$ /usr/bin/ssh-keygen -t rsa
$ /usr/bin/ssh-keygen -t dsa
 
$ touch ~/.ssh/authorized_keys
 
$ ssh cjscora01 cat /home/grid/.ssh/id_rsa.pub >> authorized_keys
$ ssh cjscora01 cat /home/grid/.ssh/id_dsa.pub >> authorized_keys
$ ssh cjscora02 cat /home/grid/.ssh/id_rsa.pub >> authorized_keys
$ ssh cjscora02 cat /home/grid/.ssh/id_dsa.pub >> authorized_keys
 
$chmod 600 ~/.ssh/authorized_keys
 
$ exec /usr/bin/ssh-agent $SHELL
$ /usr/bin/ssh-add
 
$ scp authorized_keys cjscora02:/home/grid/.ssh     --将grid密钥拷贝到节点二
 
$ ssh cjscora01 date
$ ssh cjscora02 date
$ ssh cjscora01-priv date
$ ssh cjscora02-priv date
 
 配置oracle用户等效性
在节点一执行下面命令创建oracle密钥:
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
 
$ /usr/bin/ssh-keygen -t rsa
$ /usr/bin/ssh-keygen -t dsa
 
$ touch ~/.ssh/authorized_keys
 
$ ssh cjscora01 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys
$ ssh cjscora01 cat /home/oracle/.ssh/id_dsa.pub >> authorized_keys
$ ssh cjscora02 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys
$ ssh cjscora02 cat /home/oracle/.ssh/id_dsa.pub >> authorized_keys
 
$chmod 600 ~/.ssh/authorized_keys
 
$ exec /usr/bin/ssh-agent $SHELL
$ /usr/bin/ssh-add
 
$ scp authorized_keys cjscora02:/home/oracle/.ssh      --将oracle密钥拷贝到节点二
 
$ ssh cjscora01 date
$ ssh cjscora02 date
$ ssh cjscora01-priv date
$ ssh cjscora02-priv date
 
四、配置ASM磁盘         
--须通过下面的步骤确认磁盘可用且一致,两节点都执行
1、检查磁盘数量
/usr/sbin/lspv | grep -i none
 
hdisk4          none                                None                                
hdisk5          none                                None                               
hdisk6          none                                None                               
hdisk7          none                                None                                
……
hdisk315        none                                None
 
2、给磁盘分配pv id
外部存储设备中的同一块硬盘在不同节点上的名称可能会不同。同一个硬盘在节点一中的名称可能是hdisk4,在节点二中的名称可能是hdisk5.虽然ASM实例能正确识别这样的硬盘,但对于管理员来说可能会产生歧义。不管怎样,这块硬盘有一个不变的属性是PVID,无论在节点一还是节点二下都是一样的。通过下面的命令可以产生硬盘的PVID
chdev -l hdisk4  -a pv=yes 
chdev -l hdisk5  -a pv=yes 
chdev -l hdisk6  -a pv=yes 
chdev -l hdisk7  -a pv=yes 
……
chdev -l hdisk100 -a pv=yes
 
3、检查pv id是否在两个节点间一一对应
cjscora01#lspv
hdisk4          00f76fa9f361157b                    None                                
hdisk5          00f76fa9f36116a5                    None                               
hdisk6          00f76fa9f36117d0                    None                               
hdisk7          00f76fa9f3611901                    None                                
……
hdisk315         00f76fb4f3612dce                    None 
 
cjscora02# lspv
hdisk4          00f76fa9f361157b                    None                               
hdisk5          00f76fa9f36116a5                    None                                
hdisk6          00f76fa9f36117d0                    None                               
hdisk7          00f76fa9f3611901                    None                               
……
Hdisk315        00f76fb4f3612dce                    None 
 
4、修改磁盘权限
本项目使用ASM,需要指定ASM磁盘中所要包含的磁盘,并保证grid用户有对这些磁盘的写权限
# chown grid:asmadmin /dev/rhdiskn       --修改磁盘属组命令示例
       
chown grid:asmadmin /dev/rhdisk4        
chown grid:asmadmin /dev/rhdisk5        
chown grid:asmadmin /dev/rhdisk6        
chown grid:asmadmin /dev/rhdisk7        
……
chown grid:asmadmin /dev/rhdisk315 
 
# chmod 660 /dev/rhdiskn                  --修改磁盘权限命令示例
 
chmod 660 /dev/rhdisk4
chmod 660 /dev/rhdisk5
chmod 660 /dev/rhdisk6
chmod 660 /dev/rhdisk7
……
chmod 660 /dev/rhdisk315
 
5、检查磁盘属性
有些型号的存储设别具有reserve_lock或者reserve_policy属性,这两个属性的存在会阻止多个节点对存储设备进行并行读写,所以在安装集群软件之前应该对其属性进行修改。
lsattr -E -l hdisk4  |grep reserve_
lsattr -E -l hdisk5  |grep reserve_
lsattr -E -l hdisk6  |grep reserve_
lsattr -E -l hdisk7  |grep reserve_
……
lsattr -E -l hdisk315 |grep reserve_
 
6、设置磁盘属性为reserve_lock=no或reserve_policy=no_reserve
chdev -l hdiskn -a [ reserve_lock=no | 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
chdev -l hdisk7 –a reserve_policy=no_reserve
……
chdev -l hdisk100–a reserve_policy=no_reserve
 
7、清除磁盘pvid
通过PVID可以在不同节点中对比、确认同一块硬盘,但是在安装集群软件之前应该在每个节点上将PVID清除掉,否则在安装过程中可能会出现错误。
chdev -l hdisk4  -a pv=clear