Linux平臺 Oracle 19c RAC安裝Part1:準備工做

1、實施前期準備工做html

2、安裝前期準備工做linux

Linux平臺 Oracle 19c RAC安裝指導:
Part1:Linux平臺 Oracle 19c RAC安裝Part1:準備工做
Part2:Linux平臺 Oracle 19c RAC安裝Part2:GI配置
Part3:Linux平臺 Oracle 19c RAC安裝Part3:DB配置shell

本文安裝環境:OEL 7.6 + Oracle 19.3 GI & RAC服務器

1、實施前期準備工做

1.1 服務器安裝操做系統

配置徹底相同的兩臺服務器,安裝相同版本的Linux操做系統。留存系統光盤或者鏡像文件。
我這裏是OEL7.6,系統目錄大小均一致。對應OEL7.6的系統鏡像文件放在服務器上,供後面配置本地yum使用。
網絡

1.2 Oracle安裝介質

Oracle 19.3 版本2個zip包(總大小6G+,注意空間):
LINUX.X64_193000_grid_home.zip MD5:
LINUX.X64_193000_db_home.zip MD5:
這個本身去Oracle官網下載,而後只須要上傳到節點1便可。

1.3 共享存儲規劃

從存儲中劃分出兩臺主機能夠同時看到的共享LUN,3個1G的盤用做OCR和Voting Disk,其他分了3個12G的盤規劃作用作數據盤和FRA。
注:19c安裝GI時,能夠選擇是否配置GIMR,且默認不配置,我這裏選擇不配置,因此無需再給GIMR分配對應空間。

--OEL7使用udev須要給磁盤建立分區,這裏我使用fdisk 將對應盤建立一個主分區,分區號爲2(這裏只是爲了區分):
sdb  sdc  sdd  sde  sdf  sdg 
sdb2 sdc2 sdd2 sde2 sdf2 sdg2
1G   1G   1G   12G  12G  12G

--OEL7中udev需綁定對應磁盤的分區
for i in b c d e f g;
do
echo "KERNEL==\"sd?2\", SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id -g -u -d /dev/\$parent\", RESULT==\"`/usr/lib/udev/scsi_id -g -u -d /dev/sd\$i`\", SYMLINK+=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""      
done

--vi /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd?2", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB208b8d32-df9af9d6", SYMLINK+="asm-ocr1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?2", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VBe51f4d0a-1b73c589", SYMLINK+="asm-ocr2", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?2", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VBc63b1aa3-1e290288", SYMLINK+="asm-ocr3", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?2", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB53ee20b6-40c4b9a3", SYMLINK+="asm-data01", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?2", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB3822afbf-62d8a84d", SYMLINK+="asm-data02", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?2", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VBfbb7943a-5ec216e5", SYMLINK+="asm-data03", OWNER="grid", GROUP="asmadmin", MODE="0660"

--udevadm配置重載生效:
[root@db193 rules.d]# udevadm control --reload
[root@db193 rules.d]# udevadm trigger
--確認udev已綁定成功:
[root@db193 rules.d]# ls -l /dev/asm*
lrwxrwxrwx. 1 root root 4 Jul 30 23:45 /dev/asm-data01 -> sde2
lrwxrwxrwx. 1 root root 4 Jul 30 23:45 /dev/asm-data02 -> sdf2
lrwxrwxrwx. 1 root root 4 Jul 30 23:45 /dev/asm-data03 -> sdg2
lrwxrwxrwx. 1 root root 4 Jul 30 23:45 /dev/asm-ocr1 -> sdb2
lrwxrwxrwx. 1 root root 4 Jul 30 23:45 /dev/asm-ocr2 -> sdc2
lrwxrwxrwx. 1 root root 4 Jul 30 23:45 /dev/asm-ocr3 -> sdd2

--第二個節點db195最開始直接使用udevadm操做發現不行,此時需先partprobe,再udevadm觸發便可成功
--使用partprobe將磁盤分區表變化信息通知內核,請求操做系統從新加載分區表
[root@db195 ~]# partprobe /dev/sdb
[root@db195 ~]# partprobe /dev/sdc
[root@db195 ~]# partprobe /dev/sdd
[root@db195 ~]# partprobe /dev/sde
[root@db195 ~]# partprobe /dev/sdf
[root@db195 ~]# partprobe /dev/sdg
--udevadm配置重載生效:
[root@db195 ~]# udevadm control --reload
[root@db195 ~]# udevadm trigger
--確認udev已綁定成功:
[root@db195 ~]# ls -l /dev/asm*
lrwxrwxrwx. 1 root root 4 Jul 30 23:49 /dev/asm-data01 -> sde2
lrwxrwxrwx. 1 root root 4 Jul 30 23:49 /dev/asm-data02 -> sdf2
lrwxrwxrwx. 1 root root 4 Jul 30 23:49 /dev/asm-data03 -> sdg2
lrwxrwxrwx. 1 root root 4 Jul 30 23:49 /dev/asm-ocr1 -> sdb2
lrwxrwxrwx. 1 root root 4 Jul 30 23:49 /dev/asm-ocr2 -> sdc2
lrwxrwxrwx. 1 root root 4 Jul 30 23:49 /dev/asm-ocr3 -> sdd2

我此次搭建的實驗環境爲了精簡,沒有再去模擬多路徑的環境,若是想盡量的模擬生產環境,能夠參考以前18c的配置:oracle

1.4 網絡規範分配

公有網絡 以及 私有網絡。
公有網絡:這裏實驗環境是enp0s3是public IP,enp0s8是ASM & Private IP,實際生產需根據實際狀況調整規劃,通常public是有OS層綁定(bonding),private是使用HAIP。app

2、安裝前期準備工做

2.1 各節點系統時間校對

