0. 操作系统部署
操作系统版本:CentOS Linux release 7.8.2003 (Core)
<省略>
本机磁盘规划:
共享磁盘规划:
网络信息规划:
建议不要选择最小化部署,最好是将[GNOME Desktop]一起部署好。避免后期手工安装时,系统出现各种问题,特别是没有外部网络需要自己构筑YUM源。
1. 主机名配置
hostnamectl set-hostname RACNode01
hostnamectl set-hostname RACNode02
2.SELINUX与防火墙关闭
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl stop firewalld.service
systemctl disable firewalld.service
3.关闭不必要服务
- 建议在ORACLE环境禁用该服务,Oracle已报告avahi-daemon可能会干扰Oracle RAC的多播心跳信号,从而导致应用程序层接口假定它已在节点上断开连接并重新启动。
systemctl stop avahi-daemon.socket avahi-daemon.service
systemctl disable avahi-daemon.socket avahi-daemon.service
- Oracle RAC在11.2后,数据库有两种时间同步方式。方式一:操作系统配置NTP服务;方式二:Oracle Cluster Time Synchronization Service(ctssd)。前者访问失败,则会自动采用后者。
systemctl status chronyd.service
systemctl disable chronyd.service
systemctl stop chronyd.service
mv /etc/ntp.conf /etc/ntp.conf.bak
4.依赖包安装
yum -y install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel libXext libXtst libX11 libXau libxcb libXi make sysstat libXmu libXt libXv libXxf86dga libdmx libXxf86misc libXxf86vm xorg-x11-utils xorg-x11-xauth nfs-utils smartmontools xclock xterm
5. 用户与用户组创建
groupadd -g 1000 oinstall
groupadd -g 1100 asmadmin
groupadd -g 1200 dba
groupadd -g 1201 oper
groupadd -g 1300 asmdba
groupadd -g 1301 asmoper
useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid -m grid && echo "grid" | passwd --stdin grid
useradd -u 1101 -g oinstall -G dba,asmdba,oper -d /home/oracle -m oracle && echo "oracle" | passwd --stdin oracle
6.用户环境信息配置
- [节点一]
su - oracle
{
echo
echo \#\# Changes done for to support Oracle RAC
echo "umask=022"
echo "export ORACLE_BASE=/u01/app/oracle"
echo "export ORACLE_HOME=/u01/app/oracle/product/12.2.0/db_1"
echo "export ORACLE_SID=RACDB1"
echo "NLS_LANG=AMERICAN_AMERICA.UTF8"
echo "NLS_DATE_FORMAT=\"yyyy-mm-dd hh24:mi:ss\""
echo "export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH"
echo "alias sqlplus=\"rlwrap sqlplus\""
echo "alias rman=\"rlwrap rman\""
echo \#\# End
echo
} >> /home/oracle/.bash_profile
exit
su - grid
{
echo
echo \#\# Changes done for to support Oracle RAC
echo "umask=022"
echo "export ORACLE_BASE=/u01/app/grid"
echo "export ORACLE_HOME=/u01/app/12.2.0/grid"
echo "export ORACLE_SID=+ASM1"
echo "export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH"
echo \#\# End
echo
} >> /home/grid/.bash_profile
exit
- [节点二]
su - oracle
{
echo
echo \#\# Changes done for to support Oracle RAC
echo "umask=022"
echo "export ORACLE_BASE=/u01/app/oracle"
echo "export ORACLE_HOME=/u01/app/oracle/product/12.2.0/db_1"
echo "export ORACLE_SID=RACDB2"
echo "NLS_LANG=AMERICAN_AMERICA.UTF8"
echo "NLS_DATE_FORMAT=\"yyyy-mm-dd hh24:mi:ss\""
echo "export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH"
echo "alias sqlplus=\"rlwrap sqlplus\""
echo "alias rman=\"rlwrap rman\""
echo \#\# End
echo
} >> /home/oracle/.bash_profile
exit
su - grid
{
echo
echo \#\# Changes done for to support Oracle RAC
echo "umask=022"
echo "export ORACLE_BASE=/u01/app/grid"
echo "export ORACLE_HOME=/u01/app/12.2.0/grid"
echo "export ORACLE_SID=+ASM2"
echo "export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH"
echo \#\# End
echo
} >> /home/grid/.bash_profile
exit
7.目录与权限创建
mkdir -p /u01/app/grid
mkdir -p /u01/app/12.2.0/grid
mkdir -p /u01/app/oracle
chown -R grid:oinstall /u01
chown oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
8.内核参数配置
- 为了提高Linux系统上软件的性能,必须增加grid与oracle用户的shell限制
{
echo
echo \#\# Changes done for to support Oracle RAC
echo "grid soft nproc 2047"
echo "grid hard nproc 16384"
echo "grid soft nofile 131072"
echo "grid hard nofile 131072"
echo "grid soft core unlimited"
echo "grid hard core unlimited"
echo "oracle soft nofile 131072"
echo "oracle hard nofile 131072"
echo "oracle soft nproc 131072"
echo "oracle hard nproc 131072"
echo "oracle soft core unlimited"
echo "oracle hard core unlimited"
echo "oracle soft memlock 61644800"
echo "oracle hard memlock 61644800"
echo \#\# End
echo
} >> /etc/security/limits.conf
- 对默认的shell启动文件进行以下更改
{
echo
echo \#\# Changes done for to support Oracle RAC
echo "if [ $USER="oracle" ] || [ $USER="grid" ]; then"
echo " if [ $SHELL="/bin/ksh" ]; then"
echo " ulimit -p 16384"
echo " ulimit -n 65536"
echo " else"
echo " ulimit -u 16384 -n 65536"
echo " fi"
echo " umask 022"
echo "fi"
echo \#\# End
echo
} >> /etc/profile
- 增加pam登录参数
{
echo
echo \#\# Changes done for to support Oracle RAC
echo "session required pam_limits.so"
echo \#\# End
echo
} >> /etc/pam.d/login
- sysctl参数配置
此配置适用于16GB环境,其他环境请根据实际情况进行调整与修改。官方参考信息:
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/cwlin/changing-kernel-parameter-values.html
{
echo
echo \#\# Changes done for to support Oracle RAC
echo "fs.aio-max-nr=3145728"
echo "fs.file-max=6815744"
echo "net.ipv4.ip_local_port_range=9000 65500"
echo "net.core.rmem_max=4194304"
echo "net.core.rmem_default=262144"
echo "net.core.wmem_max=1048576"
echo "net.core.wmem_default=262144"
echo "net.ipv4.tcp_wmem=262144 262144 262144"
echo "net.ipv4.tcp_rmem=262144 262144 262144"
echo "# SHMALL configured for 16GB SGA. To calculate SGA(KB)/4."
echo "kernel.shmall=4456448"
echo "kernel.shmmni=4096"
echo "kernel.shmmax=18253611008"
echo "kernel.sem=250 32000 100 128"
echo \#\# End
echo
} > /etc/sysctl.d/97-oracle-database-sysctl.conf
/sbin/sysctl --system
/sbin/sysctl -p
- Hugepages与Transparent HugePages配置
参考<Hugepages与Transparent HugePages配置对Oracle影响>