G003-ORACLE-INS-RAC-01 ORACLE 19C RAC Ins ON OEL 7.8

[TOCM]

您需要知道的

  • 您需要熟悉如何去搭建 Linux 操作系统,可参考 OS-INS 类相关文档完成此操作
  • 您需要熟悉如何在 Linux 操作系统上安装 Oracle 数据库,可参考 ORACLE-INS-FS 类相关文档完成此操作
  • 您需要熟悉如何在 Linux 操作系统上安装单实例 ASM 环境,可参考 ORACLE-INS-ASM 相关文档完成此操作
  • 本文不适合零基础,如果可以,请按照上述三条进行逐步学习
  • 本文采用 VMWare Workstation 15.5 虚拟机/Oracle 19c/Oracle Linux 7.8 环境进行集群双节点搭建
  • 如果学习 RAC,配置共享磁盘强烈建议使用 VirtualBox 虚拟机
  • 文中出现的系统规划、网络规划及存储规划作为实验学习使用,生产环境需根据实际情况进行规划

1 规划

1.1 系统规划

磁盘名称 磁盘大小 作用
/dev/sda 50G OS 操作系统
/dev/sdb 20G 临时软件
/dev/sdc 50G Oracle 软件

1.2 网络规划

节点 IP 名称 类型 作用
Node1 192.168.31.101 racnode1 公网 IP 公司内部访问,非外网
Node1 192.168.111.128 node1pri 私有 IP 用于 2 节点间心跳网络
Node1 192.168.31.102 node1vip Virtual IP 提供客户端访问,漂移
Node2 192.168.31.201 racnode2 公网 IP 公司内部访问,非外网
Node2 192.168.111.129 node2pri 私有 IP 用于 1 节点间心跳网络
Node2 192.168.31.202 node2vip Virtual IP 提供客户端访问,漂移
N1+N2 192.168.31.100 racscan SCAN IP 提供客户端访问,均衡

1.3 存储规划

磁盘名称 磁盘大小 ASM磁盘名称 作用
/dev/sdd 2G asm-ocr1 OCR/Voting File
/dev/sde 2G asm-ocr2 OCR/Voting File
/dev/sdf 2G asm-ocr3 OCR/Voting File
/dev/sdg 30G asm-data Data Files

2 操作系统安装(略)

参考 OS-INS 类相关文档完成此操作

3 系统环境及参数设置

