Oracle RAC For Redhat Linux 4
官方文档请参考:http://www.oracle.com/technology/global/cn/pub/articles/smiley_rac10g_install.html
规划:
crs 安装本地/orac/crs
oracle 共享磁盘/orac/orahome ocfs2
data 共享磁盘/orac/oradata ocfs2
ocr 共享磁盘/orac/oradata/ocrdata ocfs2
votedisk 共享磁盘/orac/oradata/votedisk ocfs2
一、准备oracle数据库安装环境
1、在2台主机上创建dba、oinstall组,oracle用户。用户ID和组ID,以及oracle密码在所有集群主机上必须相同。
#groupadd -g 1001 dba
#groupadd -g 1002 oinstall
#useradd -u 1001 -m -g oinstall -G dba oracle
#id oracle
#passwd oracle
2、配置内核参数/etc/sysctl.conf,添加以下内容:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
#sysctl -p
使配置立即生效。
3、为oracle用户设置shell限制
/etc/security/limits.conf 添加:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
/etc/pam.d/login 添加:
session required /lib/security/pam_limits.so
/etc/profile 添加:
if [ /$USER = "oracle" ]; then
if [ /$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
/etc/csh.login 添加:
if ( /$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
4、配置Hangcheck计时器(orace强烈建议配置)
#modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
/etc/rc.d/rc.local 添加
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
5、验证已经安装的程序包
make-3.80-5
gcc-3.4.3-9.EL4
compat-db-4.1.25-9
安装gcc:kernel-headers(即glibc-kernheaders)>glibc-headers>glibc-devel>gcc
6、修改/home/oracle/.bash_profile,添加以下:
ORACLE_BASE=/orac/orahome; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib; export LD_LIBRARY_PATH
LC_CTYPE=en_US.UTF-8; export LC_CTYPE
二、网络配置
1、配置集群主机网卡
2、配置/etc/hosts,从回送地址中删除主机名,再添加以下:
211.152.14.110 rac01
211.152.14.109 rac02
192.168.1.110 priv01
192.168.1.109 priv02
211.152.14.210 vip01
211.152.14.209 vip02
三、为oracle用户建立安全ssh通道
1、每台主机以oracle用户登录
#mkdir ~/.ssh
#chmod 755 ~/.ssh
#ssh-keygen -t rsa
#ssh-keygen -t dsa
2、rac01,以oracle登录
#ssh rac01 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#ssh rac01 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
#ssh rac02 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#ssh rac02 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
#scp ~/.ssh/authorized_keys rac02:~/.ssh/
#chmod 644 ~/.ssh/authorized_keys
rac02上:
#chmod 644 ~/.ssh/authorized_keys
3、所有集群主机上测试
#ssh rac01 date
#ssh rac02 date
不需要密码说明ssh配置成功。
--mirror1
四、安装iscsi initiator
# rpm -ivh iscsi-initiator-utils-4.0.3.0-4.i386.rpm
#vi /etc/iscsi.conf 修改
DiscoveryAddress=192.168.1.100:3260
#vi /etc/initiatorname.iscsi 添加
InitiatorName=iqn.192.168.1.100.iscsi.1
#service iscsi start
192.168.1.100是共享磁盘(sdb)的位置
注:这里sdb(8G)为存放ORC,voteDisk,oracleHome,oracleData;CRS安装在本地磁盘
#fdisk /dev/sdb
sdb1 3000M
sdb2 5000M
五、安装并配置OCFS2
1、安装
#uname -r
2.6.9-55.ELsmp
去oracle官网下载相应版本:
ocfs2-tools-1.2.7-1.el4.i386.rpm
ocfs2-2.6.9-55.ELsmp-1.2.9-1.el4.i686.rpm
ocfs2console-1.2.7-1.el4.i386.rpm
并安装。
2、配置
#export DISPLAY=192.168.1.100:0.0
注:192.168.1.100主机启动Xmanager Passive
#ocfs2console
跳到ocfs2console图形界面:
格式化分区、添加集群节点、复制配置文件(/etc/ocfs2/cluster.conf)
六、挂载OCFS2文件系统
1、检测o2cb的状态
#service o2cb configure
#service o2cb enable
#service o2cb status
2、创建挂载目录,修改属性
#mkdir -p /orac/crs 存储clusterware软件
#mkdir -p /orac/orahome 存储数据库软件
#mkdir -p /orac/oradata 存储数据文件
#chown -R root:oinstall /orac/crs
#chown -R oracle:oinstall /orac/orahome
#chown -R oracle:oinstall /orac/oradata
#chmod -R 755 /orac/crs
#chmod -R 755 /orac/orahome
#chmod -R 755 /orac/oradata
#mount -t ocfs2 /dev/sdb1 /orac/orahome
#mount -t ocfs2 -o datavolume,nointr /dev/sdb2 /orac/oradata
在/etc/fstab 添加:
/dev/sdb1 /orac/orahome ocfs2 _netdev 0 0
/dev/sdb2 /orac/oradata ocfs2 _netdev,datavolume,nointr 0 0
检验:
#df -hT
#mounted.ocfs2 -f
保存
开始安装clusterware之前,先在clusterware根目录使用runcluvfy.sh检查先决条件是否已经满足:
./runcluvfy.sh stage -pre crsinst -n rac01,rac02 -verbose
如果你收到任何失败消息,请先纠正后再继续安装。
七、安装CRS
注意:
1、查看oracle用户是否有clusterware安装目录的执行权限。
2、使用oracle用户运行安装程序。
3、在提示运行脚本时,一定分开一个一个运行。
测试软件安装是否成功,执行crs的bin下:
olsnodes
crs_stat -t
八、安装数据库软件
注意:
1、查看oracle用户是否有database安装目录的执行权限。
2、使用oracle用户运行安装程序。
九、创建数据库
./dbca
选择安装RAC数据库,在全部节点安装。
十、测试
使用oracle client测试rac:
[[email protected] ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Apr 28 21:43:29 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> connect sys/[email protected] as sysdba
Connected.
SQL> set wrap off
SQL> select * from gv$instance;
rows will be truncated
INST_ID INSTANCE_NUMBER INSTANCE_NAME HOST_NAME
---------- --------------- ---------------- ------------------------------------
2 2 sales2 rac02
1 1 sales1 rac01
SQL>
十一、注意事项
1、我的内核:2.6.9-55.ELsmp
以下用runcluvfy.sh检测到的没安装rpm,但是官方资料上redhat4没有要求一下rpm包,奇怪啊,而且和原系统包有冲突。
compat-gcc-7.3-2.96.128
compat-gcc-c++-7.3-2.96.128
compat-libstdc++-7.3-2.96.128
compat-libstdc++-devel-7.3-2.96.128
安官方要求,redhat4只要有
make-3.80-5
gcc-3.4.3-9.EL4
compat-db-4.1.25-9
这些包就可以了。
2、安装软件时提示执行脚本一定要一个以个执行。
3、给共享磁盘挂载ocfs2文件系统前,先保证2边o2cb的服务状态一致:
service o2cb configure
第一个选y,其他默认
service o2cb enable
serivce o2cb status
4、ocfs2console 无法添加节点问题解决:
尝试以下方法
4.1、service o2cb enable
4.2、删除/etc/ocfs2/cluster.conf
5、向第二个节点推进安装数据库软件失败,提示AttachHome失败,在失败节点上手动执行
../db_1/oui/bin/runInstaller -attachHome -noClusterEnabled -nogenerateGuid ORACLE_HOME=/orac/orahome/10.2.0/db_1 ORACLE_HOME_NAME=OraDb10g_home1 CLUSTER_NODES=rac01,rac02 "INVENTORY_LOCATION=/home/oracle/oralnventory" -cfs LOCAL_NODE=rac02
6、安装软件过程不能中断,否则系统不干净,很难继续安装(一般都是失败,最好一次搞定)。
7、安装crs时,出现警告:
根据排除文件列表‘null’将目录/orac/crs/10.2.0复制到节点‘rac02’时出错,所有已提交的命令都没有成功执行。
这个大概是2个节点时间不同步吧,不知道是不是配置Hangcheck计时器的问题,如果没有配置计时器,不会弹出这个错误。
这个警告可以忽略,继续执行安装。
部分截图:
长ping rac01上的VIP,把rac01关机,发现断开一段时间后恢复 :
查看rac02上发现,原来在rac01上的eth0:1变到rac02的eth0:2上了: