環境准備(內存最好不要小於16G)
磁盤規划

IP規划

安裝環境配置
IP 配置(私有網絡無需配置dns和網關)
vim /etc/hosts
#Public
10.224.0.27 rac1
10.224.0.28 rac2
#Virtual
10.224.0.222 rac1-vip
10.224.0.223 rac2-vip
#Private
10.10.10.27 rac1-pri
10.10.10.28 rac2-pri
#Scanip
10.224.0.224 scan-ip
刪除GUI Server創建的虛擬網卡
ifconfig virbr0 down
brctl delbr virbr0
systemctl stop libvirtd
systemctl disable libvirtd
關閉SELINUX,防火牆
vi /etc/selinux/config
SELINUX=disabled
setenforce 0
getenforce
systemctl stop firewalld
systemctl disable firewalld
停止avahi-daemon服務
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon.service
systemctl disable avahi-daemon.socket
systemctl disable avahi-daemon.service
停止時間同步服務
rm -rf /var/run/chronyd.pid
rm -rf /etc/chrony.conf
rm -rf /etc/ntp.conf
systemctl stop ntpd.service
systemctl disable ntpd
systemctl stop chronyd.service
systemctl disable chronyd.service
新增登錄要求
vi /etc/pam.d/login
session required pam_limits.so
安裝Oracle依賴包
yum -y install bc gcc gcc-c++ binutils make gdb cmake glibc ksh elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc-devel libaio libaio-devel libXrender libXrender-devel libX11 libXau sysstat libXi libXtst libgcc librdmacm-devel libstdc++ libstdc++-devel libxcb net-tools nfs-utils compat-libcap1 compat-libstdc++ smartmontools targetcli python python-configshell python-rtslib python-six unixODBC unixODBC-devel iscsi-initiator-utils device-mapper device-mapper-multipath unbound bind-utils
compat-libstdc++這個包需要單獨下載
wget
ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/matthewdva:/build:/RedHat:/RHEL-7/complete/x86_64/compat-libstdc++-33-3.2.3-71.el7.x86_64.rpm
yum localinstall compat-libstdc++-33-3.2.3-71.el7.x86_64.rpm
創建用戶組和oracle、grid用戶
//用戶組和用戶的編號可以自定義,確保全流程配置一致即可,用戶名為Oracle默認用戶,建議不要改
groupadd -g 11001 oinstall
groupadd -g 11002 dba
groupadd -g 11003 oper
groupadd -g 11004 backupdba
groupadd -g 11005 dgdba
groupadd -g 11006 kmdba
groupadd -g 11007 asmdba
groupadd -g 11008 asmoper
groupadd -g 11009 asmadmin
groupadd -g 11010 racdba
useradd -u 11011 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle
useradd -u 11012 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
//創建完成后,修改grid和oracle用戶密碼
passwd grid
passwd oracle
創建目錄
mkdir -p /u01/app/19.0.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/product/19.0.0/db_1
mkdir -p /u01/app/oraInventory
上傳Oracel grid和db包(1個節點就行)
//上傳並解壓grid安裝包解壓到/u01/app/19.0.0/grid目錄
unzip LINUX.X64_193000_grid_home.zip -d /u01/app/19.0.0/grid
//上傳並解壓db安裝包解壓到/u01/app/oracle/product/19.0.0/db_1
unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.0.0/db_1
修改目錄所屬用戶和權限
chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/19.0.0/grid
chown -R oracle:oinstall /u01/app/oracle
chown -R grid:oinstall /u01/app/oraInventory
chmod -R 775 /u01/
安裝依賴包
//rac1節點安裝依賴包
cd /u01/app/19.0.0/grid/cv/rpm
rpm -ivh cvuqdisk-1.0.10-1.rpm
//拷貝安裝包到rac2節點,然后安裝
scp cvuqdisk-1.0.10-1.rpm rac2:~/
rpm -ivh cvuqdisk-1.0.10-1.rpm
修改系統限制
vi /etc/security/limits.d/20-nproc.conf
#* soft nproc 4096
* - nproc 16384
系統用戶限制,在最后新增
vi /etc/security/limits.conf
grid soft nproc 16384
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 4194304
oracle soft memlock 4194304
設置os內核參數
vi /etc/sysctl.conf
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 2251799813685247
kernel.shmmax = 456340275200#內存80%-90%
kernel.panic_on_oops = 1
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
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.tcp_wmem = 4096 16384 4194304
使配置生效
/sbin/sysctl -p
修改shm參數並重新掛載
//修改shm掛載 內存80-90%
cat>>/etc/fstab<<EOF
tmpfs /dev/shm tmpfs defaults,size=430G 0 0
EOF
//重新掛載
mount -o remount /dev/shm