各節點系統時間校對:oop

--檢驗時間和時區確認正確
date 

--關閉chrony服務,移除chrony配置文件(後續使用ctss)
systemctl list-unit-files|grep chronyd
systemctl status chronyd

systemctl disable chronyd
systemctl stop chronyd

mv /etc/chrony.conf /etc/chrony.conf_bak

這裏實驗環境,選擇不使用NTP和chrony,這樣Oracle會自動使用本身的ctss服務。
測試

2.2 各節點關閉防火牆和SELinux

各節點關閉防火牆:

systemctl list-unit-files|grep firewalld
systemctl status firewalld

systemctl disable firewalld
systemctl stop firewalld

各節點關閉SELinux:操作系統

getenforce
cat /etc/selinux/config

手工修改/etc/selinux/config SELINUX=disabled,或使用下面命令:
sed -i '/^SELINUX=.*/ s//SELINUX=disabled/' /etc/selinux/config
setenforce 0

最後覈實各節點已經關閉SELinux便可。

2.3 各節點檢查系統依賴包安裝狀況

yum install -y oracle-database-preinstall-18c-1.0-1.el7.x86_64

在OEL7.6中仍是oracle-database-preinstall-18c的名字,並無對應19c的,但實際測試,在依賴包方面基本沒區別。
若是選用的是其餘Linux,好比經常使用的RHEL,那就須要yum安裝官方文檔要求的依賴包了。

2.4 各節點配置/etc/hosts

編輯/etc/hosts文件:

#public ip
192.168.1.193  db193
192.168.1.195  db195
#virtual ip
192.168.1.194  db193-vip
192.168.1.196  db195-vip
#scan ip
192.168.1.197  db19c-scan

#private ip
10.10.1.193    db193-priv
10.10.1.195    db195-priv

修改主機名(建議由SA調整):

--例如:修改主機名爲db193:
hostnamectl status
hostnamectl set-hostname db193
hostnamectl status

2.5 各節點建立須要的用戶和組

建立group & user,給oracle、grid設置密碼:

groupadd -g 54321 oinstall  
groupadd -g 54322 dba  
groupadd -g 54323 oper  
groupadd -g 54324 backupdba  
groupadd -g 54325 dgdba  
groupadd -g 54326 kmdba  
groupadd -g 54327 asmdba  
groupadd -g 54328 asmoper  
groupadd -g 54329 asmadmin  
groupadd -g 54330 racdba  
  
useradd -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle  
useradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper,dba grid  

echo oracle | passwd --stdin oracle
echo oracle | passwd --stdin grid

我這裏測試環境設置密碼都是oracle,實際生產環境建議設置符合規範的複雜密碼。

2.6 各節點建立安裝目錄

各節點建立安裝目錄(root用戶):

mkdir -p /u01/app/19.3.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
chown -R grid:oinstall /u01
chown oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/

2.7 各節點系統配置文件修改

內核參數修改:vi /etc/sysctl.conf
實際上OEL在安裝依賴包的時候也同時修改了這些值,如下參數主要是覈對或是對RHEL版本做爲參考:

# vi /etc/sysctl.conf  增長以下內容:

vm.swappiness = 1
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
kernel.shmmni = 4096  
kernel.shmall = 1073741824  
kernel.shmmax = 4398046511104
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500 
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576 
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.panic_on_oops = 1
net.ipv4.conf.enp0s8.rp_filter = 2
net.ipv4.conf.enp0s9.rp_filter = 2
net.ipv4.conf.enp0s10.rp_filter = 2

修改生效:

#sysctl -p /etc/sysctl.conf

注:enp0s9和enp0s10是IPSAN專用的網卡,跟私網同樣設置loose mode。(我這裏由於沒有使用IPSAN,因此沒有這兩張網卡)

#sysctl -p /etc/sysctl.d/98-oracle.conf
net.ipv4.conf.enp0s8.rp_filter = 2
net.ipv4.conf.enp0s9.rp_filter = 2
net.ipv4.conf.enp0s10.rp_filter = 2

用戶shell的限制:vi /etc/security/limits.d/99-grid-oracle-limits.conf

oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
grid soft nproc 16384
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768

這裏須要注意OEL自動配置的 /etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf 並不包含grid用戶的,能夠手工加上。

vi /etc/profile.d/oracle-grid.sh

#Setting the appropriate ulimits for oracle and grid user
if [ $USER = "oracle" ]; then
 if [ $SHELL = "/bin/ksh" ]; then
 ulimit -u 16384 
 ulimit -n 65536
 else
 ulimit -u 16384 -n 65536
 fi
fi
if [ $USER = "grid" ]; then
 if [ $SHELL = "/bin/ksh" ]; then
 ulimit -u 16384
 ulimit -n 65536
 else
 ulimit -u 16384 -n 65536
 fi
fi

這個OEL中也沒有自動配置,須要手工配置。

2.8 各節點設置用戶的環境變量

第1個節點grid用戶:

export ORACLE_SID=+ASM1;
export ORACLE_BASE=/u01/app/grid;
export ORACLE_HOME=/u01/app/19.3.0/grid;
export PATH=$ORACLE_HOME/bin:$PATH;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;

第2個節點grid用戶:

export ORACLE_SID=+ASM2;
export ORACLE_BASE=/u01/app/grid;
export ORACLE_HOME=/u01/app/19.3.0/grid;
export PATH=$ORACLE_HOME/bin:$PATH;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;

第1個節點oracle用戶:

export ORACLE_SID=jydb1;
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1;
export PATH=$ORACLE_HOME/bin:$PATH;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;

第2個節點oracle用戶:

export ORACLE_SID=jydb2;
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1;
export PATH=$ORACLE_HOME/bin:$PATH;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
相關文章
相關標籤/搜索