一 实验环境
其中,rac1,rac2为rac集群中已有两个节点,现计划将rac3添加到集群里。
二 实验步骤
2.1 配置新节点
2.1.1 配置网络
2.1.1.1 配置网络
需要配置两块网卡,其中一块儿网卡用于节点间的内部连接。
我这里的ip配置为:
2.1.1.2 修改主机名
vi /etc/sysconfig/network
HOSTNAME=rac3
该配置需重启服务器生效。
临时配置方式(服务器重启后失效):
hostname rac3
2.1.1.3 修改/etc/hosts
添加其他两个节点与本节点的ip配置:
#rac1
192.168.144.213 rac1
192.168.144.215 rac1_vip
10.10.10.1 rac1_priv
#rac2
192.168.144.214 rac2
192.168.144.216 rac2_vip
10.10.10.2 rac2_priv
#rac3
192.168.144.218 rac3
192.168.144.219 rac3_vip
10.10.10.3 rac3_priv
#scan-ip
192.168.144.217 scan-vip
#在另外两个rac节点上也添加下rac3节点的ip配置
略
2.1.2 配置共享存储
假如没配置共享存储,则后面安装GRID时会报错:PRVG-1013 : 路径 "/u01/app/11.2.0.4/grid" 不存在或者无法在要添加的节点上创建
2.1.2.1 添加共享磁盘
这里的实验环境是virtualbox虚拟机,因此这样在rac3添加共享磁盘:
注意:两个虚拟机共享磁盘rac.vdi的虚拟磁盘的端口应该保持一致,且不要和现有SATA端口重复。这里都是SATA端口1:
/*
注意单个共享盘不要超过2T,否则oracle不识别,会导致后续安装报错:ORA-15018: diskgroup cannot be created
ORA-15099: disk 'ORCL:DATA' is larger than maximum size of 2097152 MBs
*/
2.1.2.2 创建用户和用户组
groupadd -g 1000 oinstall #该组的成员可以访问Oracle Inventory目录
groupadd -g 1001 dba #该组的成员有SYSDBA权限
groupadd -g 1200 asmadmin
groupadd -g 1201 asmdba
groupadd -g 1202 asmoper
useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,dba grid #管理Oracle Grid Infrastructure及ASM的用户
useradd -u 1101 -g oinstall -G dba,asmdba oracle
echo 密码 | passwd --stdin grid
echo 密码 | passwd --stdin oracle
2.1.2.3 配置udev共享存储
for i in b c d e f g ;
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\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules
done
#启动udev服务
/sbin/start_udev
#查看生成的asm磁盘
[root@rac1 ~]# ll /dev | grep asm
brw-rw----. 1 grid asmadmin 8, 16 1月 22 16:12 asm-diskb
2.1.3 确保交换内存空间大于3G
扩容swap示例(这里扩容2G):
dd if=/dev/zero of=/tmp/swap bs=1MB count=2048
mkswap /tmp/swap
swapon /tmp/swap
free -m #检查确认
vi /etc/fstab
添加:
/tmp/swap swap swap defaults 0 0
2.1.4 确保磁盘空间至少30G
略
2.1.5 创建目录
mkdir -p /u01/app/oracle
mkdir -p /u01/app/grid
mkdir -p /u01/app/11.2.0.4/grid
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oracle
chown -R grid /u01/app/grid
chown -R grid /u01/app/11.2.0.4/grid
chown -R grid /u01/app/oraInventory
chmod -R 775 /u01/app/oracle/
chmod -R 775 /u01/app/grid
2.1.6 安装依赖包
#检查哪些软件包未安装
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make numactl pdksh sysstat unixODBC unixODBC-devel smartmontools | grep "not installed"
#安装未安装的软件包,示例:
yum install compat-libstdc++-33 elfutils-libelf-devel libaio-devel pdksh unixODBC unixODBC-devel smartmontools -y
--若提示No package pdksh available,则下载rpm包进行安装:
wget http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
#安装compat-libcap
rpm -ivh compat-libcap1-1.10-1.x86_64.rpm
#安装cvuqdisk
rpm -ivh /home/grid/cvuqdisk-1.0.9-1.rpm
2.1.7 关闭防火墙
service iptables stop
chkconfig iptables off
2.1.8 配置节点互信
配置下rac3与rac1,rac2,rac3的互信(grid与oracle用户),具体步骤略,可参考https://blog.csdn.net/yabingshi_tech/article/details/113034756中的‘2.3.4 配置节点互信。
2.1.9 配置环境变量
2.1.9.1 修改oracle用户的环境变量
su - oracle
vi .bash_profile
添加:
export EDITOR=vi
export ORACLE_SID=prod3
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X1186/bin
umask 022
source .bash_profile #使修改生效
2.1.9.2 修改grid用户的环境变量
su - grid
vi .bash_profile
添加:
export ORACLE_BASE=/u01/app/grid
export ORACLE_SID=+ASM3
export ORACLE_HOME=/u01/app/11.2.0.4/grid
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
source .bash_profile #使修改生效
2.1.10 配时钟同步
这里选择禁用NTP服务,使用oracle rac内部自带的时钟同步CTSS:
service ntpd stop
mv /etc/ntp.conf /etc/ntp.conf_bak
2.1.11 配置内核参数
vi /etc/sysctl.conf
修改以下各参数,最小设置如下(如果参数值比下面的大,则保持不变即可):
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1036870912
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 = 1048576
--注意,这里kernel.shmmax 仅设置的1G,请根据实际情况调大些(初始化参数MEMORY_TARGET或MEMORY_MAX_TARGET不能大于共享内存,所以该参数值需要大于MEMORY_TARGET)。
运行sysctl -p应用以上参数:
/sbin/sysctl -p
2.1.12 配置资源限制
vi /etc/security/limits.conf
新增如下内容:
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle stack nproc 16384
oracle stack nproc 16384
grid soft nofile 65536
grid hard nofile 65536
grid soft nproc 16384
grid hard nproc 16384
grid stack nproc 16384
grid stack nproc 16384
2.1.13 开启巨页
确保/sys/kernel/mm/transparent_hugepage/enabled值为alwarys
若不是,则这样设置:
sh -c 'echo "alwarys" > /sys/kernel/mm/transparent_hugepage/enabled'
2.2 为rac3安装GRID
#确保各rac节点的grid用户都对/u01/app/11.2.0.4/grid有权限
chown -R grid:oinstall /u01/app/11.2.0.4/grid
#在现有rac节点中有grid软件的节点上为rac3安装Grid
/u01/app/11.2.0.4/grid/oui/bin/addNode.sh -silent "CLUSTER_NEW_NODES={rac3}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={rac3_vip}" "CLUSTER_NEW_PRIVATE_NODE_NAMES={rac3_priv}"
/*
假如报错:
PRVG-1013 : 路径 "/u01/app/11.2.0.4/grid" 不存在或者无法在要添加的节点上创建。用于添加节点的共享资源检查失败
则需要检查下共享存储是否有问题,或者共享磁盘的所有者是不是grid用户。
假如都没问题,还报这个错误,则执行export IGNORE_PREADDNODE_CHECKS=Y跳过预检查
*/
在rac3节点用root用户执行脚本:
/u01/app/oraInventory/orainstRoot.sh
/u01/app/11.2.0.4/grid/root.sh
检查日志是否报错。
修改rac3目录权限
chown -R grid:oinstall /u01/app/11.2.0.4/grid
#检查集群状态
#检查监听
2.3 为rac3安装数据库软件
#在现有rac节点中有database软件的节点上为rac3安装数据库软件
su - oracle
/app/oracle/product/11.2.0/db_1/oui/bin/addNode.sh -silent "CLUSTER_NEW_NODES={rac3}"
在rac3节点上使用root用户执行脚本:
/u01/app/oracle/product/11.2.0/db_1/root.sh
2.4 添加rac3的实例
dbca -silent -addInstance -nodeList rac3 -gdbName prod -instanceName prod3 -sysDBAUserName sys -sysDBAPassword "***"
--本篇文章主要参考了http://blog.itpub.net/29249734/viewspace-1760232/