3.1 YUM仓库配置(双节点)

 mv /etc/yum.repos.d/* /tmp/
 echo "[local_yum]" >> /etc/yum.repos.d/henry.repo
 echo "name = henry_repo" >> /etc/yum.repos.d/henry.repo
 echo "baseurl = file:///mnt/" >> /etc/yum.repos.d/henry.repo
 echo "enabled = 1" >> /etc/yum.repos.d/henry.repo
 echo "gpgcheck = 0" >> /etc/yum.repos.d/henry.repo
 mount /dev/cdrom /mnt/
 yum -y install autoconf
 yum -y install automake
 yum -y install binutils
 yum -y install binutils-devel
 yum -y install bison
 yum -y install cpp
 yum -y install dos2unix
 yum -y install ftp
 yum -y install gcc
 yum -y install gcc-c++
 yum -y install lrzsz
 yum -y install python-devel
 yum -y install compat-libcap1
 yum -y install compat-libstdc++-33
 yum -y install compat-libstdc++-33.i686
 yum -y install glibc-*
 yum -y install glibc-*.i686
 yum -y install libXpm-*.i686
 yum -y install libXext
 yum -y install libXext.i686
 yum -y install libXtst
 yum -y install libXtst.i686
 yum -y install libX11
 yum -y install libX11.i686
 yum -y install libXau
 yum -y install libXau.i686
 yum -y install libxcb
 yum -y install libxcb.i686
 yum -y install libXi
 yum -y install libXi.i686
 yum -y install libstdc++.i686
 yum -y install libstdc++-devel
 yum -y install libstdc++-devel.i686
 yum -y install libaio
 yum -y install libaio.i686
 yum -y install libaio-devel
 yum -y install libaio-devel.i686
 yum -y install ksh
 yum -y install libXp
 yum -y install libaio-devel
 yum -y install numactl
 yum -y install numactl-devel
 yum -y install make -y
 yum -y install sysstat -y
 yum -y install unixODBC
 yum -y install unixODBC-devel
 yum -y install elfutils-libelf-devel
 yum -y install redhat-lsb-core
 yum -y install unzip
 yum -y install libXrender
 yum -y install libXrender-devel
 yum -y install nfs-utils
 yum -y install smartmontools
 yum -y install tigervnc*
 yum install -y libvirt*

3.2 编辑HOSTS文件(双节点)

vim /etc/hosts
# 添加内容
#scanip 
192.168.31.100 racscan
#node1
192.168.31.101 racnode1
192.168.31.102 node1vip
192.168.111.128 node1pri
#node2
192.168.31.201 racnode2
192.168.31.202 node2vip
192.168.111.129 node2pri

3.3 创建用户和组(双节点)

/usr/sbin/groupadd -g 5001 oinstall
/usr/sbin/groupadd -g 5002 dba
/usr/sbin/groupadd -g 5003 oper
/usr/sbin/groupadd -g 5004 asmadmin
/usr/sbin/groupadd -g 5005 asmoper
/usr/sbin/groupadd -g 5006 asmdba
/usr/sbin/useradd -g oinstall -G dba,asmdba,oper -d /home/oracle -m oracle
/usr/sbin/useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba -d /home/grid -m grid
# 修改用户 oracle 及 grid 密码
passwd oracle
passwd grid

3.4 创建文件夹及授权(双节点)

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

3.5 用户资源限制配置(双节点)

vim /etc/security/limits.conf
# 添加内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
* soft memlock unlimited
* hard memlock unlimited
root soft stack 10240
root hard stack 32768

3.6 将资源限制加入验证模块(双节点)

echo "session required pam_limits.so" >> /etc/pam.d/login

3.7 修改内核参数(双节点)

vim /etc/sysctl.conf
# 编辑文件添加以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
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 = 1048586
kernel.panic_on_oops = 1
kernel.shmmax = 7730941132
kernel.shmall = 1887436
kernel.shmmni = 4096
# 执行命令刷新生效
sysctl -p

3.8 关闭交换页面(双节点)

vim /etc/rc.d/rc.local
# 添加内容
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

3.9 关闭防火墙(双节点)

systemctl stop firewalld.service
systemctl disable firewalld.service

3.10 关闭SELinux(双节点)

vim /etc/sysconfig/selinux
# 修改内容
SELINUX=disabled

3.11 关闭其他不需要的服务(双节点-可选)

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

4 编辑用户环境变量

4.1 GRID用户环境变量

4.1.1 节点1

su - grid
vim .bash_profile
# 添加内容
PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
umask 022
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=racnode1
ORACLE_SID=+ASM1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/19.3.0/grid; export ORACLE_HOME
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
PATH=.:$PATH:$HOME/bin:$ORACLE_HOME/bin; export PATH
THREADS_FLAG=native; export THREADS_FLAG
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi

4.1.2 节点2

su - grid
vim .bash_profile
# 添加内容
PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
umask 022
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=racnode2
ORACLE_SID=+ASM2; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/19.3.0/grid; export ORACLE_HOME
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
PATH=.:$PATH:$HOME/bin:$ORACLE_HOME/bin; export PATH
THREADS_FLAG=native; export THREADS_FLAG
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi

4.2 ORACLE用户环境变量

4.2.1 节点1

su - oracle
vim .bash_profile
# 添加内容
PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=racnode1
export ORACLE_UNQNAME=SALESERP
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=SALES1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG
PATH=.:$PATH:$HOME/bin:$ORACLE_BASE/product/19.3.0/dbhome_1/bin:$ORACLE_HOME/bin; export
PATH
THREADS_FLAG=native; export THREADS_FLAG
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi

4.2.2 节点2

su - oracle
vim .bash_profile
# 添加内容
PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=racnode2
export ORACLE_UNQNAME=SALESERP
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=SALES2; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG
PATH=.:$PATH:$HOME/bin:$ORACLE_BASE/product/19.3.0/dbhome_1/bin:$ORACLE_HOME/bin; export
PATH
THREADS_FLAG=native; export THREADS_FLAG
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi

5 SSH 互信

5.1 GRID用户互信

5.1.1 节点1

su - grid
rm -rf ~/.ssh
mkdir ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa

5.1.2 节点2

su - grid
rm -rf ~/.ssh
mkdir ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa

5.1.3 节点1追加互信并拷贝至节点2

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 
ssh racnode2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh racnode2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp /home/grid/.ssh/authorized_keys racnode2:~/.ssh/authorized_keys

5.1.4 节点1验证互信(无需密码)

ssh racnode1 date
ssh racnode2 date
ssh node1pri date
ssh node2pri date

5.1.5 节点2验证互信(无需密码)

ssh racnode1 date
ssh racnode2 date
ssh node1pri date
ssh node2pri date

5.2 ORACLE用户互信

5.2.1 节点1

su - oracle
rm -rf ~/.ssh
mkdir ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa

5.2.2 节点2

su - oracle
rm -rf ~/.ssh
mkdir ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa

5.2.3 节点1追加互信并拷贝至节点2

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh racnode2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh racnode2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 
scp /home/oracle/.ssh/authorized_keys racnode2:~/.ssh/authorized_keys

5.2.4 节点1验证互信(无需密码)

ssh racnode1 date
ssh racnode2 date
ssh node1pri date
ssh node2pri date

5.2.5 节点2验证互信(无需密码)

ssh racnode1 date
ssh racnode2 date
ssh node1pri date
ssh node2pri date

6 ASM 磁盘配置(UDEV)

本文使用 VMWare Workstation 15.5 虚拟机进行配置

# 关闭节点1和节点2
systemctl poweroff
# 创建独立的共享磁盘文件夹
sharedisk

6.1 节点1添加磁盘

  • 按照 1.3 规划,添加 4 块硬盘。
  • 虚拟机设置永久模式前提是不允许存在虚拟机快照,如存在,请删除。
  • 节点 1 添加一块共享磁盘步骤如下,以此类推。

6.2 节点2添加磁盘

  • 添加磁盘选择 使用现有虚拟磁盘
  • 节点 2 的磁盘选择与虚拟设备号要和节点 1 保持一致
  • 节点 2 添加一块共享磁盘步骤如下,以此类推。

6.3 节点2虚拟机添加代码段

# 节点二虚拟机配置文件中添加以下代码段,避免同时开启锁定磁盘
disk.locking = "FALSE" 
diskLib.dataCacheMaxSize= "0" 
scsi1.sharedBus ="virtual"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
disk.EnableUUID = "TRUE"

6.4 节点1分区

fdisk /dev/sdd
fdisk /dev/sde
fdisk /dev/sdf
fdisk /dev/sdg

6.5 节点1确认SCSI标识符

  • 通过命令 /usr/lib/udev/scsi_id -g -u -d 分区名 确认标识符,最终对应关系如下
分区 标识符
/usr/lib/udev/scsi_id -g -u -d /dev/sdd1 36000c29c627c4e18666e2ba340715dc9
/usr/lib/udev/scsi_id -g -u -d /dev/sde1 36000c295b648ea51ee6b56b006825def
/usr/lib/udev/scsi_id -g -u -d /dev/sdf1 36000c29d97a96e82fcd40598caba8115
/usr/lib/udev/scsi_id -g -u -d /dev/sdg1 36000c2990c196f54a57085a995e97d9d

6.6 节点1编辑UDEV规则文件

  • 创建文件 vim /etc/udev/rules.d/99-oracle-asmdevices.rules,按以下格式编辑条目,替换 RESULT 对应的 SCSI 标识符
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29c627c4e18666e2ba340715dc9", SYMLINK+="oasm/asm-ocr1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c295b648ea51ee6b56b006825def", SYMLINK+="oasm/asm-ocr2", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c29d97a96e82fcd40598caba8115", SYMLINK+="oasm/asm-ocr3", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="36000c2990c196f54a57085a995e97d9d", SYMLINK+="oasm/asm-data", OWNER="grid", GROUP="asmadmin", MODE="0660"
  • 执行 partprobe 识别
/sbin/partprobe /dev/sdd1
/sbin/partprobe /dev/sde1
/sbin/partprobe /dev/sdf1
/sbin/partprobe /dev/sdg1
  • 查看磁盘
请确保所有链接磁盘均可见,并具有对应的正确权限,否则,在进行下一步之前请解决该问题。
[root@racnode1 ~]# ls -lathr /dev/oasm/*
lrwxrwxrwx 1 root root 7 Oct 10 10:26 /dev/oasm/asm-ocr1 -> ../sdd1
lrwxrwxrwx 1 root root 7 Oct 10 10:26 /dev/oasm/asm-ocr2 -> ../sde1
lrwxrwxrwx 1 root root 7 Oct 10 10:26 /dev/oasm/asm-ocr3 -> ../sdf1
lrwxrwxrwx 1 root root 7 Oct 10 10:26 /dev/oasm/asm-data -> ../sdg1
上面链接归 root 用户所有,但是链接所指向的磁盘是拥有正确权限的。
[root@racnode1 ~]# ls -lathr /dev/sd*1 |grep -v sda1 |grep -v sdb1 |grep -v sdc1
brw-rw---- 1 grid asmadmin 8, 49 Oct 10 10:26 /dev/sdd1
brw-rw---- 1 grid asmadmin 8, 65 Oct 10 10:26 /dev/sde1
brw-rw---- 1 grid asmadmin 8, 81 Oct 10 10:26 /dev/sdf1
brw-rw---- 1 grid asmadmin 8, 97 Oct 10 10:26 /dev/sdg1

6.7 拷贝节点1 UDEV文件至节点2

[root@racnode1 ~]# scp /etc/udev/rules.d/99-oracle-asmdevices.rules racnode2:/etc/udev/rules.d/
The authenticity of host 'racnode2 (192.168.31.201)' can't be established.
ECDSA key fingerprint is SHA256:Yj1vqmj9gGZ5pSF7E9B4kCce/C1TF6HvWHjzWVXMSuE.
ECDSA key fingerprint is MD5:bc:97:90:73:c2:a8:a6:5c:d0:9d:20:9e:6f:4c:d2:9a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'racnode2,192.168.31.201' (ECDSA) to the list of known hosts.
root@racnode2's password: 
99-oracle-asmdevices.rules                         100%  828     1.2MB/s   00:00

6.8 节点2重启UDEV服务

systemctl restart systemd-udevd.service 
udevadm control --reload-rules
udevadm trigger --type=devices --action=add
[root@racnode2 ~]# ls -lathr /dev/oasm/*
lrwxrwxrwx 1 root root 7 Oct 10 10:34 /dev/oasm/asm-ocr1 -> ../sdd1
lrwxrwxrwx 1 root root 7 Oct 10 10:34 /dev/oasm/asm-ocr2 -> ../sde1
lrwxrwxrwx 1 root root 7 Oct 10 10:34 /dev/oasm/asm-ocr3 -> ../sdf1
lrwxrwxrwx 1 root root 7 Oct 10 10:34 /dev/oasm/asm-data -> ../sdg1
[root@racnode2 ~]# ls -lathr /dev/sd*1 |grep -v sda1 |grep -v sdb1 |grep -v sdc1
brw-rw---- 1 grid asmadmin 8, 49 Oct 10 10:34 /dev/sdd1
brw-rw---- 1 grid asmadmin 8, 65 Oct 10 10:34 /dev/sde1
brw-rw---- 1 grid asmadmin 8, 81 Oct 10 10:34 /dev/sdf1
brw-rw---- 1 grid asmadmin 8, 97 Oct 10 10:34 /dev/sdg1
# 强烈建议直接重启 systemctl reboot

学习实验配置RAC共享磁盘,建议使用 VirtualBox

7 Grid Infrastructure 配置安装

7.1 节点1解压GI软件

[root@racnode1 ~]# chmod -R 777 /soft/
[root@racnode1 ~]# su - grid
Last login: Wed Sep 30 10:18:34 CST 2020 on pts/0
[grid@racnode1:/home/grid]$cd $ORACLE_HOME
[grid@racnode1:/u01/app/19.3.0/grid]$unzip -q /soft/LINUX.X64_193000_grid_home.zip

7.2 节点1安装集群检测包

[root@racnode1 ~]# cd /u01/app/19.3.0/grid/cv/rpm/
[root@racnode1 rpm]# rpm -ivh cvuqdisk-1.0.10-1.rpm 
Preparing...                          ################################# [100%]
Using default group oinstall to install package
Updating / installing...
   1:cvuqdisk-1.0.10-1                ################################# [100%]

7.3 节点2安装集群检测包

# 拷贝至节点2
[root@racnode1 rpm]# scp cvuqdisk-1.0.10-1.rpm racnode2:/tmp
root@racnode2's password: 
cvuqdisk-1.0.10-1.rpm                       100%   11KB  10.7MB/s   00:00
# 节点2安装
[root@racnode2 ~]# cd /tmp/
[root@racnode2 tmp]# rpm -ivh cvuqdisk-1.0.10-1.rpm 
Preparing...                          ################################# [100%]
Using default group oinstall to install package
Updating / installing...
   1:cvuqdisk-1.0.10-1                ################################# [100%]

7.4 解压更新OPatch工具

如不考虑打补丁,可跳过本小节

# 截至文章发布,GI软件最新RU补丁版本为 2020.07.14 发布的 19.8.0.0.200714(补丁号 Patch 31305339),该补丁要求 OPatch 工具最低版本为 12.2.0.1.21
# 截止二次发文时间(2020.10.28),GI软件最新RU补丁版本为 2020.10.20 发布的 19.9.0.0.201020(补丁号 Patch 31750108),OPatch版本要求请自行查看
# 查看当前 OPatch 工具版本
[grid@racnode1:/home/grid]$cd $ORACLE_HOME
[grid@racnode1:/u01/app/19.3.0/grid]$OPatch/opatch version
OPatch Version: 12.2.0.1.17
OPatch succeeded.
# 下载最新 OPatch 工具解压覆盖
[grid@racnode1:/u01/app/19.3.0/grid]$unzip -q /soft/p6880880_121010_Linux-x86-64.zip
replace OPatch/emdpatch.pl? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
# 查看最新 OPatch 工具版本
[grid@racnode1:/u01/app/19.3.0/grid]$OPatch/opatch version
OPatch Version: 12.2.0.1.21
OPatch succeeded.

7.5 解压GI软件最新RU补丁

如不考虑打补丁,可跳过本小节

[grid@racnode1:/home/grid]$cd /soft/
[grid@racnode1:/soft]$mkdir ogi
[grid@racnode1:/soft]$unzip -q p31305339_190000_Linux-x86-64.zip -d ogi

7.6 图形化安装GI软件

# 进入图形化桌面(打补丁)
[grid@racnode1 ~]$ cd $ORACLE_HOME
[grid@racnode1 grid]$ ./gridSetup.sh -applyRU /soft/ogi/31305339/
Preparing the home to patch...
Applying the patch /soft/ogi/31305339/...
Successfully applied the patch.
The log can be found at: /tmp/GridSetupActions2020-10-10_11-25-56AM/installerPatchActions_2020-10-10_11-25-56AM.log
Launching Oracle Grid Infrastructure Setup Wizard...
# 进入图形化桌面(不打补丁)
[grid@racnode1 ~]$ cd $ORACLE_HOME
[grid@racnode1 grid]$ ./gridSetup.sh

  • 节点1执行1脚本
[root@racnode1 ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
  • 节点2执行1脚本
[root@racnode2 ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
  • 节点1执行2脚本(等待执行完毕)
[root@racnode1 ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@racnode1 ~]# /u01/app/19.3.0/grid/root.sh
Performing root user operation.
The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /u01/app/19.3.0/grid
Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Relinking oracle with rac_on option
Using configuration parameter file: /u01/app/19.3.0/grid/crs/install/crsconfig_params
The log of current session can be found at:
  /u01/app/grid/crsdata/racnode1/crsconfig/rootcrs_racnode1_2020-10-10_12-00-08AM.log
2020/10/10 12:00:15 CLSRSC-594: Executing installation step 1 of 19: 'SetupTFA'.
2020/10/10 12:00:15 CLSRSC-594: Executing installation step 2 of 19: 'ValidateEnv'.
2020/10/10 12:00:15 CLSRSC-363: User ignored prerequisites during installation
2020/10/10 12:00:15 CLSRSC-594: Executing installation step 3 of 19: 'CheckFirstNode'.
2020/10/10 12:00:18 CLSRSC-594: Executing installation step 4 of 19: 'GenSiteGUIDs'.
2020/10/10 12:00:19 CLSRSC-594: Executing installation step 5 of 19: 'SetupOSD'.
2020/10/10 12:00:19 CLSRSC-594: Executing installation step 6 of 19: 'CheckCRSConfig'.
2020/10/10 12:00:20 CLSRSC-594: Executing installation step 7 of 19: 'SetupLocalGPNP'.
2020/10/10 12:00:36 CLSRSC-594: Executing installation step 8 of 19: 'CreateRootCert'.
2020/10/10 12:00:42 CLSRSC-594: Executing installation step 9 of 19: 'ConfigOLR'.
2020/10/10 12:01:04 CLSRSC-594: Executing installation step 10 of 19: 'ConfigCHMOS'.
2020/10/10 12:01:05 CLSRSC-594: Executing installation step 11 of 19: 'CreateOHASD'.
2020/10/10 12:01:14 CLSRSC-594: Executing installation step 12 of 19: 'ConfigOHASD'.
2020/10/10 12:01:15 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'
2020/10/10 12:01:34 CLSRSC-594: Executing installation step 13 of 19: 'InstallAFD'.
2020/10/10 12:01:34 CLSRSC-594: Executing installation step 14 of 19: 'InstallACFS'.
2020/10/10 12:01:38 CLSRSC-4002: Successfully installed Oracle Trace File Analyzer (TFA) Collector.
2020/10/10 12:02:04 CLSRSC-594: Executing installation step 15 of 19: 'InstallKA'.
2020/10/10 12:02:08 CLSRSC-594: Executing installation step 16 of 19: 'InitConfig'.
Redirecting to /bin/systemctl restart rsyslog.service
ASM has been created and started successfully.
[DBT-30001] Disk groups created successfully. Check /u01/app/grid/cfgtoollogs/asmca/asmca-201010PM120239.log for details.
2020/10/10 12:03:32 CLSRSC-482: Running command: '/u01/app/19.3.0/grid/bin/ocrconfig -upgrade grid oinstall'
CRS-4256: Updating the profile
Successful addition of voting disk be92bb6d24b14f3dbf20624b176c5a05.
Successful addition of voting disk 67641d8f6cc84f32bfb50207eac7d87e.
Successful addition of voting disk 84be0f12ad1c4f6fbf08a9aca3d5a3d3.
Successfully replaced voting disk group with +OCRDG.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   be92bb6d24b14f3dbf20624b176c5a05 (/dev/oasm/asm-ocr1) [OCRDG]
 2. ONLINE   67641d8f6cc84f32bfb50207eac7d87e (/dev/oasm/asm-ocr2) [OCRDG]
 3. ONLINE   84be0f12ad1c4f6fbf08a9aca3d5a3d3 (/dev/oasm/asm-ocr3) [OCRDG]
Located 3 voting disk(s).
2020/10/10 12:04:35 CLSRSC-594: Executing installation step 17 of 19: 'StartCluster'.
2020/10/10 12:05:41 CLSRSC-343: Successfully started Oracle Clusterware stack
2020/10/10 12:05:41 CLSRSC-594: Executing installation step 18 of 19: 'ConfigNode'.
2020/10/10 12:07:16 CLSRSC-594: Executing installation step 19 of 19: 'PostConfig'.
2020/10/10 12:07:53 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded
  • 节点2执行2脚本
[root@racnode2 ~]# /u01/app/19.3.0/grid/root.sh
Performing root user operation.
The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /u01/app/19.3.0/grid
Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Relinking oracle with rac_on option
Using configuration parameter file: /u01/app/19.3.0/grid/crs/install/crsconfig_params
The log of current session can be found at:
  /u01/app/grid/crsdata/racnode2/crsconfig/rootcrs_racnode2_2020-10-10_12-11-18AM.log
2020/10/10 12:11:20 CLSRSC-594: Executing installation step 1 of 19: 'SetupTFA'.
2020/10/10 12:11:20 CLSRSC-594: Executing installation step 2 of 19: 'ValidateEnv'.
2020/10/10 12:11:20 CLSRSC-363: User ignored prerequisites during installation
2020/10/10 12:11:20 CLSRSC-594: Executing installation step 3 of 19: 'CheckFirstNode'.
2020/10/10 12:11:22 CLSRSC-594: Executing installation step 4 of 19: 'GenSiteGUIDs'.
2020/10/10 12:11:22 CLSRSC-594: Executing installation step 5 of 19: 'SetupOSD'.
2020/10/10 12:11:23 CLSRSC-594: Executing installation step 6 of 19: 'CheckCRSConfig'.
2020/10/10 12:11:24 CLSRSC-594: Executing installation step 7 of 19: 'SetupLocalGPNP'.
2020/10/10 12:11:26 CLSRSC-594: Executing installation step 8 of 19: 'CreateRootCert'.
2020/10/10 12:11:27 CLSRSC-594: Executing installation step 9 of 19: 'ConfigOLR'.
2020/10/10 12:11:41 CLSRSC-594: Executing installation step 10 of 19: 'ConfigCHMOS'.
2020/10/10 12:11:41 CLSRSC-594: Executing installation step 11 of 19: 'CreateOHASD'.
2020/10/10 12:11:43 CLSRSC-594: Executing installation step 12 of 19: 'ConfigOHASD'.
2020/10/10 12:11:43 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'
2020/10/10 12:12:02 CLSRSC-594: Executing installation step 13 of 19: 'InstallAFD'.
2020/10/10 12:12:02 CLSRSC-594: Executing installation step 14 of 19: 'InstallACFS'.
2020/10/10 12:12:45 CLSRSC-594: Executing installation step 15 of 19: 'InstallKA'.
2020/10/10 12:12:46 CLSRSC-594: Executing installation step 16 of 19: 'InitConfig'.
Redirecting to /bin/systemctl restart rsyslog.service
2020/10/10 12:12:55 CLSRSC-594: Executing installation step 17 of 19: 'StartCluster'.
2020/10/10 12:12:55 CLSRSC-4002: Successfully installed Oracle Trace File Analyzer (TFA) Collector.
2020/10/10 12:13:42 CLSRSC-343: Successfully started Oracle Clusterware stack
2020/10/10 12:13:43 CLSRSC-594: Executing installation step 18 of 19: 'ConfigNode'.
2020/10/10 12:13:58 CLSRSC-594: Executing installation step 19 of 19: 'PostConfig'.
2020/10/10 12:14:05 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded

7.7 添加 ASM 磁盘

[grid@racnode1 ~]$ asmca

7.8 查看集群组件状态

[grid@racnode1:/home/grid]$crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       racnode1                 STABLE
               ONLINE  ONLINE       racnode2                 STABLE
ora.chad
               ONLINE  ONLINE       racnode1                 STABLE
               ONLINE  ONLINE       racnode2                 STABLE
ora.net1.network
               ONLINE  ONLINE       racnode1                 STABLE
               ONLINE  ONLINE       racnode2                 STABLE
ora.ons
               ONLINE  ONLINE       racnode1                 STABLE
               ONLINE  ONLINE       racnode2                 STABLE
ora.proxy_advm
               OFFLINE OFFLINE      racnode1                 STABLE
               OFFLINE OFFLINE      racnode2                 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       racnode1                 STABLE
      2        ONLINE  ONLINE       racnode2                 STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       racnode1                 STABLE
      2        ONLINE  ONLINE       racnode2                 STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       racnode1                 STABLE
ora.OCRDG.dg(ora.asmgroup)
      1        ONLINE  ONLINE       racnode1                 STABLE
      2        ONLINE  ONLINE       racnode2                 STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       racnode1                 Started,STABLE
      2        ONLINE  ONLINE       racnode2                 Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       racnode1                 STABLE
      2        ONLINE  ONLINE       racnode2                 STABLE
ora.cvu
      1        ONLINE  ONLINE       racnode1                 STABLE
ora.qosmserver
      1        ONLINE  ONLINE       racnode1                 STABLE
ora.racnode1.vip
      1        ONLINE  ONLINE       racnode1                 STABLE
ora.racnode2.vip
      1        ONLINE  ONLINE       racnode2                 STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       racnode1                 STABLE
--------------------------------------------------------------------------------

8 Oracle Database 配置安装

8.1 节点1解压DB软件

[oracle@racnode1 ~]$ cd $ORACLE_HOME
[oracle@racnode1 dbhome_1]$ unzip -q /soft/LINUX.X64_193000_db_home.zip

8.2 解压更新OPatch工具

如不考虑打补丁,可跳过本小节

# 截至文章发布,DB软件最新RU补丁版本为 2020.07.14 发布的 19.8.0.0.200714(补丁号 Patch Patch 31281355),该补丁要求 OPatch 工具最低版本为 12.2.0.1.21
# 截止二次发文时间(2020.10.28),DB软件最新RU补丁版本为 2020.10.20 发布的 19.9.0.0.201020(补丁号 Patch 31771877),OPatch版本要求请自行查看
# 查看当前 OPatch 工具版本
[oracle@racnode1 ~]$ cd $ORACLE_HOME
[oracle@racnode1 dbhome_1]$ OPatch/opatch version
OPatch Version: 12.2.0.1.17
OPatch succeeded.
# 下载最新 OPatch 工具解压覆盖
[oracle@racnode1 dbhome_1]$ unzip -q /soft/p6880880_121010_Linux-x86-64.zip 
replace OPatch/emdpatch.pl? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
# 查看最新 OPatch 工具版本
[oracle@racnode1 dbhome_1]$ OPatch/opatch version
OPatch Version: 12.2.0.1.21
OPatch succeeded.

8.3 解压DB软件最新RU补丁

如不考虑打补丁,可跳过本小节

[oracle@racnode1 dbhome_1]$ cd /soft/
[oracle@racnode1 soft]$ mkdir odb
[oracle@racnode1 soft]$ unzip -q p31281355_190000_Linux-x86-64.zip -d odb

8.4 图形化安装DB软件

# 进入图形化桌面(打补丁)
[oracle@racnode1 ~]$ cd $ORACLE_HOME
[oracle@racnode1 dbhome_1]$ ./runInstaller -applyRU /soft/odb/31281355/
Preparing the home to patch...
Applying the patch /soft/odb/31281355/...
Successfully applied the patch.
The log can be found at: /u01/app/oraInventory/logs/InstallActions2020-10-10_01-12-49PM/installerPat    chActions_2020-10-10_01-12-49PM.log
Launching Oracle Database Setup Wizard...
# 进入图形化桌面(不打补丁)
[oracle@racnode1 ~]$ cd $ORACLE_HOME
[oracle@racnode1 dbhome_1]$ ./runInstaller

  • 节点1执行脚本
[root@racnode1 ~]# /u01/app/oracle/product/19.3.0/dbhome_1/root.sh
Performing root user operation.
The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/19.3.0/dbhome_1
Enter the full pathname of the local bin directory: [/usr/local/bin]: 
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
  • 节点2执行脚本
[root@racnode2 ~]# /u01/app/oracle/product/19.3.0/dbhome_1/root.sh
Performing root user operation.
The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/19.3.0/dbhome_1
Enter the full pathname of the local bin directory: [/usr/local/bin]: 
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.

8.5 创建数据库

[oracle@racnode1 ~]$ dbca

[End]

请使用浏览器的分享功能分享到微信等