新增網絡參數
cat >>/etc/sysconfig/network<<EOF
NOZEROCONF=yes
EOF
配置環境變量
配置rac1節點grid和oracle用戶的環境變量
//使用root用戶添加grid用戶的環境變量
cat>>/home/grid/.bash_profile<<EOF
export ORACLE_SID=+ASM1;
export ORACLE_BASE=/u01/app/grid;
export ORACLE_HOME=/u01/app/19.0.0/grid;
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";
export PATH=.:\$PATH:\$HOME/bin:\$ORACLE_HOME/bin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/JRE:\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOF
//使用root用戶添加oracel用戶的環境變量
cat>>/home/oracle/.bash_profile<<EOF
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.0.0/db_1
export ORACLE_SID=orcl1
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin
export CLASSPATH=\$ORACLE_HOME/JRE:\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOF
配置rac2節點grid和oracle用戶的環境變量
//使用root用戶添加grid用戶的環境變量
cat>>/home/grid/.bash_profile<<EOF
export ORACLE_SID=+ASM2;
export ORACLE_BASE=/u01/app/grid;
export ORACLE_HOME=/u01/app/19.0.0/grid;
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";
export PATH=.:\$PATH:\$HOME/bin:\$ORACLE_HOME/bin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/JRE:\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOF
//使用root用戶添加oracel用戶的環境變量
cat>>/home/oracle/.bash_profile<<EOF
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.0.0/db_1
export ORACLE_SID=orcl2
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin
export CLASSPATH=\$ORACLE_HOME/JRE:\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOF
查看交換分區大小 確定要添加的交換分區大小(內存小於16G,交換分區等於內存大小,內存大於16G,交換分區等於16G)
free -m
添加交換文件
dd if=/dev/zero of=/root/swap bs=1024 count=1024000
---這里 bs=是bytes, count是 blocks 個塊,這里的就是 1024bytes=1K,1024000K=1000M
格式化為交換文件系統
mkswap /root/swap
啟用交換文件
swapon /root/swap
使交換分區在引導時啟用
vi /etc/fstab
/dec/hdb5 swap swap defaults 0 0
/root/swap swap swap defaults 0 0
掛載生效
mount -a

配置ASM共享磁盤
多路徑配置共享磁盤
獲取UUID
/usr/lib/udev/scsi_id -g -u -d /dev/mapper/mpatha (其他磁盤類似)
配置/etc/multipath.conf
blacklist {
devnode "^sda"
}
defaults {
user_friendly_names yes
path_grouping_policy multibus
failback immediate
no_path_retry fail
}
multipaths {
multipath {
wwid 36e483261006449fa4ab494e60000000a
alias asm_data
}
multipath {
wwid 36e483261006449fa4ab4c1240000000b
alias asm_fra0
}
multipath {
wwid 36e483261006449fa4e6b46120000000c
alias asm_crs1
}
multipath {
wwid 36e483261006449fa4e6b46420000000d
alias asm_crs2
}
multipath {
wwid 36e483261006449fa4e6b466d0000000e
alias asm_crs3
}
}
生成rules文件
vim /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36e483261006449fa4ab494e60000000a",SYMLINK+="asm_data",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36e483261006449fa4ab4c1240000000b",SYMLINK+="asm_fra0",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36e483261006449fa4e6b46420000000d",SYMLINK+="asm_crs1",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36e483261006449fa4e6b46120000000c",SYMLINK+="asm_crs2",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36e483261006449fa4e6b466d0000000e",SYMLINK+="asm_crs3",OWNER="grid",GROUP="asmadmin",MODE="0660"
重新加載udev
udevadm control --reload-rules
udevadm trigger
查看磁盤
ll /dev/mapper/asm*

將rules文件復制到另外一節點,重新加載udev生效
配置用戶互信(oracle和grid)
在節點rac1和rac2節點分別執行
ssh-keygen -t rsa
然后一路回車
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
在節點rac1 上執行
ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
在節點rac2上執行
ssh rac1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
連接測試(初次要輸入密碼。后續都不用就ok)
在rac1節點輸入
ssh rac2 date
在rac2節點輸入
ssh rac1 date