【BUILD_ORACLE】Oracle 19c RAC搭建(二)作業系統檢查與配置

Attack_on_Jager發表於2021-01-27

說明

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章