pugna
全部博文(171)
分类: Oracle
2013-04-06 05:56:57
Oracle RAC 11g R2安装步骤
前提:
a.至少两台用于安装RAC的主机
b.每台主机都至少有2个网卡
c.主机之间各有一个网卡处于同一个私有网段(即通过内网相连,用于RAC的心跳检测及同步,private ip)
d.主机之间还 各有一个网卡处于另一个网段(此网段不要与之前的private ip的网段相同,一般用于DBA管理使用,public ip)
另:对于c,若使用虚拟机安装,只要宿主机是同一台机器即可(宿主机不同的情况没测试过,不清楚是否也可以)。
一、关闭selinux
#vim /etc/selinux/config
***********************************************************
SELINUX=disabled
SELINUXTYPE=targeted
***********************************************************
#setenforce 0
二、关闭防火墙
#service iptables stop
三、检验安装条件(各节点)
每个节点的内存至少1.5G,swap至少2G,磁盘空间4.5G,/tmp 大小至少1G。
#grep MemTotal /proc/meminfo
#grep SwapTotal /proc/meminfo
#df -h
#df -h /tmp
四、安装依赖包(各节点)
1.安装依赖包
#yum install -y make sysstat binutils gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers compat-libstdc++ elfutils-libelf elfutils-libelf-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel unixODBC unixODBC-devel ksh pdksh
#rpm -q make sysstat binutils gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers compat-libstdc++ elfutils-libelf elfutils-libelf-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel unixODBC unixODBC-devel ksh pdksh | grep not
2.安装cvuqdisk包(各节点)
在grid安装目录的rpm文件夹下有cvuqdisk的rpm包。
使用root安装此包(如果提示需要使用oinstall组用户执行,就先用grid用户安装,此时系统会提示没有权限,再用root安装即可)。
3.安装readline包和rlwrap软件
#yum install -y readline*
#tar -xzvf rlwrap-0.37.tar.gz
#cd rlwrap-0.37 && ./configure && make && make install
五、创建用户和组(各节点)
#groupadd -g 1001 oinstall
#groupadd -g 1002 dba
#groupadd -g 1003 oper
#groupadd -g 1004 asmadmin
#groupadd -g 1005 asmoper
#groupadd -g 1006 asmdba
grid用户用于安装Oracle Grid Infrastructure
oracle用户用于安装Oracle Database
#useradd -u 1001 -g oinstall -G dba,asmadmin,asmdba,asmoper grid
#useradd -u 1002 -g oinstall -G dba,asmadmin,asmdba,asmoper oracle
#passwd grid
#passwd oracle
注:此步中各个节点的用户和组的id一定要相同。
六、修改limits.conf文件(各节点)
限制grid和oracle用户对系统资源的使用
#vim /etc/security/limits.conf
***********************************************************
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
***********************************************************
七、修改login文件(各节点)
要使limits.conf文件的配置生效,必须要将pam_limits.so文件加入到启动文件中
#vim /etc/pam.d/login
***********************************************************
session required /lib64/security/pam_limits.so #64为系统位数
session required pam_limits.so
***********************************************************
八、修改profile文件(各节点)
功能和步骤七和八相同,都是为了限制grid和oracle用户对系统资源的使用
#vim /etc/profile
***********************************************************
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
***********************************************************
九、修改sysctl.conf文件(各节点)
修改内核参数配置文件
#vim /etc/sysctl.conf
***********************************************************
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1176379392
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
***********************************************************
让参数生效
#sysctl -p
十、配置hosts文件(各节点)
#vim /etc/hosts
*******************************************************************************
# Public IP
192.168.1.201 racnode1
192.168.1.202 racnode2
# Virtual IP
192.168.1.211 racvip1
192.168.1.212 racvip2
# Private IP
10.0.0.211 racpriv1
10.0.0.212 racpriv2
# Scan IP
192.168.1.231 racscan
127.0.0.1 racnode1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
*******************************************************************************
配置完成之后,各个节点之间应该可以相互ping通Public IP和Virtual IP对应的主机名和IP。
注:主机名不能含有"."。另外,127.0.0.1对应的主机名在各个节点上是不一样,分别是各节点的主机名。
十一、配置DNS(DNS服务器)
在DNS中配置SCAN域名对应的SCAN IP的解析。
若不设置此步,则不可以使用SCAN来实现负载均衡的功能(可以通过在客户端配置VIP来实现负载均衡),并不会影响其它功能的使用。
十二、配置NTP服务(各节点)
保证各节点都启用NTP服务,或都不启用NTP服务。
若启用,保证各节点与外网连通,且使用同一个NTP地址。
若不启用,后面检验条件时会提示不通过,可以直接忽略,因为Oracle会自动使用ctss服务来同步各节点的时间。
十三、手动配置ssh互信
这一步可以直接跳过,在图形安装过程中,可由Oracle自动完成配置。
如要手动配置,参考我的blog。
十四、创建目录(各节点)
#mkdir -p /opt/rac/base
#mkdir -p /opt/rac/grid
#mkdir -p /opt/rac/oracle
#mkdir -p /opt/rac/oracle/11.2/dbhome_1
#chown -R oracle:oinstall /opt/rac
#chmod -R 775 /opt/rac
注:/opt/rac的属主和属组只能是oracle:oinstall。
十五、配置grid用户和Oracle用户的环境变量(各节点)
1.grid用户(这是节点1的配置,不同节点的ORACLE_SID不同)
#vim /home/grid/.bash_profile
***********************************************************
umask 022
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_TERM=xterm
export ORACLE_SID=+ASM1
export ORACLE_BASE=/opt/rac/base
export ORACLE_HOME=/opt/rac/grid
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export DISPLAY=192.168.1.32:0.0
export PATH
alias asmcmd='rlwrap asmcmd'
alias lsnrctl='rlwrap lsnrctl'
***********************************************************
2.Oracle用户(这是节点1的配置,不同节点的ORACLE_SID不同)
#vim /home/oracle/.bash_profile
***********************************************************
umask 022
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_TERM=xterm
export ORACLE_SID=racdb1
export ORACLE_BASE=/opt/rac/oracle
export ORACLE_HOME=$ORACLE_BASE/11.2/dbhome_1
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
export DISPLAY=192.168.1.32:0.0
export PATH
alias sqlplus='rlwrap sqlplus'
alias lsnrctl='rlwrap lsnrctl'
alias rman='rlwrap rman'
***********************************************************
十六、使用udev来配置共享存储(各节点)
#ls -l /dev/sd*
#echo "options=--whitelisted --replace-whitespace" >> /etc/scsi_id.config
#touch /etc/udev/rules.d/99-oracle-asmdevices.rules
将以下脚本输出的内容输入到/etc/udev/rules.d/99-oracle-asmdevices.rules文件中
***********************************************************
for i in b c d e f g h i ;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""
done
***********************************************************
#vim /etc/udev/rules.d/99-oracle-asmdevices.rules
#start_udev
#ls -l /dev/sd*
#ls -l /dev/asm*
#scp /etc/udev/rules.d/99-oracle-asmdevices.rules racnode2:/etc/udev/rules.d/99-oracle-asmdevices.rules
十七、使用grid用户调用图形界面进行安装Oracle Grid Infrastructure
$cd /opt/file/grid
使用 CVU 验证是否满足 Oracle 集群件要求
$./runcluvfy.sh stage -pre crsinst -n racnode1,racnode2 -fixup -verbose
使用 CVU 验证硬件和操作系统设置
$./runcluvfy.sh stage -post hwos -n racnode1,racnode2 -verbose
$export LANG=en.UTF8
$./runInstaller
十八、检验cluster安装是否成功
1.检查集群中的结点状态
2.检查SCAN是否产生,是否能ping通
3.检查所有服务的状态
4.检查ASM实例的状态
十九、使用oracle用户调用图形界面进行安装Oracle Database
$cd /opt/file/database
$export LANG=en.UTF8
$./runInstaller
二十、使用oracle用户调用dbca创建数据库
$export LANG=en.UTF8
$dbca
二十一、查看整个集群状态
#crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....ER.lsnr ora....er.type ONLINE ONLINE racnode1
ora....N1.lsnr ora....er.type ONLINE ONLINE racnode1
ora....KGRP.dg ora....up.type ONLINE ONLINE racnode1
ora.asm ora.asm.type ONLINE ONLINE racnode1
ora.cvu ora.cvu.type ONLINE ONLINE racnode1
ora.gsd ora.gsd.type ONLINE OFFLINE
ora....network ora....rk.type ONLINE ONLINE racnode1
ora.oc4j ora.oc4j.type ONLINE ONLINE racnode1
ora.ons ora.ons.type ONLINE ONLINE racnode1
ora.racdb.db ora....se.type ONLINE ONLINE racnode1
ora....SM1.asm application ONLINE ONLINE racnode1
ora....E1.lsnr application ONLINE ONLINE racnode1
ora....de1.gsd application ONLINE OFFLINE
ora....de1.ons application ONLINE ONLINE racnode1
ora....de1.vip ora....t1.type ONLINE ONLINE racnode1
ora....SM2.asm application ONLINE ONLINE racnode2
ora....E2.lsnr application ONLINE ONLINE racnode2
ora....de2.gsd application ONLINE OFFLINE
ora....de2.ons application ONLINE ONLINE racnode2
ora....de2.vip ora....t1.type ONLINE ONLINE racnode2
ora.scan1.vip ora....ip.type ONLINE ONLINE racnode1
其它注意事项:
1.给votedisk和ocr创建ASM时,如果选择normal模式,则需要3个ASM disk。
2.安装Oracle Grid Infrastructure的ORACLE_HOME目录与ORACLE_BASE目录不能存在从属关系;而安装Oracle Database的ORACLE_HOME又必须在ORACLE_BASE目录下。
部分错误整理:
错误1:
在第一个节点执行root.sh时报错:
error while loading shared libraries:libcap.so.1:cannot open shared object file: No such file or directory
解决办法:
确定libcap包已经安装
rpm -q libcap
find / -name '*libcap*' -print
创建链接
ln -s /lib64/libcap.so.2.16 /lib64/libcap.so.1
删掉root.sh的配置:
/opt/rac/grid/crs/install/roothas.pl -deconfig -verbose -force
再次运行root.sh即可。
错误2:
这个错误会在Redhat6.x/CentOS6.x上安装Oracle11gR2 11.2.0.1 RAC时出现。
在第一个节点执行root.sh时报错(各个节点都会出现这个问题):
Adding daemon to inittab
CRS-4124: Oracle High Availability Services startup failed.
CRS-4000: Command Start failed, or completed with errors.
解决办法:(临时)
在生成了文件/var/tmp/.oracle/npohasd文件后,使用root立即执行以下命令命令:
/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
如果懒得看npohasd有没有生成,就用下面的命令让它自动完成
watch -n 0.5 /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
错误3:
通过dbca方式, 在基于ASM存储建库时, 报以下错误:
ORA-12547: TNS:lost contact
原因:
In environment where listener home (including SCAN listener which resides in Grid Infrastructure/ASM home) and database home are owned by different OS user, ORA-12537 could happen when connecting through listener, when creating database through DBCA, or when installing database software and creating a database in runInstaller. Job Role Separation is a typical example as SCAN and local grid home listener is owned differently than database.
解决办法:
检查grid安装的SCAN listener目录和Oracle Database目录的owner是不是一样的。如果不一样,改成一样或将目录设置为770权限。
错误4:
在安装Oracle Grid Infrastructure的最后一步Oracle Cluster Verification Utility时,报以下错误:
INFO: Checking Single Client Access Name (SCAN)...
INFO: Checking name resolution setup for "racscan"...
INFO: ERROR:
INFO: PRVF-4664 : Found inconsistent name resolution entries for SCAN name "racscan"
INFO: ERROR:
INFO: PRVF-4657 : Name resolution setup check for "racscan" (IP address: 192.168.1.231) failed
INFO: ERROR:
INFO: PRVF-4664 : Found inconsistent name resolution entries for SCAN name "racscan"
INFO: Verification of SCAN VIP and Listener setup failed
原因:
(metalink,文档ID为887471.1)
这是因为安装程序通过DNS无法解析出SCAN的地址。如果在DNS服务器中配置了SCAN的信息,排查DNS。如果是在/etc/hosts中配置的DNS,则在各节点ping SCAN,如果能ping通,这个错误就可以忽略。
2013-04-06 05:53