ITPub博客

首页 > 数据库 > Oracle > 【BUILD_ORACLE】Oracle 19c RAC搭建(二)操作系统检查与配置

【BUILD_ORACLE】Oracle 19c RAC搭建(二)操作系统检查与配置

原创 Oracle 作者:Attack_on_Jager 时间:2021-01-27 14:54:27 0 删除 编辑

说明

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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
小小DBA一枚

注册时间:2021-01-11

  • 博文量
    20
  • 访问量
    26636