CentOS6u9 Oracle11g RAC 搭建部署(一)集群规划和主机部署

xiaoxiao2021-02-28  34

0-简单说明:

本实验使用VirtualBOX虚拟机软件测试部署 VirtualBOX虚拟机软件可以方便共享存储硬盘的添加设置 VirtualBOX虚拟机软件存在问题,双网卡绑定的断网验证实验会失败 本实验包含集群规划、集群搭建、各项优化、OGG预部署和简单日检多项部分 本实验是2节点的11gRAC实验 本实验不面向0基础

1-集群规划:

节点主机本地文件系统划分:

/boot 200M SWAP 20000M / 剩余全部 节点主机文件系统只需要划分三个分区即可,其中SWAP分区20G,因为Oracle官档推荐当物理内存大于16G时,SWAP需要至少16G 如果是生产物理机,本地磁盘也不会太过紧张,直接分配一个大于16G的SWAP空间即可 软件安装目录/u01独立划分一个分区是防止影响根分区或者受根分区影响,例如当两者中某一个使用率到100%时会同时影响另一个 对于一套正规的经常会做巡检和设置监控告警的生产库,将/u01单独划分一个分区意义是不大的

共享存储需求和划分:

需要独立的dg存储集群信息,容量需求并不大,但是信息较为重要,建议三份冗余 需要根据当前库容量和数据增量以及历史数据转储策略预估存放数据的dg容量 需要将日志和归档存放在共享存储中,需要根据当前的每日归档容量预估归档dg容量 数据备份最好也放在共享存储上,而且和数据dg处于不同的物理存储设备中 考虑后期使用OGG做灾备同步,因此需要共享存储存放OGG文件 综上,本实验的共享存储划分如下: lun_crs01 1g lun_crs02 1g lun_crs03 1g lun_data01 10g lun_arch01 4g lun_back01 4g lun_ogg01 4g 生产环境需要根据当前库情形和存储配额以及项目生命周期等各方面情况进行综合设计

共享存储配置方法:

在博文《CentOS6u9 Oracle11g RAC 共享存储配置》中论述了两种共享存储的配置方法 本次实验使用第二种方法:多路软件+udev权限绑定

网络配置划分:

生产服务器一般拥有四个网口,一般网口1和网口2处于同一块网卡上,网口3和网口4处于另一块网卡上 为了保证库的可用性,一般会对public网段做双网卡绑定,注意绑定的两个网口要处于不同的网卡上,否则还是单点 因此一般将网口1和网口3或者是网口1和网口4做双网卡绑定 私有网段,在Oracle11.2.0.2之后支持haip技术,因此剩余的两块网卡分别配置两个私有网段 综上,节点1和节点2的IP配置如下: 节点1 public 192.168.77.11 节点1 private1 10.10.10.11 节点1 private2 10.10.11.11 节点2 public 192.168.77.12 节点2 private1 10.10.10.12 节点2 private2 10.10.11.12

hosts 文件配置如下:

192.168.77.11 rac01 192.168.77.12 rac02 192.168.77.10 racscan 192.168.77.13 rac01vip 192.168.77.14 rac02vip 10.10.10.11 rac01priv1 10.10.10.12 rac02priv1 10.10.11.11 rac01priv2 10.10.11.12 rac02priv2

2-主机网络部署:

1° 依据《CentOS6实验机模板搭建部署》克隆两台实验机,调整内存为16G,修改主机名和hosts文件:

# 节点1: HOSTNAME=rac01 hostname $HOSTNAME echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts echo "$(ifconfig eth0|grep inet|awk -F'[ :]' '{print $13}') $(hostname)">>/etc/hosts sed -i "s/^HOSTNAME.*$/HOSTNAME=$HOSTNAME/g" /etc/sysconfig/network # 节点2: HOSTNAME=rac02 hostname $HOSTNAME echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts echo "$(ifconfig eth0|grep inet|awk -F'[ :]' '{print $13}') $(hostname)">>/etc/hosts sed -i "s/^HOSTNAME.*$/HOSTNAME=$HOSTNAME/g" /etc/sysconfig/network

2° 虚拟机关机,新增三块网卡设备,全部桥接,依据《CentOS6u9 双网卡绑定》做eth0和eth2的双网卡绑定:

# 节点1: cd /etc/sysconfig/network-scripts cat >ifcfg-bond0<<EOF DEVICE=bond0 BOOTPROTO=static ONBOOT=yes TYPE=Ethernet MASTER=yes USERCTL=no BONDING_OPTS="mode=1 miimon=100" IPADDR=192.168.77.11 NETMASK=255.255.255.0 GATEWAY=192.168.77.1 EOF cat >ifcfg-eth0<<EOF DEVICE=eth0 BOOTPROTO=none MASTER=bond0 SLAVE=yes ONBOOT=yes TYPE=Ethernet EOF cat >ifcfg-eth2<<EOF DEVICE=eth2 BOOTPROTO=none MASTER=bond0 SLAVE=yes ONBOOT=yes TYPE=Ethernet EOF reboot # 此处不再保留网卡的UUIDHWADDR信息,生产推荐保留,保留方法参见《CentOS6u9 双网卡绑定》 # 节点2cd /etc/sysconfig/network-scripts cat >ifcfg-bond0<<EOF DEVICE=bond0 BOOTPROTO=static ONBOOT=yes TYPE=Ethernet MASTER=yes USERCTL=no BONDING_OPTS="mode=1 miimon=100" IPADDR=192.168.77.12 NETMASK=255.255.255.0 GATEWAY=192.168.77.1 EOF cat >ifcfg-eth0<<EOF DEVICE=eth0 BOOTPROTO=none MASTER=bond0 SLAVE=yes ONBOOT=yes TYPE=Ethernet EOF cat >ifcfg-eth2<<EOF DEVICE=eth2 BOOTPROTO=none MASTER=bond0 SLAVE=yes ONBOOT=yes TYPE=Ethernet EOF reboot # 此处不再保留网卡的UUIDHWADDR信息,生产推荐保留,保留方法参见《CentOS6u9 双网卡绑定》

3° 配置eth1和eth3的两个私有网段:

# 节点1cd /etc/sysconfig/network-scripts cat >ifcfg-eth1<<EOF DEVICE=eth1 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=10.10.10.11 NETMASK=255.255.255.0 # GATEWAY=10.10.10.11 EOF cat >ifcfg-eth3<<EOF DEVICE=eth3 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=10.10.11.11 NETMASK=255.255.255.0 # GATEWAY=10.10.11.11 EOF /etc/init.d/network restart # 生产环境请根据真实的私有网段的gateway填写对应的信息 # 节点2cd /etc/sysconfig/network-scripts cat >ifcfg-eth1<<EOF DEVICE=eth1 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=10.10.10.12 NETMASK=255.255.255.0 # GATEWAY=10.10.10.12 EOF cat >ifcfg-eth3<<EOF DEVICE=eth3 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=10.10.11.12 NETMASK=255.255.255.0 # GATEWAY=10.10.11.12 EOF /etc/init.d/network restart # 生产环境请根据真实的私有网段的gateway填写对应的信息

4° /etc/hosts文件配置:

# 节点1和节点2均执行 echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts cat >>/etc/hosts<<EOF 192.168.77.10 racscan 192.168.77.11 rac01 192.168.77.12 rac02 192.168.77.13 rac01vip 192.168.77.14 rac02vip 10.10.10.11 rac01priv1 10.10.10.12 rac02priv1 10.10.11.11 rac01priv2 10.10.11.12 rac02priv2 EOF # 两节点均测试 for i in rac01 rac02 rac01priv1 rac02priv1 rac01priv2 rac02priv2;do ping -c 3 $i;echo;done

5° 依据《CentOS5u11 Oracle 10g 静默安装手工建库统一配置方案》调整SWAP为20G,具体操作略

3-系统预部署:

1° 软件包安装和升级:

# 节点1和节点2均操作 yum -y install binutils compat-libcap1 gcc gcc-c++ \ glibc.x86_64 glibc-devel.x86_64 compat-libstdc++-33.x86_64 \ ksh make sysstat libgcc.x86_64 libstdc++.x86_64 libstdc++-devel.x86_64 \ libaio.x86_64 libaio-devel.x86_64 ntpdate openssh-clients \ tigervnc-server xterm unzip readline-devel elfutils-libelf-devel \ glibc.i686 libgcc.i686 smartmontools parted # 以上的包在CentOS-6.8-x86_64-bin-DVD1.iso中 yum -y install libstdc++.i686 libstdc++-devel.i686 \ compat-libstdc++-33.i686 glibc-devel.i686 libaio.i686 libaio-devel.i686 # 以上的包在CentOS-6.8-x86_64-bin-DVD2.iso中 # 如果你的服务器在系统预部署之时就无法上网,则可以通过切换ISO光盘的形式使用yum安装以上所需的软件包 # 图形安装时,还需要的系统包: yum -y groupinstall "X Window System" yum -y groupinstall "Desktop" yum -y install tigervnc-server.x86_64 # 本实验不使用静默安装的方式安装RAC sed -i 's/id:5/id:3/g' /etc/inittab # 启动级别保持在命令行模式 chkconfig --list|grep 3:on # 再一次检查开机启动项,进行优化 # 配置共享存储策略的时候需要多路软件 yum -y install device-mapper-multipath

2° 动态DNS解析配置文件删除:

# 节点1和节点2均操作 >/etc/resolv.conf chattr +i /etc/resolv.conf # 将配置文件清空,然后加锁,防止误操作

3° ntpd服务卸载,ntpdate时钟服务器修改:

# 节点1和节点2均操作 # 两节点均安装了图形组件,会依赖安装上ntp服务,需要卸载或者删除配置文件 chkconfig ntpd off rm -rf /etc/ntp.conf ntpserver=182.92.12.11 sed -i "s/ntp1.aliyun.com/${ntpserver}/g" /etc/rc.local sed -i "s/ntp1.aliyun.com/${ntpserver}/g" /var/spool/cron/root # 内网配置ntp服务器,将模板机指向的阿里云ntp服务器指向内网服务器IP # 注意,我们是将ntpd服务进程卸载删除,使用ntpdate命令做时钟校正 # 当ntpd服务进程启动着的时候,RAC搭建会报错,因此要卸载ntpd服务 # 11gRAC有自己独有的时钟服务进程,在新系统时钟相差很大时也能保证集群的正常运行 # 但是有些SQL会使用诸如sysdate命令,使用系统本地的时间,如果不配置时钟校正,则会造成业务数据失真

4-集群和数据库用户配置:

1° 用户创建:

# 节点1和节点2均操作 groupadd -g 1000 oinstall groupadd -g 1001 asmadmin groupadd -g 1002 dba groupadd -g 1003 asmdba groupadd -g 1004 asmoper useradd -u 1005 -g oinstall -G oinstall,asmadmin,dba,asmdba,asmoper grid useradd -u 1006 -g oinstall -G oinstall,asmadmin,dba,asmdba,asmoper oracle echo oracle|passwd --stdin grid echo oracle|passwd --stdin oracle # 暂时配置grid和oracle密码均为oracle,可根据需求更改

2° 软件安装目录创建配置:

# 节点1和节点2均操作 mkdir -p /u01/app/oraInventory chown -R grid:oinstall /u01/app/oraInventory chmod -R 775 /u01/app/oraInventory mkdir -p /u01/app/grid chown -R grid:oinstall /u01/app/grid mkdir -p /u01/11.2.0/grid chown -R grid:oinstall /u01/11.2.0/grid chmod -R 775 /u01/11.2.0/grid mkdir -p /u01/app/oracle mkdir -p /u01/app/oracle/cfgtoollogs chown -R oracle:oinstall /u01/app/oracle chmod -R 775 /u01/app/oracle mkdir -p /u01/app/oracle/product/11.2.0/db_1 chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1 chmod -R 775 /u01/app/oracle/product/11.2.0/db_1 # 备份用目录配置: mkdir /backup chown -R oracle: /backup # 如果备份放在共享存储,后续还需要额外配置

