说明
1.RAC安装文章地址汇总:
Oracle 19c RAC搭建(一)安装资源规划: http://blog.itpub.net/69992972/viewspace-2752932/
Oracle 19c RAC搭建(二)操作系统检查与配置: http://blog.itpub.net/69992972/viewspace-2753536/
Oracle 19c RAC搭建(三)使用UDEV配置共享存储: http://blog.itpub.net/69992972/viewspace-2754349/
Oracle 19c RAC搭建(四)Grid软件安装: http://blog.itpub.net/69992972/viewspace-2754954/
Oracle 19c RAC搭建(五)DB软件安装: http://blog.itpub.net/69992972/viewspace-2755057/
Oracle 19c RAC搭建(六)创建RAC数据库: http://blog.itpub.net/69992972/viewspace-2755074/
2.由于涉及到部分真实参数,文中的各种命名、IP及空间大小(同时也涉及到部分截图)将会修改或者屏蔽处理(但不影响安装)
3.番外篇——RAC安装后的参数配置地址:
RAC参数配置参考(一): http://blog.itpub.net/69992972/viewspace-2755466/
RAC参数配置参考(二): http://blog.itpub.net/69992972/viewspace-2756086/
OS空间和配置检查
1.物理内存检查
检查命令
# grep MemTotal /proc/meminfo |
建议配置:最少8GB,推荐16GB以上,不然后面安装检查时不通过
2.Swap空间检查
检查命令
# grep SwapTotal /proc/meminfo |
Swap建议至少配置32GB
3.文件系统检查
检查命令
# df -h |
建议配置
/tmp不少于10G,/oracle 不少于80G 软件文件系统格式: · EXT4 (Linux 5.6 及后续版本支持) · XFS (从Linux 7 开始及后续版本支持) |
4.内核检查
# cat /etc/redhat-release # uname -a |
内核版本要求
Oracle Linux 7内核 不少于 Unbreakable Enterprise Kernel (ueknano) 4.1.12-124.23.4 |
网络检查及配置
1.添加虚拟网卡
检查网卡, 每台机至少需要两块网卡,一块配置公网IP,一块配置私网IP
检查命令
ifconfig -a ip addr |
2.关闭NetworkManager服务
两个节点都使用root关闭NetworkManager开机启动并重启网络
自启动设置: systemctl disable NetworkManager systemctl enable network 启/停服务: service NetworkManager stop 或 systemctl start NetworkManager service network start 或 systemctl start network |
注:后续执行Udev命令,会删除Public网络接口,从而导致监听停止,此时集群会将所有的服务,包括SCAN监听和VIP资源移动到其他节点上。
配置/etc/sysconfig/network-scripts目录下的网卡配置文件,加上下面参数。
HOTPLUG="no" |
两台机配好IP并重启网络服务后,将自动绑定划分的两块网卡。
3.关闭防火墙
在两个节点上分别用root执行如下语句
systemctl status firewalld ##先检查是否关闭 systemctl stop firewalld systemctl disable firewalld systemctl status firewalld |
4.关闭SELinux
用root执行
getenforce ##先检查是否是“Disabled”,如果不是,执行下列操作 sed -i 's/=enforcing/=disabled/' /etc/selinux/config ##如果enforcing是permissive也需要修改成disabled 重启OS后执行getenforce查看时候是“Disabled” |
5.禁用Transparent HugePages(THP)
用root修改/etc/default/grub文件
# cat /sys/kernel/mm/transparent_hugepage/enabled ##Oracle Linux的路径 [always] madvise never ##方括号必须在never上才表示已禁用 注:RHEL的检查路径在 /sys/kernel/mm/redhat_transparent_hugepage/enabled # cat /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .\*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="rd.lvm.lv=myvg/swap rd.lvm.lv=myvg/usr vconsole.font=latarcyrheb-sun16 rd.lvm.lv=myvg/root crashkernel=auto vconsole.keymap=us rhgb quiet transparent_hugepage=never" ##添加这句话 GRUB_DISABLE_RECOVERY="true" # grub2-mkconfig -o /boot/grub2/grub.cfg |
重启OS后检查是否关闭
# cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] ##关闭成功 |
6.配置NOZEROCONF
使用root在/etc/sysconfig/network增加以下内容
NOZEROCONF=yes |
7.配置hosts文件
用root修改/etc/hosts文件,两个节点配置相同
# more /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
#Public IP 192.168.36.196 node1 192.168.36.198 node2 #Private IP 10.10.10.201 node1-priv 10.10.10.202 node2-priv #Virtual IP 192.168.36.197 node1-vip 192.168.36.199 node2-vip #Scan IP 192.168.36.120 rac-scan |
创建用户和用户组
1.创建用户组
在两个节点都使用root操作:
groupadd -g 1000 oinstall groupadd -g 1100 dba groupadd -g 1200 oper groupadd -g 1300 asmadmin groupadd -g 1400 asmdba groupadd -g 1500 asmoper |
2.创建用户
在两个节点都使用root操作:
创建grid和oracle用户
useradd -u 1001 -g oinstall -G asmadmin,asmdba,asmoper,dba -d /home/grid -m grid useradd -u 1000 -g oinstall -G dba,asmdba,oper -d /home/oracle -m oracle |
设置oracle和grid用户密码
passwd oracle passwd grid |
设置密码永不过期
chage -M -1 oracle chage -M -1 grid chage -l oracle chage -l grid |
检查
# id oracle uid=1000(oracle) gid=1000(oinstall) groups=1000(oinstall),1100(dba),1400(asmdba)
# id grid uid=1001(grid) gid=1000(oinstall) groups=1000(oinstall),1100(dba),1300(asmadmin),1400(asmdba),1500(asmoper) |
3.创建软件安装目录
两个节点的root用户下创建
mkdir -p /oracle/app/oracle mkdir -p /oracle/app/grid mkdir -p /oracle/app/19.3.0/grid mkdir -p /oracle/app/oracle/product/ 19.3.0/dbhome_1 chown -R grid:oinstall /oracle/app/grid chown -R grid:oinstall /oracle/app/ 19.3.0 chown -R oracle:oinstall /oracle/app/oracle chmod -R 775 /oracle mkdir -p /oracle/app/oraInventory chown -R grid:oinstall /oracle/app/oraInventory chmod -R 775 /oracle/app/oraInventory |
注:Grid软件的‘ORACLE_HOME’路径不能是‘ORACLE_BASE’的子目录
4.设置oracle用户和grid用户的环境变量
grid用户:
export ORACLE_BASE=/oracle/app/grid export ORACLE_HOME=/oracle/app/19.3.0/grid export ORACLE_SID=+ASM1 export PATH=/oracle/app/19.3.0/grid/bin:/oracle/app/19.3.0/grid/OPatch:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:.
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss' export LD_LIBRARY_PATH=/oracle/app/19.3.0/grid/lib:/usr/lib export LANG=en_US umask 022 |
oracle用户:
export ORACLE_SID=racdb1 ##节点2改成racdb2 export ORACLE_BASE=/oracle/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1 export TNS_ADMIN=$ORACLE_HOME/network/admin export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS" export TMP=/tmp export TMPDIR=$TMP export PATH=$ORACLE_HOME/bin:ORACLE_HOME/OPatch:$PATH export NLS_LANG="AMERICAN_CHINA.ZHS16GBK" umask 022 |
root(因为后面要使用grid用户下的命令,设置好环境变量后就不用输入绝对路径) :
export ORACLE_HOME=/oracle/app/19.3.0/grid export PATH=$PATH:$ORACLE_HOME/bin |
rpm包安装
用root安装依赖包
yum install -y compat* yum install -y compat-libcap* yum install -y gcc* yum install -y gcc-c++* yum install -y glibc-devel* yum install -y ksh* yum install -y libstdc++-devel* yum install -y libaio-devel* |
注:
1.还需要安装cvuqdisk,对于12cR2版本,该rpm包位于Grid_Home的cv/rpm/下
2.镜像地址:
yum源配置举例:
# wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle # vi /etc/yum.repos.d/oracle.repo [oracle] name=oracle baseurl= gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=1 enables=1 |
内核参数配置
1.添加并修改/etc/sysctl.conf文件
注:标红的是修改或新增的( 已屏蔽原参数,不要照搬),根据系统资源酌情设置
# vi /etc/sysctl.conf kernel.shmmax = 100000000000 kernel.shmall = 10000000 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 kernel.panic_on_oops = 1 kernel.randomize_va_space = 0 fs.file-max = 1000000 fs.aio-max-nr = 1000000 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 100000 net.core.rmem_max = 1000000 net.core.wmem_default = 100000 net.core.wmem_max = 1000000 net.ipv4.conf.ens33.rp_filter = 1 net.ipv4.conf.ens36.rp_filter = 2 net.ipv4.ipfrag_high_thresh = 10000000 net.ipv4.ipfrag_low_thresh = 10000000 net.ipv4.ipfrag_time = 60 vm.min_free_kbytes = 100000 vm.swappiness = 10
# sbin/sysctl -p ##该命令执行后无需重启OS,立即生效
|
补充:
内核参数官方参考建议:
1 |
kernel.shmmax = 137438953472 (128GB) kernel.shmall = kernel.shmmax/4096 |
SHMMAX设置为物理内存70%,必须大于所有实例的SGA大小,单位为字节。SHMALL为SHMMAX除以4096。 |
2 |
kernel.sem = 250 32000 100 128 |
默认配置支持8个数据库实例,如果超过该值,按照比例翻倍处理 |
3 |
vm.nr_hugepages = 512 |
SGA内存超过8GB时候,配置HugePage,对应参数vm.nr_hugepages,单位为2MB,设置大小为所有SGA_MAX_SIZE/2MB,配置后ASM实例也需要修改为ASSM。 |
4 |
fs.file-max = 512 * processes |
最大打开文件数 |
5 |
vm.min_free_kbytes = 524288 |
配置最小保留内存,建议为512MB,如果物理内存超过128GB,按照比例翻倍。 |
6 |
net.core.wmem_default = 2097152 |
当使用RDS作为私网时候,设置为2097152。 |
7 |
net.ipv4.conf.eth0.rp_filter = 1 net.ipv4.conf.eth1.rp_filter = 2 |
在Redhat/OEL环境Linux Kernel 2.6.31以后版本需要考虑。 公网设置为1,私网设置为0或2。 |
8 |
net.ipv4.ipfrag_high_thresh = 16777216 net.ipv4.ipfrag_low_thresh = 15728640 net.ipv4.ipfrag_time = 60 |
RHEL 6.6+/7.1+需要修改,确认: cat /proc/sys/net/ipv4/ipfrag_*_thresh cat /proc/sys/net/ipv4/ipfrag_time 参考文档:RHEL 6.6: IPC Send timeout/node eviction etc with high packet reassembles failure (文档ID 2008933.1) The CRSD is Intermediate State and Not Joining to the Cluster (文档ID 2168576.1) 出现问题时netstat中packet reassembles failed值增加。 |
9 |
kernel.panic_on_oops = 1 |
Oracle 12.1.0.2.0及以后版本的配置参数。 |
10 |
kernel.randomize_va_space=0 |
禁用物理内存地址是否随机分配Address Space Layout Randomization (ASLR)。 |
11 |
kernel.exec-shield=0 |
禁用可执行程序的屏蔽保护机制。 |
2.修改/etc/security/limits.conf文件
增加以下内容(已屏蔽数据)
oracle soft nproc 1111 oracle hard nproc 11111 oracle soft nofile 1111 oracle hard nofile 11111 oracle soft stack 11111 oracle hard stack 11111 grid soft nproc 1111 grid hard nproc 11111 grid soft nofile 1111 grid hard nofile 11111 grid soft stack 11111 grid hard stack 11111 * soft memlock unlimited * hard memlock unlimited root soft stack 11111 root hard stack 11111 |
注:Memlock在HugePage环境开启,单位为KB
关闭其他服务
systemctl stop avahi-dnsconfd
systemctl stop avahi-daemon systemctl stop cups systemctl stop postfix systemctl stop smartd systemctl disable avahi-dnsconfd systemctl disable avahi-daemon systemctl disable cups systemctl disable postfix systemctl disable smartd |
配置NTP服务
在Linux7上,先用root禁用默认的chronyd服务,再下载安装NTP服务
# systemctl stop chronyd # systemctl disable chronyd |
用yum安装NTP
# yum install ntp |
启用NTP服务并开启自启动
# systemctl enable ntpd # systemctl start ntpd |
如果使用NTP同步,需要开启slew time
# vi /etc/sysconfig/ntpd OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid" systemctl restart ntpd.service |
配置NTP服务
# vi /etc/ntp.conf server <NTP_SERVER_ADDR> iburst |
停止NTP服务,手动同步时间
systemctl stop ntpd ntpdate -b <NTP_SERVER_ADDR> systemctl start ntpd.service |
把时钟写回到主板上
hwclock --systohc hwclock;date |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69992972/viewspace-2753536/,如需转载,请注明出处,否则将追究法律责任。