3° 主机内核参数配置:

# 节点1和节点2均操作 # 参见《CentOS6u9 Oracle11g 安装部署的内核参数设置简录》 echo 'fs.aio-max-nr = 3145728'>>/etc/sysctl.conf echo 'fs.file-max = 6815744'>>/etc/sysctl.conf # 如果物理内存大于64G,则打开使用 # echo 'kernel.shmmax = 137438953472'>>/etc/sysctl.conf echo 'kernel.sem = 250 32000 100 128'>>/etc/sysctl.conf echo 'net.ipv4.ip_local_port_range = 9000 65000'>>/etc/sysctl.conf echo 'net.core.rmem_default = 262144'>>/etc/sysctl.conf echo 'net.core.rmem_max = 4194304'>>/etc/sysctl.conf echo 'net.core.wmem_default = 262144'>>/etc/sysctl.conf echo 'net.core.wmem_max = 1048576'>>/etc/sysctl.conf echo 'kernel.shmmni = 4096'>>/etc/sysctl.conf # 这一项无需配置,系统默认已满足官档需求,但是grid安装检查时候会报警告... sysctl -p

4° 用户资源限额配置:

# 节点1和节点2均操作 echo 'grid soft nofile 4096'>>/etc/security/limits.conf echo 'grid hard nofile 65536'>>/etc/security/limits.conf echo 'grid soft nproc 2047'>>/etc/security/limits.conf echo 'grid hard nproc 16384'>>/etc/security/limits.conf echo 'grid soft stack 10240'>>/etc/security/limits.conf echo 'grid hard stack 32768'>>/etc/security/limits.conf echo 'oracle soft nofile 4096'>>/etc/security/limits.conf echo 'oracle hard nofile 65536'>>/etc/security/limits.conf echo 'oracle soft nproc 2047'>>/etc/security/limits.conf echo 'oracle hard nproc 16384'>>/etc/security/limits.conf echo 'oracle soft stack 10240'>>/etc/security/limits.conf echo 'oracle hard stack 32768'>>/etc/security/limits.conf

5° 节点1 用户环境变量配置:

SID=orcl NLS=UTF8 cat >>/home/grid/.bash_profile<<EOF export ORACLE_BASE=/u01/app/grid export ORACLE_HOME=/u01/11.2.0/grid export ORACLE_SID=+ASM1 # export ORACLE_SID=+ASM2 export PATH=\$ORACLE_HOME/bin:\$PATH export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss' export NLS_LANG=AMERICAN_AMERICA.${NLS} EOF # 需要根据实际生产需求更改 cat >>/home/oracle/.bash_profile<<EOF export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 export ORACLE_SID=${SID}1 # export ORACLE_SID=${SID}2 export PATH=\$ORACLE_HOME/bin:\$PATH export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss' export NLS_LANG=AMERICAN_AMERICA.${NLS} EOF

6° 节点2 用户环境变量配置:

SID=orcl NLS=UTF8 cat >>/home/grid/.bash_profile<<EOF export ORACLE_BASE=/u01/app/grid export ORACLE_HOME=/u01/11.2.0/grid # export ORACLE_SID=+ASM1 export ORACLE_SID=+ASM2 export PATH=\$ORACLE_HOME/bin:\$PATH export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss' export NLS_LANG=AMERICAN_AMERICA.${NLS} EOF # 需要根据实际生产需求更改 cat >>/home/oracle/.bash_profile<<EOF export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 # export ORACLE_SID=${SID}1 export ORACLE_SID=${SID}2 export PATH=\$ORACLE_HOME/bin:\$PATH export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss' export NLS_LANG=AMERICAN_AMERICA.${NLS} EOF

[TOC]

转载请注明原文地址: https://www.6miu.com/read-2627335.html

最新回复(0)