作者 | JiekeXu

来源 | JiekeXu DBA之路(ID: JiekeXu_IT)

大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看 使用 VMware 16  RHEL7.7 虚拟机静默安装 Oracle 19c RAC ,欢迎点击上方蓝字关注我,标星或置顶,更多干货第一时间到达!


虚拟机安装以及一些基础配置,前面一篇文章已经写过了,这里不在重复,但有些关键步骤这里再次提一下即可。不管安装 11g、12c、19c、21c RAC,只要仔细认真对待,便可以安装成功。推荐先看前段时间的这篇《一步步安装 Oracle 19c RAC 》。

Linux 64 位 19.12 RU :https://www.modb.pro/download/137693
Linux 64 位 RAC 安装包:https://www.modb.pro/download/5713

1.新建用户,组,目录 并修改 sshd_config  快速登录

1.1 新建用户和组
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 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,racdba -u 10000 oracle
useradd -g oinstall -G dba,asmdba,asmoper,asmadmin,racdba -u 10001 grid
echo "Oracle_19C" | passwd --stdin oracle
echo "Oracle_19C" | passwd --stdin grid
1.2 创建目录
mkdir -p /u01/app/19.0.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p /home/soft
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
chmod -R 775 /home/soft
chown -R oracle:oinstall /home/soft
1.3 环境变量
cat >> /home/oracle/.bash_profile << "EOF"
################ add ORACLE_PATH #########################
export PS1="`whoami`@`hostname`:"'[$PWD]$'
export HOST=`hostname | cut -f1 -d"."`
export PS1='${HOST}:$PWD(${ORACLE_SID})$ '
export LANG=en_US
umask 022
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_HOSTNAME=jiekexu-r1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=JiekeXu1
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
alias sas='sqlplus / as sysdba'
EOF
--配置LoginGraceTime参数为0, 将timeout wait设置为无限制
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_`date +"%Y%m%d_%H%M%S"` && sed -i '/#LoginGraceTime 2m/ s/#LoginGraceTime 2m/LoginGraceTime 0/' /etc/ssh/sshd_config && grep LoginGraceTime /etc/ssh/sshd_config
--加快SSH登陆速度,禁用DNS
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_`date +"%Y%m%d_%H%M%S"` && sed -i '/#UseDNS yes/ s/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config && grep UseDNS /etc/ssh/sshd_config

2.修改 hosts 文件并配置网卡

2.1 hosts 配置
cp /etc/hosts /etc/hosts_`date +"%Y%m%d_%H%M%S"`
echo '#public ip
192.168.75.128 jiekexu-r1
192.168.75.129 jiekexu-r2
#private ip
10.10.10.128 jiekexu-r1-priv
10.10.10.129 jiekexu-r2-priv
#vip
192.168.75.130 jiekexu-r1-vip
192.168.75.131 jiekexu-r2-vip
#scanip
192.168.75.132 jiekexu-racscan'>> /etc/hosts
2.2 public IP 和 private 私网配置
[root@jiekexu-r1 network-scripts]# more ifcfg-ens32
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="yes"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens32"
UUID="e8332396-7724-410f-9887-1fc0e27fc818"
DEVICE="ens32"
ONBOOT="yes"
GATEWAY="192.168.75.2"
IPADDR="192.168.75.128"
PREFIX="24"
IPV6_PRIVACY="no"
[root@jiekexu-r1 network-scripts]# more ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
HWADDR="00:0C:29:2C:79:D8"
uuid="c96bc909-188e-ec64-3a96-6a90982b08ad"
ONBOOT=yes
GATEWAY="10.10.10.1"
IPADDR="10.10.10.128"
PREFIX="24"

3.共享存储配置

3.1 命令行新建存储文件

这里暂且规划 3 块 3G OCR 盘,两块 10G DATA 数据盘,一块 10G  ARCH 归档盘。

vmware-vdiskmanager.exe -c -s 3GB -a lsilogic -t 2 "D:\VMware_File\Sharedisk19C\share-ocr01.vmdk" 
vmware-vdiskmanager.exe -c -s 3GB -a lsilogic -t 2 "D:\VMware_File\Sharedisk19C\share-ocr02.vmdk" 
vmware-vdiskmanager.exe -c -s 3GB -a lsilogic -t 2 "D:\VMware_File\Sharedisk19C\share-ocr03.vmdk" 
vmware-vdiskmanager.exe -c -s 10GB -a lsilogic -t 2 "D:\VMware_File\Sharedisk19C\share-data01.vmdk"
vmware-vdiskmanager.exe -c -s 10GB -a lsilogic -t 2 "D:\VMware_File\Sharedisk19C\share-data02.vmdk"
vmware-vdiskmanager.exe -c -s 10GB -a lsilogic -t 2 "D:\VMware_File\Sharedisk19C\share-arch01.vmdk"

以管理员运行 cmd 命令行进入到 VM ware 安装目录下执行以上命令

C:\WINDOWS\system32>cd C:\Program Files (x86)\VMware\VMware Workstation

3.2关闭两台虚拟机,编辑两台主机的相关 vmx 配置文件

分别将以下配置添加至两台主机的 vmx 配置文件

#shared disks configure
diskLib.dataCacheMaxSize=0        
diskLib.dataCacheMaxReadAheadSize=0
diskLib.dataCacheMinReadAheadSize=0
diskLib.dataCachePageSize=4096    
diskLib.maxUnsyncedWrites = "0"

disk.locking = "FALSE"
scsi1.sharedBus = "virtual"
scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"

scsi1:0.mode = "independent-persistent"
scsi1:0.deviceType = "disk"
scsi1:0.present = "TRUE"
scsi1:0.fileName = "D:\VMware_File\Sharedisk19C\share-ocr01.vmdk"  
scsi1:0.redo = ""

scsi1:1.mode = "independent-persistent"
scsi1:1.deviceType = "disk"
scsi1:1.present = "TRUE"
scsi1:1.fileName = "D:\VMware_File\Sharedisk19C\share-ocr02.vmdk" 
scsi1:1.redo = ""

scsi1:2.mode = "independent-persistent"
scsi1:2.deviceType = "disk"
scsi1:2.present = "TRUE"
scsi1:2.fileName = "D:\VMware_File\Sharedisk19C\share-ocr03.vmdk" 
scsi1:2.redo = ""

scsi1:3.mode = "independent-persistent"
scsi1:3.deviceType = "disk"
scsi1:3.present = "TRUE"
scsi1:3.fileName = "D:\VMware_File\Sharedisk19C\share-data01.vmdk" 
scsi1:3.redo = ""

scsi1:4.mode = "independent-persistent"
scsi1:4.deviceType = "disk"
scsi1:4.present = "TRUE"
scsi1:4.fileName = "D:\VMware_File\Sharedisk19C\share-data02.vmdk" 
scsi1:4.redo = ""

scsi1:5.mode = "independent-persistent"
scsi1:5.deviceType = "disk"
scsi1:5.present = "TRUE"
scsi1:5.fileName = "D:\VMware_File\Sharedisk19C\share-arch01.vmdk" 
scsi1:5.redo =file ""
fileName 指定虚拟机共享存储的位置及文件名。"D:\VMware_File\Sharedisk19C\share-arch01.vmdk"
3.3开启虚拟机

3.4 使用 multipath+udev 配置存储

参考前面的文章配置即可

[root@jiekexu-r1 network-scripts]# lsblk
NAME                        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                           8:0    0   60G  0 disk 
+-sda1                        8:1    0    1G  0 part /boot
+-sda2                        8:2    0   59G  0 part 
  +-rhel_jiekexu--test-root 253:0    0 35.6G  0 lvm  /
  +-rhel_jiekexu--test-swap 253:1    0    6G  0 lvm  [SWAP]
  +-rhel_jiekexu--test-home 253:2    0 17.4G  0 lvm  /home
sdb                           8:16   0    3G  0 disk 
sdc                           8:32   0    3G  0 disk 
sdd                           8:48   0    3G  0 disk 
sde                           8:64   0   10G  0 disk 
sdf                           8:80   0   10G  0 disk 
sdg                           8:96   0   10G  0 disk 
sr0                          11:0    1  4.2G  0 rom

4.操作系统配置

4.1挂载光盘镜像配置 yum 源
mkdir /mnt/dvd

mount /dev/sr0 /mnt/dvd

[root@jiekexu-r1 network-scripts]# ls -lh /mnt/dvd
total 974K
dr-xr-xr-x 4 root root 2.0K Jul 23  2019 addons
dr-xr-xr-x 3 root root 2.0K Jul 23  2019 EFI
-r--r--r-- 1 root root 8.1K Jul 23  2019 EULA
-r--r--r-- 1 root root 1.5K Jul 23  2019 extra_files.json
-r--r--r-- 1 root root  18K Jul 23  2019 GPL
dr-xr-xr-x 3 root root 2.0K Jul 23  2019 images
dr-xr-xr-x 2 root root 2.0K Jul 23  2019 isolinux
dr-xr-xr-x 2 root root 2.0K Jul 23  2019 LiveOS
-r--r--r-- 1 root root  114 Jul 23  2019 media.repo
dr-xr-xr-x 2 root root 924K Jul 23  2019 Packages
dr-xr-xr-x 2 root root 2.0K Jul 23  2019 repodata
-r--r--r-- 1 root root 3.3K Jul  3  2019 RPM-GPG-KEY-redhat-beta
-r--r--r-- 1 root root 3.2K Jul  3  2019 RPM-GPG-KEY-redhat-release
-r--r--r-- 1 root root 1.8K Jul 23  2019 TRANS.TBL

/mnt/dvd/  则是配置 yum 仓库要用到的路径

cd /etc/yum.repos.d/
cat  << EOF >> /etc/yum.repos.d/redhat.repo
[rhel7]name=jiekexu repobaseurl=file:///mnt/dvd/gpgcheck=0
EOF
yum clean all
yum list | grep zsh

4.2 配置多路径

##安装multipath

yum install -y device-mapper*

#生成配置文件

mpathconf --enable --with_multipathd y

[root@jiekexu-r1 ~]# lsblk
NAME                        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                           8:0    0   60G  0 disk 
+-sda1                        8:1    0    1G  0 part /boot
+-sda2                        8:2    0   59G  0 part 
  +-rhel_jiekexu--test-root 253:0    0 35.6G  0 lvm  /
  +-rhel_jiekexu--test-swap 253:1    0    6G  0 lvm  [SWAP]
  +-rhel_jiekexu--test-home 253:2    0 17.4G  0 lvm  /home
sdb                           8:16   0    3G  0 disk 
sdc                           8:32   0    3G  0 disk 
sdd                           8:48   0    3G  0 disk 
sde                           8:64   0   10G  0 disk 
sdf                           8:80   0   10G  0 disk 
sdg                           8:96   0   10G  0 disk 
sr0                          11:0    1  4.2G  0 rom  /mnt/dvd


[root@jiekexu-r1 repodata]# /usr/lib/udev/scsi_id -g -u /dev/sdb
36000c29714156f014c53bf30fbcc4162
[root@jiekexu-r1 repodata]# /usr/lib/udev/scsi_id -g -u /dev/sdc
36000c296835807593a81c0c4597f64d6
[root@jiekexu-r1 repodata]# /usr/lib/udev/scsi_id -g -u /dev/sdd
36000c29760b3f5110218e88d0fe6710c
[root@jiekexu-r1 repodata]# /usr/lib/udev/scsi_id -g -u /dev/sde
36000c29c671fc199d01bebc6e05e3270
[root@jiekexu-r1 repodata]# /usr/lib/udev/scsi_id -g -u /dev/sdf
36000c291ffdcc7e2ea852fe4a4e29fcc
[root@jiekexu-r1 repodata]# /usr/lib/udev/scsi_id -g -u /dev/sdg
36000c29ddf7a88a288da95203aa0a929


##配置multipath,wwid 的值为上面获取的 scsi_id(multipath -v3 也可以查看到),alias 可自定义,这里配置 3 块 OCR 盘,2块DATA盘,一块 ARCH 盘。
cp /etc/multipath.conf /etc/multipath.conf.bak
配置文件中有以下内容:
defaults {
        user_friendly_names yes
        find_multipaths yes
}


blacklist {
}


如下需要在 blacklist 添加一行 devnode 信息,删除原有的 blacklist
cat <<EOF>> /etc/multipath.conf


blacklist {
  devnode "^sda"
}


multipaths {
  multipath {
  wwid "36000c29714156f014c53bf30fbcc4162"
  alias asm_ocr01
  }
  multipath {
  wwid "36000c296835807593a81c0c4597f64d6"
  alias asm_ocr02
  }
  multipath {
  wwid "36000c29760b3f5110218e88d0fe6710c"
  alias asm_ocr03
  }
  multipath {
  wwid "36000c29c671fc199d01bebc6e05e3270"
  alias asm_data01
  }  
  multipath {
  wwid "36000c291ffdcc7e2ea852fe4a4e29fcc"
  alias asm_data02
  }
  multipath {
  wwid "36000c29ddf7a88a288da95203aa0a929"
  alias asm_arch01
  }
}
EOF


##激活multipath多路径:
multipath -F
multipath -v2
multipath -ll

#查看状态

systemctl status multipathd.service

#创建多路径开机自启动服务

systemctl enable multipathd.service

[root@jiekexu-r1 mapper]# multipath -v3 | grep 3600
Aug 22 21:16:59 | sdb: uid = 36000c29714156f014c53bf30fbcc4162 (udev)
Aug 22 21:16:59 | sdc: uid = 36000c296835807593a81c0c4597f64d6 (udev)
Aug 22 21:16:59 | sdd: uid = 36000c29760b3f5110218e88d0fe6710c (udev)
Aug 22 21:16:59 | sde: uid = 36000c29c671fc199d01bebc6e05e3270 (udev)
Aug 22 21:16:59 | sdf: uid = 36000c291ffdcc7e2ea852fe4a4e29fcc (udev)
Aug 22 21:16:59 | sdg: uid = 36000c29ddf7a88a288da95203aa0a929 (udev)
36000c29714156f014c53bf30fbcc4162 33:0:0:0 sdb 8:16  1   undef undef  VMware, 
36000c296835807593a81c0c4597f64d6 33:0:1:0 sdc 8:32  1   undef undef  VMware, 
36000c29760b3f5110218e88d0fe6710c 33:0:2:0 sdd 8:48  1   undef undef  VMware, 
36000c29c671fc199d01bebc6e05e3270 33:0:3:0 sde 8:64  1   undef undef  VMware, 
36000c291ffdcc7e2ea852fe4a4e29fcc 33:0:4:0 sdf 8:80  1   undef undef  VMware, 
36000c29ddf7a88a288da95203aa0a929 33:0:5:0 sdg 8:96  1   undef undef  VMware, 
[root@jiekexu-r1 repodata]# 
[root@jiekexu-r1 repodata]# mpathconf
multipath is enabled
find_multipaths is enabled
user_friendly_names is enabled
dm_multipath module is loaded
multipathd is running


4.3 配置 UDEV
cd /dev/mapper


[root@jiekexu-r1 mapper]# ll
total 0
lrwxrwxrwx 1 root root       7 Aug 22 21:15 asm_arch01 -> ../dm-8
lrwxrwxrwx 1 root root       7 Aug 22 21:15 asm_data01 -> ../dm-6
lrwxrwxrwx 1 root root       7 Aug 22 21:15 asm_data02 -> ../dm-7
lrwxrwxrwx 1 root root       7 Aug 22 21:15 asm_ocr01 -> ../dm-3
lrwxrwxrwx 1 root root       7 Aug 22 21:15 asm_ocr02 -> ../dm-4
lrwxrwxrwx 1 root root       7 Aug 22 21:15 asm_ocr03 -> ../dm-5
crw------- 1 root root 10, 236 Aug 22 19:44 control
lrwxrwxrwx 1 root root       7 Aug 22 19:44 rhel_jiekexu--test-home -> ../dm-2
lrwxrwxrwx 1 root root       7 Aug 22 19:44 rhel_jiekexu--test-root -> ../dm-0
lrwxrwxrwx 1 root root       7 Aug 22 19:44 rhel_jiekexu--test-swap -> ../dm-1


for i in asm_*; do
  printf "%s %s\n" "$i" "$(udevadm info --query=all --name=/dev/mapper/"$i" | grep -i dm_uuid)" >>/dev/mapper/udev_info
done
while read -r line; do
  dm_uuid=$(echo "$line" | awk -F'=' '{print $2}')
  disk_name=$(echo "$line" | awk '{print $1}')
  echo "KERNEL==\"dm-*\",ENV{DM_UUID}==\"${dm_uuid}\",SYMLINK+=\"${disk_name}\",OWNER=\"grid\",GROUP=\"asmadmin\",MODE=\"0660\"" >>/etc/udev/rules.d/99-oracle-asmdevices.rules
done < /dev/mapper/udev_info
##重载udev
udevadm control --reload-rules
udevadm trigger --type=devices
ll /dev/asm*


lrwxrwxrwx 1 root root 4 Aug 22 21:26 /dev/asm_arch01 -> dm-8
lrwxrwxrwx 1 root root 4 Aug 22 21:26 /dev/asm_data01 -> dm-6
lrwxrwxrwx 1 root root 4 Aug 22 21:26 /dev/asm_data02 -> dm-7
lrwxrwxrwx 1 root root 4 Aug 22 21:26 /dev/asm_ocr01 -> dm-3
lrwxrwxrwx 1 root root 4 Aug 22 21:26 /dev/asm_ocr02 -> dm-4
lrwxrwxrwx 1 root root 4 Aug 22 21:26 /dev/asm_ocr03 -> dm-5


[root@jiekexu-r1 mapper]# more /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36000c29ddf7a88a288da95203aa0a929",SYMLINK+="asm_arch01",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36000c29c671fc199d01bebc6e05e3270",SYMLINK+="asm_data01",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36000c291ffdcc7e2ea852fe4a4e29fcc",SYMLINK+="asm_data02",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36000c29714156f014c53bf30fbcc4162",SYMLINK+="asm_ocr01",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36000c296835807593a81c0c4597f64d6",SYMLINK+="asm_ocr02",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36000c29760b3f5110218e88d0fe6710c",SYMLINK+="asm_ocr03",OWNER="grid",GROUP="asmadmin",MODE="0660"
[root@jiekexu-r1 mapper]# 
节点2


[root@jiekexu-r2 dev]# ll /dev/dm*
brw-rw----. 1 root disk     253, 0 Aug 22 21:32 /dev/dm-0
brw-rw----. 1 root disk     253, 1 Aug 22 21:32 /dev/dm-1
brw-rw----. 1 root disk     253, 2 Aug 22 21:32 /dev/dm-2
brw-rw----. 1 grid asmadmin 253, 3 Aug 22 21:32 /dev/dm-3
brw-rw----. 1 grid asmadmin 253, 4 Aug 22 21:32 /dev/dm-4
brw-rw----. 1 grid asmadmin 253, 5 Aug 22 21:32 /dev/dm-5
brw-rw----. 1 grid asmadmin 253, 6 Aug 22 21:32 /dev/dm-6
brw-rw----. 1 grid asmadmin 253, 7 Aug 22 21:32 /dev/dm-7
brw-rw----. 1 grid asmadmin 253, 8 Aug 22 21:32 /dev/dm-8


[root@jiekexu-r2 mapper]# ll
total 4
lrwxrwxrwx. 1 root root       7 Aug 22 21:32 asm_arch01 -> ../dm-8
lrwxrwxrwx. 1 root root       7 Aug 22 21:32 asm_data01 -> ../dm-6
lrwxrwxrwx. 1 root root       7 Aug 22 21:32 asm_data02 -> ../dm-7
lrwxrwxrwx. 1 root root       7 Aug 22 21:32 asm_ocr01 -> ../dm-3
lrwxrwxrwx. 1 root root       7 Aug 22 21:32 asm_ocr02 -> ../dm-4
lrwxrwxrwx. 1 root root       7 Aug 22 21:32 asm_ocr03 -> ../dm-5
crw-------. 1 root root 10, 236 Aug 22 21:32 control
lrwxrwxrwx. 1 root root       7 Aug 22 21:32 rhel_jiekexu--r2-home -> ../dm-2
lrwxrwxrwx. 1 root root       7 Aug 22 21:32 rhel_jiekexu--r2-root -> ../dm-0
lrwxrwxrwx. 1 root root       7 Aug 22 21:32 rhel_jiekexu--r2-swap -> ../dm-1
-rw-r--r--. 1 root root     369 Aug 22 21:28 udev_info

5、操作系统检查

操作系统检查,可参考之前的文章第四章 19cRAC安装准备工作

`[root@jiekexu-r1 ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.7 (Maipo)`


[root@jiekexu-r2 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.7 (Maipo)


##内存


[root@jiekexu-r2 ~]# grep MemTotal /proc/meminfo | awk '{print $2}'
8154996
[root@jiekexu-r2 ~]# 
[root@jiekexu-r2 ~]# dmidecode|grep -A5 "Memory Device"|grep Size|grep -v No |grep -v Range
        Size: 8192 MB


##swap


[root@jiekexu-r1 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        550M        6.6G         12M        519M        7.0G
Swap:          6.0G          0B        6.0G
[root@jiekexu-r1 ~]# grep SwapTotal /proc/meminfo | awk '{print $2}'
6291452


[root@jiekexu-r2 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.8G        627M        6.7G         12M        497M        6.9G
Swap:          7.9G          0B        7.9G
[root@jiekexu-r2 ~]# grep SwapTotal /proc/meminfo | awk '{print $2}'
8257532


##时区 主机名


[root@jiekexu-r2 ~]# timedatectl status 
      Local time: Tue 2021-08-24 09:42:32 CST
  Universal time: Tue 2021-08-24 01:42:32 UTC
        RTC time: Tue 2021-08-24 01:42:32
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
[root@jiekexu-r2 ~]# hostnamectl status
   Static hostname: jiekexu-r2
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 445856a0ecb7468cacc9e44b6c0b0130
           Boot ID: a6fb4d7304c34687bdb8ab1986fc992d
    Virtualization: vmware
  Operating System: Red Hat Enterprise Linux Server 7.7 (Maipo)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.7:GA:server
            Kernel: Linux 3.10.0-1062.el7.x86_64
      Architecture: x86-64
--安装所需的 rmp 包
yum install -y bc*  ntp* binutils*  compat-libcap1*  compat-libstdc++*  dtrace-modules*  dtrace-modules-headers*  dtrace-modules-provider-headers*  dtrace-utils*  elfutils-libelf*  elfutils-libelf-devel* fontconfig-devel*  glibc*  glibc-devel*  ksh*  libaio*  libaio-devel*  libdtrace-ctf-devel*  libXrender*  libXrender-devel*  libX11*  libXau*  libXi*  libXtst*  libgcc*  librdmacm-devel*  libstdc++*  libstdc++-devel*  libxcb*  make*  net-tools*  nfs-utils*  python*  python-configshell*  python-rtslib*  python-six*  targetcli*  smartmontools*  sysstat* gcc* nscd* unixODBC* unzip readline tigervnc*
---检查
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' \
bc \
binutils \
compat-libcap1 \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
fontconfig-devel \
glibc \
gcc \
gcc-c++  \
glibc \
glibc-devel \
ksh \
libstdc++ \
libstdc++-devel \
libaio \
libaio-devel \
libXrender \
libXrender-devel \
libxcb \
libX11 \
libXau \
libXi \
libXtst \
libgcc \
libstdc++-devel \
make \
sysstat \
unzip \
readline \
smartmontools | grep 'not installed' |column -t


--需单独安装此包
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

核心参数设置

/etc/sysctl.d/97-oracle-database-sysctl.conf

--在 Linux 7之前,内核参数文件是修改 /etc/sysctl.conf 文件,
--但在 Linux 7.x 之后发生了变化(/etc/sysctl.d/97-oracle-database-sysctl.conf):
--但仍然可以修改这个文件,没有什么不一样,官方文档中 19c 使用 97-oracle-database-sysctl.conf。
--生效方式:/sbin/sysctl --system


SHMMAX:单个共享内存段最大值(字节)
SHMMIN:单个共享内存段最小值(字节)
SHMMNI:系统共享内存段数量
SHMALL:可用共享内存的总数量(字节或者页面),以字节为单位,与 SHMMAX 一样,以页为单位,大小为 seil(SHMMAX/PAGE_SIZE)。一般 Linux 的 page 页为 4096.
SHMSEQ:每进程最大共享内存段数量


主要核心参数手工计算如下:


MEM=$(expr $(grep MemTotal /proc/meminfo|awk '{print $2}') \* 1024)
SHMALL=$(expr $MEM / $(getconf PAGE_SIZE))
SHMMAX=$(expr $MEM \* 3 / 5) # 这里配置为3/5 RAM大小
echo $MEM
echo $SHMALL
echo $SHMMAX


--min_free_kbytes=$(expr sqrt($MEM \* 16))


min_free_kbytes = sqrt(lowmem_kbytes * 16) = 4 * sqrt(lowmem_kbytes)(注:lowmem_kbytes即可认为是系统内存大小)


vm.nr_hugepages =(内存M/3+ASM内存大小4096M)/Hugepagesize M
#操作系统内存的1/3加上ASM实例内存4G。
#x86平台 Hugepagesize =2048即2M,linuxone平台Hugepagesize=1024 即1M
# 例x86平台64G内存 (64G*1024/3+4096M)/2M=12971
例x86平台32G内存 (32G*1024/3+4096M)/2M=7509
例x86平台16G内存 (16G*1024/3+4096M)/2M=4778
#linuxone平台 64G内存 (64G*1024/3+4096M)/1M=25942


memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
totalMemory=$((memTotal / 2048))
shmall=$((memTotal / 4))
if [ $shmall -lt 2097152 ]; then
shmall=2097152
fi
shmmax=$((memTotal * 1024 - 1))
if [ "$shmmax" -lt 4294967295 ]; then
shmmax=4294967295
fi
cat <<EOF>> /etc/sysctl.d/97-oracle-database-sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = $shmall
kernel.shmmax = $shmmax
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.wmem_default = 16777216
fs.aio-max-nr = 6194304
vm.min_free_kbytes=524288
vm.dirty_ratio=20
vm.dirty_background_ratio=3
vm.dirty_writeback_centisecs=100
vm.dirty_expire_centisecs=500
vm.swappiness=10
net.core.netdev_max_backlog = 30000
net.core.netdev_budget = 600
#vm.nr_hugepages =
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
net.ipv4.ipfrag_time = 60
net.ipv4.ipfrag_low_thresh=6291456
net.ipv4.ipfrag_high_thresh = 8388608
EOF




[root@jiekexu-r1 ~]# /sbin/sysctl --system
* Applying /usr/lib/sysctl.d/00-system.conf ...
* Applying /usr/lib/sysctl.d/10-default-yama-scope.conf ...
kernel.yama.ptrace_scope = 0
* Applying /usr/lib/sysctl.d/50-default.conf ...
kernel.sysrq = 16
kernel.core_uses_pid = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.promote_secondaries = 1
net.ipv4.conf.all.promote_secondaries = 1
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
* Applying /usr/lib/sysctl.d/60-libvirtd.conf ...
fs.aio-max-nr = 1048576
* Applying /etc/sysctl.d/97-oracle-database-sysctl.conf ...
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 8181903359
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.wmem_default = 16777216
fs.aio-max-nr = 6194304
vm.min_free_kbytes = 524288
vm.dirty_ratio = 20
vm.dirty_background_ratio = 3
vm.dirty_writeback_centisecs = 100
vm.dirty_expire_centisecs = 500
vm.swappiness = 10
net.core.netdev_max_backlog = 30000
net.core.netdev_budget = 600
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
net.ipv4.ipfrag_time = 60
net.ipv4.ipfrag_low_thresh = 6291456
net.ipv4.ipfrag_high_thresh = 8388608
* Applying /etc/sysctl.d/99-sysctl.conf ...
* Applying /etc/sysctl.conf ...

6、静默安装 GI

6.1 安装操作系统包 cvuqdisk

如果没有 cvuqdisk,群集验证实用程序(CVU)将无法找到共享磁盘,并且在运行群集验证实用程序时将收到 “Package cvuqdisk not installed” 错误。对于您的硬件(例如,x86_64或i386),请使用 cvuqdisk RPM。

[root@jiekexu-r1 ~]# cd /u01/app/19.0.0/grid/cv/rpm
[root@jiekexu-r1 rpm]# ll
total 12
-rw-r--r-- 1 grid oinstall 11412 Mar 13  2019 cvuqdisk-1.0.10-1.rpm
[root@jiekexu-r1 rpm]# export CVUQDISK_GRP=oinstall
[root@jiekexu-r1 rpm]# rpm -ivh cvuqdisk-1.0.10-1.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:cvuqdisk-1.0.10-1                ################################# [100%]
[root@jiekexu-r1 rpm]# scp /u01/app/19.0.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm jiekexu-r2:/home/soft/
The authenticity of host 'jiekexu-r2 (192.168.75.129)' can't be established.
ECDSA key fingerprint is SHA256:FQQR4hFlkEWUNpTyB7nYfdCMPGN2PulHJW/P/I4n4f0.
ECDSA key fingerprint is MD5:30:c3:28:3a:44:f2:5b:cf:cf:72:79:33:2e:cf:ee:81.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'jiekexu-r2,192.168.75.129' (ECDSA) to the list of known hosts.
root@jiekexu-r2's password: 
cvuqdisk-1.0.10-1.rpm                                                                                                                     100%   11KB   3.3MB/s   00:00    
[root@jiekexu-r1 rpm]# systemctl stop avahi-daemon.socket


[root@jiekexu-r2 rpm]# systemctl stop avahi-daemon.socket

6.2 互信

分别使用grid和oracle用户调用sshUserSetup.sh脚本配置SSH connectivity,根据提示输入密码 Oracle_19C。

$ cd $ORACLE_HOME/oui/prov/resources/scripts


<grid>$ ./sshUserSetup.sh -user grid -hosts "jiekexu-r1 jiekexu-r2" -advanced -confirm -noPromptPassphrase


cd /u01/app/19.0.0/grid/oui/prov/resources/scripts
<oracle>$ ./sshUserSetup.sh -user oracle -hosts "jiekexu-r1 jiekexu-r2" -advanced -confirm -noPromptPassphrase


分别使用grid和oracle用户验证SSH connectivity:
<grid>$ for h in jiekexu-r1 jiekexu-r1-priv jiekexu-r2 jiekexu-r2-priv;do
ssh -l grid -o StrictHostKeyChecking=no $h date;
done


<oracle>$ for h in jiekexu-r1 jiekexu-r1-priv jiekexu-r2 jiekexu-r2-priv;do
ssh -l oracle -o StrictHostKeyChecking=no $h date;
done

6.3 GI配置预检查

在配置GRID前,使用grid用户执行runcluvf.sh脚本检查环境,修复不满足安装需求的项。

su - grid
/u01/app/19.0.0/grid/runcluvfy.sh stage -pre crsinst -n jiekexu-r1,jiekexu-r2 -fixup -verbose


$/u01/app/19.0.0/grid/runcluvfy.sh stage -pre crsinst -n jiekexu-r1,jiekexu-r2 -method root
Enter "ROOT" password:


6.3.1 增加Swap分区

1.创建交换分区的文件:增加2G大小的交换分区,则命令写法如下,其中的 count 等于想要的块大小。

#dd if=/dev/zero of=/home/swapfile bs=1M count=2048

2.设置交换分区文件:

# mkswap /home/swapfile #建立swap的文件系统

3.立即启用交换分区文件:

# swapon /home/swapfile  #启用swap文件

4.使系统开机时自启用,在文件/etc/fstab中添加一行:

echo  '/home/swapfile swap swap defaults 0 0'  >> /etc/fstab

5.完成

[grid@jiekexu-r1:/u01/app/19.0.0/grid]$ /u01/app/19.0.0/grid/runcluvfy.sh stage -pre crsinst -n jiekexu-r1,jiekexu-r2 -fixup -verbose


Verifying Physical Memory ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    7.7772GB (8155004.0KB)    8GB (8388608.0KB)         passed    
  jiekexu-r1    7.62GB (7990132.0KB)      8GB (8388608.0KB)         passed    
Verifying Physical Memory ...PASSED
Verifying Available Physical Memory ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    6.953GB (7290788.0KB)     50MB (51200.0KB)          passed    
  jiekexu-r1    6.5808GB (6900520.0KB)    50MB (51200.0KB)          passed    
Verifying Available Physical Memory ...PASSED
Verifying Swap Size ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    7.875GB (8257532.0KB)     7.7772GB (8155004.0KB)    passed    
  jiekexu-r1    8GB (8388600.0KB)         7.62GB (7990132.0KB)      passed    
Verifying Swap Size ...PASSED
Verifying Free Space: jiekexu-r2:/usr,jiekexu-r2:/var,jiekexu-r2:/etc,jiekexu-r2:/sbin,jiekexu-r2:/tmp ...
  Path              Node Name     Mount point   Available     Required      Status      


----------------  ------------  ------------  ------------  ------------  ------------


  /usr              jiekexu-r2    /             47.5273GB     25MB          passed      
  /var              jiekexu-r2    /             47.5273GB     5MB           passed      
  /etc              jiekexu-r2    /             47.5273GB     25MB          passed      
  /sbin             jiekexu-r2    /             47.5273GB     10MB          passed      
  /tmp              jiekexu-r2    /             47.5273GB     1GB           passed      
Verifying Free Space: jiekexu-r2:/usr,jiekexu-r2:/var,jiekexu-r2:/etc,jiekexu-r2:/sbin,jiekexu-r2:/tmp ...PASSED
Verifying Free Space: jiekexu-r1:/usr,jiekexu-r1:/var,jiekexu-r1:/etc,jiekexu-r1:/sbin,jiekexu-r1:/tmp ...
  Path              Node Name     Mount point   Available     Required      Status      


----------------  ------------  ------------  ------------  ------------  ------------


  /usr              jiekexu-r1    /             8.8099GB      25MB          passed      
  /var              jiekexu-r1    /             8.8099GB      5MB           passed      
  /etc              jiekexu-r1    /             8.8099GB      25MB          passed      
  /sbin             jiekexu-r1    /             8.8099GB      10MB          passed      
  /tmp              jiekexu-r1    /             8.8099GB      1GB           passed      
Verifying Free Space: jiekexu-r1:/usr,jiekexu-r1:/var,jiekexu-r1:/etc,jiekexu-r1:/sbin,jiekexu-r1:/tmp ...PASSED
Verifying User Existence: grid ...
  Node Name     Status                    Comment                 


------------  ------------------------  ------------------------


  jiekexu-r2    passed                    exists(10001)           
  jiekexu-r1    passed                    exists(10001)           


  Verifying Users With Same UID: 10001 ...PASSED
Verifying User Existence: grid ...PASSED
Verifying Group Existence: asmadmin ...
  Node Name     Status                    Comment                 


------------  ------------------------  ------------------------


  jiekexu-r2    passed                    exists                  
  jiekexu-r1    passed                    exists                  
Verifying Group Existence: asmadmin ...PASSED
Verifying Group Existence: asmdba ...
  Node Name     Status                    Comment                 


------------  ------------------------  ------------------------


  jiekexu-r2    passed                    exists                  
  jiekexu-r1    passed                    exists                  
Verifying Group Existence: asmdba ...PASSED
Verifying Group Existence: oinstall ...
  Node Name     Status                    Comment                 


------------  ------------------------  ------------------------


  jiekexu-r2    passed                    exists                  
  jiekexu-r1    passed                    exists                  
Verifying Group Existence: oinstall ...PASSED
Verifying Group Membership: asmdba ...
  Node Name         User Exists   Group Exists  User in Group  Status          


----------------  ------------  ------------  ------------  ----------------


  jiekexu-r2        yes           yes           yes           passed          
  jiekexu-r1        yes           yes           yes           passed          
Verifying Group Membership: asmdba ...PASSED
Verifying Group Membership: asmadmin ...
  Node Name         User Exists   Group Exists  User in Group  Status          


----------------  ------------  ------------  ------------  ----------------


  jiekexu-r2        yes           yes           yes           passed          
  jiekexu-r1        yes           yes           yes           passed          
Verifying Group Membership: asmadmin ...PASSED
Verifying Group Membership: oinstall(Primary) ...
  Node Name         User Exists   Group Exists  User in Group  Primary       Status      


----------------  ------------  ------------  ------------  ------------  ------------


  jiekexu-r2        yes           yes           yes           yes           passed      
  jiekexu-r1        yes           yes           yes           yes           passed      
Verifying Group Membership: oinstall(Primary) ...PASSED
Verifying Run Level ...
  Node Name     run level                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    5                         3,5                       passed    
  jiekexu-r1    5                         3,5                       passed    
Verifying Run Level ...PASSED
Verifying Hard Limit: maximum open file descriptors ...
  Node Name         Type          Available     Required      Status          


----------------  ------------  ------------  ------------  ----------------


  jiekexu-r2        hard          65536         65536         passed          
  jiekexu-r1        hard          65536         65536         passed          
Verifying Hard Limit: maximum open file descriptors ...PASSED
Verifying Soft Limit: maximum open file descriptors ...
  Node Name         Type          Available     Required      Status          


----------------  ------------  ------------  ------------  ----------------


  jiekexu-r2        soft          1024          1024          passed          
  jiekexu-r1        soft          1024          1024          passed          
Verifying Soft Limit: maximum open file descriptors ...PASSED
Verifying Hard Limit: maximum user processes ...
  Node Name         Type          Available     Required      Status          


----------------  ------------  ------------  ------------  ----------------


  jiekexu-r2        hard          16384         16384         passed          
  jiekexu-r1        hard          16384         16384         passed          
Verifying Hard Limit: maximum user processes ...PASSED
Verifying Soft Limit: maximum user processes ...
  Node Name         Type          Available     Required      Status          


----------------  ------------  ------------  ------------  ----------------


  jiekexu-r2        soft          2047          2047          passed          
  jiekexu-r1        soft          2047          2047          passed          
Verifying Soft Limit: maximum user processes ...PASSED
Verifying Soft Limit: maximum stack size ...
  Node Name         Type          Available     Required      Status          


----------------  ------------  ------------  ------------  ----------------


  jiekexu-r2        soft          10240         10240         passed          
  jiekexu-r1        soft          10240         10240         passed          
Verifying Soft Limit: maximum stack size ...PASSED
Verifying Architecture ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    x86_64                    x86_64                    passed    
  jiekexu-r1    x86_64                    x86_64                    passed    
Verifying Architecture ...PASSED
Verifying OS Kernel Version ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    3.10.0-1062.el7.x86_64    3.10.0                    passed    
  jiekexu-r1    3.10.0-1062.el7.x86_64    3.10.0                    passed    
Verifying OS Kernel Version ...PASSED
Verifying OS Kernel Parameter: semmsl ...
  Node Name         Current       Configured    Required      Status        Comment     


----------------  ------------  ------------  ------------  ------------  ------------


  jiekexu-r1        250           250           250           passed          
  jiekexu-r2        250           250           250           passed          
Verifying OS Kernel Parameter: semmsl ...PASSED
Verifying OS Kernel Parameter: semmns ...
  Node Name         Current       Configured    Required      Status        Comment     


----------------  ------------  ------------  ------------  ------------  ------------


  jiekexu-r1        32000         32000         32000         passed          
  jiekexu-r2        32000         32000         32000         passed          
Verifying OS Kernel Parameter: semmns ...PASSED
Verifying OS Kernel Parameter: semopm ...
  Node Name         Current       Configured    Required      Status        Comment     


----------------  ------------  ------------  ------------  ------------  ------------


  jiekexu-r1        100           100           100           passed          
  jiekexu-r2        100           100           100           passed          
Verifying OS Kernel Parameter: semopm ...PASSED
Verifying OS Kernel Parameter: semmni ...
  Node Name         Current       Configured    Required      Status        Comment     


----------------  ------------  ------------  ------------  ------------  ------------


  jiekexu-r1        128           128           128           passed          
  jiekexu-r2        128           128           128           passed          
Verifying OS Kernel Parameter: semmni ...PASSED
Verifying OS Kernel Parameter: shmmax ...
  Node Name         Current       Configured    Required      Status        Comment     


----------------  ------------  ------------  ------------  ------------  ------------


  jiekexu-r1        8181903359    8181903359    4090947584    passed          
  jiekexu-r2        8350715903    8350715903    4175362048    passed          
Verifying OS Kernel Parameter: shmmax ...PASSED
Verifying OS Kernel Parameter: shmmni ...
  Node Name         Current       Configured    Required      Status        Comment     


----------------  ------------  ------------  ------------  ------------  ------------


  jiekexu-r1        4096          4096          4096          passed          
  jiekexu-r2        4096          4096          4096          passed          
Verifying OS Kernel Parameter: shmmni ...PASSED
Verifying OS Kernel Parameter: shmall ...
  Node Name         Current       Configured    Required      Status        Comment     


----------------  ------------  ------------  ------------  ------------  ------------


  jiekexu-r1        2097152       2097152       1997534       passed          
  jiekexu-r2        2097152       2097152       2038748       passed          
Verifying OS Kernel Parameter: shmall ...PASSED
Verifying OS Kernel Parameter: file-max ...
  Node Name         Current       Configured    Required      Status        Comment     


----------------  ------------  ------------  ------------  ------------  ------------


  jiekexu-r1        6815744       6815744       6815744       passed          
  jiekexu-r2        6815744       6815744       6815744       passed          
Verifying OS Kernel Parameter: file-max ...PASSED
Verifying OS Kernel Parameter: ip_local_port_range ...
  Node Name         Current       Configured    Required      Status        Comment     


----------------  ------------  ------------  ------------  ------------  ------------


  jiekexu-r1        between 9000 & 65500  between 9000 & 65500  between 9000 & 65535  passed          
  jiekexu-r2        between 9000 & 65500  between 9000 & 65500  between 9000 & 65535  passed          
Verifying OS Kernel Parameter: ip_local_port_range ...PASSED
Verifying OS Kernel Parameter: rmem_default ...
  Node Name         Current       Configured    Required      Status        Comment     


----------------  ------------  ------------  ------------  ------------  ------------


  jiekexu-r1        16777216      16777216      262144        passed          
  jiekexu-r2        16777216      16777216      262144        passed          
Verifying OS Kernel Parameter: rmem_default ...PASSED
Verifying OS Kernel Parameter: rmem_max ...
  Node Name         Current       Configured    Required      Status        Comment     


----------------  ------------  ------------  ------------  ------------  ------------


  jiekexu-r1        16777216      16777216      4194304       passed          
  jiekexu-r2        16777216      16777216      4194304       passed          
Verifying OS Kernel Parameter: rmem_max ...PASSED
Verifying OS Kernel Parameter: wmem_default ...
  Node Name         Current       Configured    Required      Status        Comment     


----------------  ------------  ------------  ------------  ------------  ------------


  jiekexu-r1        16777216      16777216      262144        passed          
  jiekexu-r2        16777216      16777216      262144        passed          
Verifying OS Kernel Parameter: wmem_default ...PASSED
Verifying OS Kernel Parameter: wmem_max ...
  Node Name         Current       Configured    Required      Status        Comment     


----------------  ------------  ------------  ------------  ------------  ------------


  jiekexu-r1        16777216      16777216      1048576       passed          
  jiekexu-r2        16777216      16777216      1048576       passed          
Verifying OS Kernel Parameter: wmem_max ...PASSED
Verifying OS Kernel Parameter: aio-max-nr ...
  Node Name         Current       Configured    Required      Status        Comment     


----------------  ------------  ------------  ------------  ------------  ------------


  jiekexu-r1        6194304       6194304       1048576       passed          
  jiekexu-r2        6194304       6194304       1048576       passed          
Verifying OS Kernel Parameter: aio-max-nr ...PASSED
Verifying Package: kmod-20-21 (x86_64) ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    kmod(x86_64)-20-25.el7    kmod(x86_64)-20-21        passed    
  jiekexu-r1    kmod(x86_64)-20-25.el7    kmod(x86_64)-20-21        passed    
Verifying Package: kmod-20-21 (x86_64) ...PASSED
Verifying Package: kmod-libs-20-21 (x86_64) ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    kmod-libs(x86_64)-20-25.el7  kmod-libs(x86_64)-20-21   passed    
  jiekexu-r1    kmod-libs(x86_64)-20-25.el7  kmod-libs(x86_64)-20-21   passed    
Verifying Package: kmod-libs-20-21 (x86_64) ...PASSED
Verifying Package: binutils-2.23.52.0.1 ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    binutils-2.27-41.base.el7  binutils-2.23.52.0.1      passed    
  jiekexu-r1    binutils-2.27-41.base.el7  binutils-2.23.52.0.1      passed    
Verifying Package: binutils-2.23.52.0.1 ...PASSED
Verifying Package: compat-libcap1-1.10 ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    compat-libcap1-1.10-7.el7  compat-libcap1-1.10       passed    
  jiekexu-r1    compat-libcap1-1.10-7.el7  compat-libcap1-1.10       passed    
Verifying Package: compat-libcap1-1.10 ...PASSED
Verifying Package: libgcc-4.8.2 (x86_64) ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    libgcc(x86_64)-4.8.5-39.el7  libgcc(x86_64)-4.8.2      passed    
  jiekexu-r1    libgcc(x86_64)-4.8.5-39.el7  libgcc(x86_64)-4.8.2      passed    
Verifying Package: libgcc-4.8.2 (x86_64) ...PASSED
Verifying Package: libstdc++-4.8.2 (x86_64) ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    libstdc++(x86_64)-4.8.5-39.el7  libstdc++(x86_64)-4.8.2   passed    
  jiekexu-r1    libstdc++(x86_64)-4.8.5-39.el7  libstdc++(x86_64)-4.8.2   passed    
Verifying Package: libstdc++-4.8.2 (x86_64) ...PASSED
Verifying Package: libstdc++-devel-4.8.2 (x86_64) ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    libstdc++-devel(x86_64)-4.8.5-39.el7  libstdc++-devel(x86_64)-4.8.2  passed    
  jiekexu-r1    libstdc++-devel(x86_64)-4.8.5-39.el7  libstdc++-devel(x86_64)-4.8.2  passed    
Verifying Package: libstdc++-devel-4.8.2 (x86_64) ...PASSED
Verifying Package: sysstat-10.1.5 ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    sysstat-10.1.5-18.el7     sysstat-10.1.5            passed    
  jiekexu-r1    sysstat-10.1.5-18.el7     sysstat-10.1.5            passed    
Verifying Package: sysstat-10.1.5 ...PASSED
Verifying Package: gcc-c++-4.8.2 ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    gcc-c++-4.8.5-39.el7      gcc-c++-4.8.2             passed    
  jiekexu-r1    gcc-c++-4.8.5-39.el7      gcc-c++-4.8.2             passed    
Verifying Package: gcc-c++-4.8.2 ...PASSED
Verifying Package: ksh ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    ksh                       ksh                       passed    
  jiekexu-r1    ksh                       ksh                       passed    
Verifying Package: ksh ...PASSED
Verifying Package: make-3.82 ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    make-3.82-24.el7          make-3.82                 passed    
  jiekexu-r1    make-3.82-24.el7          make-3.82                 passed    
Verifying Package: make-3.82 ...PASSED
Verifying Package: glibc-2.17 (x86_64) ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    glibc(x86_64)-2.17-292.el7  glibc(x86_64)-2.17        passed    
  jiekexu-r1    glibc(x86_64)-2.17-292.el7  glibc(x86_64)-2.17        passed    
Verifying Package: glibc-2.17 (x86_64) ...PASSED
Verifying Package: glibc-devel-2.17 (x86_64) ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    glibc-devel(x86_64)-2.17-292.el7  glibc-devel(x86_64)-2.17  passed    
  jiekexu-r1    glibc-devel(x86_64)-2.17-292.el7  glibc-devel(x86_64)-2.17  passed    
Verifying Package: glibc-devel-2.17 (x86_64) ...PASSED
Verifying Package: libaio-0.3.109 (x86_64) ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    libaio(x86_64)-0.3.109-13.el7  libaio(x86_64)-0.3.109    passed    
  jiekexu-r1    libaio(x86_64)-0.3.109-13.el7  libaio(x86_64)-0.3.109    passed    
Verifying Package: libaio-0.3.109 (x86_64) ...PASSED
Verifying Package: libaio-devel-0.3.109 (x86_64) ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    libaio-devel(x86_64)-0.3.109-13.el7  libaio-devel(x86_64)-0.3.109  passed    
  jiekexu-r1    libaio-devel(x86_64)-0.3.109-13.el7  libaio-devel(x86_64)-0.3.109  passed    
Verifying Package: libaio-devel-0.3.109 (x86_64) ...PASSED
Verifying Package: nfs-utils-1.2.3-15 ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    nfs-utils-1.3.0-0.65.el7  nfs-utils-1.2.3-15        passed    
  jiekexu-r1    nfs-utils-1.3.0-0.65.el7  nfs-utils-1.2.3-15        passed    
Verifying Package: nfs-utils-1.2.3-15 ...PASSED
Verifying Package: smartmontools-6.2-4 ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    smartmontools-7.0-1.el7   smartmontools-6.2-4       passed    
  jiekexu-r1    smartmontools-7.0-1.el7   smartmontools-6.2-4       passed    
Verifying Package: smartmontools-6.2-4 ...PASSED
Verifying Package: net-tools-2.0-0.17 ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    net-tools-2.0-0.25.20131004git.el7  net-tools-2.0-0.17        passed    
  jiekexu-r1    net-tools-2.0-0.25.20131004git.el7  net-tools-2.0-0.17        passed    
Verifying Package: net-tools-2.0-0.17 ...PASSED
Verifying Package: compat-libstdc++-33-3.2.3 (x86_64) ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    compat-libstdc++-33(x86_64)-3.2.3-72.el7  compat-libstdc++-33(x86_64)-3.2.3  passed    
  jiekexu-r1    compat-libstdc++-33(x86_64)-3.2.3-72.el7  compat-libstdc++-33(x86_64)-3.2.3  passed    
Verifying Package: compat-libstdc++-33-3.2.3 (x86_64) ...PASSED
Verifying Package: libxcb-1.11 (x86_64) ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    libxcb(x86_64)-1.13-1.el7  libxcb(x86_64)-1.11       passed    
  jiekexu-r1    libxcb(x86_64)-1.13-1.el7  libxcb(x86_64)-1.11       passed    
Verifying Package: libxcb-1.11 (x86_64) ...PASSED
Verifying Package: libX11-1.6.3 (x86_64) ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    libX11(x86_64)-1.6.7-2.el7  libX11(x86_64)-1.6.3      passed    
  jiekexu-r1    libX11(x86_64)-1.6.7-2.el7  libX11(x86_64)-1.6.3      passed    
Verifying Package: libX11-1.6.3 (x86_64) ...PASSED
Verifying Package: libXau-1.0.8 (x86_64) ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    libXau(x86_64)-1.0.8-2.1.el7  libXau(x86_64)-1.0.8      passed    
  jiekexu-r1    libXau(x86_64)-1.0.8-2.1.el7  libXau(x86_64)-1.0.8      passed    
Verifying Package: libXau-1.0.8 (x86_64) ...PASSED
Verifying Package: libXi-1.7.4 (x86_64) ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    libXi(x86_64)-1.7.9-1.el7  libXi(x86_64)-1.7.4       passed    
  jiekexu-r1    libXi(x86_64)-1.7.9-1.el7  libXi(x86_64)-1.7.4       passed    
Verifying Package: libXi-1.7.4 (x86_64) ...PASSED
Verifying Package: libXtst-1.2.2 (x86_64) ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    libXtst(x86_64)-1.2.3-1.el7  libXtst(x86_64)-1.2.2     passed    
  jiekexu-r1    libXtst(x86_64)-1.2.3-1.el7  libXtst(x86_64)-1.2.2     passed    
Verifying Package: libXtst-1.2.2 (x86_64) ...PASSED
Verifying Port Availability for component "Oracle Notification Service (ONS)" ...
  Node Name         Port Number   Protocol      Available     Status          


----------------  ------------  ------------  ------------  ----------------


  jiekexu-r2        6200          TCP           yes           successful      
  jiekexu-r1        6200          TCP           yes           successful      
  jiekexu-r2        6100          TCP           yes           successful      
  jiekexu-r1        6100          TCP           yes           successful      
Verifying Port Availability for component "Oracle Notification Service (ONS)" ...PASSED
Verifying Port Availability for component "Oracle Cluster Synchronization Services (CSSD)" ...
  Node Name         Port Number   Protocol      Available     Status          


----------------  ------------  ------------  ------------  ----------------


  jiekexu-r2        42424         TCP           yes           successful      
  jiekexu-r1        42424         TCP           yes           successful      
Verifying Port Availability for component "Oracle Cluster Synchronization Services (CSSD)" ...PASSED
Verifying Users With Same UID: 0 ...PASSED
Verifying Current Group ID ...PASSED
Verifying Root user consistency ...
  Node Name                             Status                  


------------------------------------  ------------------------


  jiekexu-r2                            passed                  
  jiekexu-r1                            passed                  
Verifying Root user consistency ...PASSED
Verifying Package: cvuqdisk-1.0.10-1 ...
  Node Name     Available                 Required                  Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    cvuqdisk-1.0.10-1         cvuqdisk-1.0.10-1         passed    
  jiekexu-r1    cvuqdisk-1.0.10-1         cvuqdisk-1.0.10-1         passed    
Verifying Package: cvuqdisk-1.0.10-1 ...PASSED
Verifying Host name ...PASSED
Verifying Node Connectivity ...
  Verifying Hosts File ...
  Node Name                             Status                  


------------------------------------  ------------------------


  jiekexu-r1                            passed                  
  jiekexu-r2                            passed                  
  Verifying Hosts File ...PASSED


Interface information for node "jiekexu-r2"


 Name   IP Address      Subnet          Gateway         Def. Gateway    HW Address        MTU   


------ --------------- --------------- --------------- --------------- ----------------- ------


 ens32  192.168.75.30   192.168.75.0    0.0.0.0         10.10.10.1      00:0C:29:E4:CE:69 1500  
 ens32  192.168.75.129  192.168.75.0    0.0.0.0         10.10.10.1      00:0C:29:E4:CE:69 1500  
 ens33  10.10.10.129    10.0.0.0        0.0.0.0         10.10.10.1      00:0C:29:E4:CE:73 1500  


Interface information for node "jiekexu-r1"


 Name   IP Address      Subnet          Gateway         Def. Gateway    HW Address        MTU   


------ --------------- --------------- --------------- --------------- ----------------- ------


 ens32  192.168.75.28   192.168.75.0    0.0.0.0         10.10.10.1      00:0C:29:2C:79:CE 1500  
 ens32  192.168.75.128  192.168.75.0    0.0.0.0         10.10.10.1      00:0C:29:2C:79:CE 1500  
 ens33  10.10.10.128    10.0.0.0        0.0.0.0         10.10.10.1      00:0C:29:2C:79:D8 1500  


Check: MTU consistency of the subnet "192.168.75.0".


  Node              Name          IP Address    Subnet        MTU             


----------------  ------------  ------------  ------------  ----------------


  jiekexu-r2        ens32         192.168.75.30  192.168.75.0  1500            
  jiekexu-r2        ens32         192.168.75.129  192.168.75.0  1500            
  jiekexu-r1        ens32         192.168.75.28  192.168.75.0  1500            
  jiekexu-r1        ens32         192.168.75.128  192.168.75.0  1500            


Check: MTU consistency of the subnet "10.0.0.0".


  Node              Name          IP Address    Subnet        MTU             


----------------  ------------  ------------  ------------  ----------------


  jiekexu-r2        ens33         10.10.10.129  10.0.0.0      1500            
  jiekexu-r1        ens33         10.10.10.128  10.0.0.0      1500            
  Verifying Check that maximum (MTU) size packet goes through subnet ...PASSED


  Source                          Destination                     Connected?      


------------------------------  ------------------------------  ----------------


  jiekexu-r1[ens32:192.168.75.28]  jiekexu-r2[ens32:192.168.75.129]  yes             
  jiekexu-r1[ens32:192.168.75.28]  jiekexu-r2[ens32:192.168.75.30]  yes             
  jiekexu-r1[ens32:192.168.75.28]  jiekexu-r1[ens32:192.168.75.128]  yes             
  jiekexu-r2[ens32:192.168.75.129]  jiekexu-r2[ens32:192.168.75.30]  yes             
  jiekexu-r2[ens32:192.168.75.129]  jiekexu-r1[ens32:192.168.75.128]  yes             
  jiekexu-r2[ens32:192.168.75.30]  jiekexu-r1[ens32:192.168.75.128]  yes             


  Source                          Destination                     Connected?      


------------------------------  ------------------------------  ----------------


  jiekexu-r1[ens33:10.10.10.128]  jiekexu-r2[ens33:10.10.10.129]  yes             
  Verifying subnet mask consistency for subnet "192.168.75.0" ...PASSED
  Verifying subnet mask consistency for subnet "10.0.0.0" ...PASSED
Verifying Node Connectivity ...PASSED
Verifying Multicast or broadcast check ...
Checking subnet "192.168.75.0" for multicast communication with multicast group "224.0.0.251"
Verifying Multicast or broadcast check ...PASSED
Verifying Network Time Protocol (NTP) ...PASSED
Verifying Same core file name pattern ...PASSED
Verifying User Mask ...
  Node Name     Available                 Required                  Comment   


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    0022                      0022                      passed    
  jiekexu-r1    0022                      0022                      passed    
Verifying User Mask ...PASSED
Verifying User Not In Group "root": grid ...
  Node Name     Status                    Comment                 


------------  ------------------------  ------------------------


  jiekexu-r2    passed                    does not exist          
  jiekexu-r1    passed                    does not exist          
Verifying User Not In Group "root": grid ...PASSED
Verifying Time zone consistency ...PASSED
Verifying Time offset between nodes ...PASSED
Verifying resolv.conf Integrity ...
  Node Name                             Status                  


------------------------------------  ------------------------


  jiekexu-r1                            failed                  
  jiekexu-r2                            failed                  


checking response for name "jiekexu-r2" from each of the name servers specified
in "/etc/resolv.conf"


  Node Name     Source                    Comment                   Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r2    192.168.75.2              IPv4                      failed    


checking response for name "jiekexu-r1" from each of the name servers specified
in "/etc/resolv.conf"


  Node Name     Source                    Comment                   Status    


------------  ------------------------  ------------------------  ----------


  jiekexu-r1    192.168.75.2              IPv4                      failed    
Verifying resolv.conf Integrity ...FAILED (PRVF-5636, PRVG-10048)
Verifying DNS/NIS name service ...PASSED
Verifying Domain Sockets ...PASSED
Verifying /boot mount ...PASSED
Verifying Daemon "avahi-daemon" not configured and running ...
  Node Name     Configured                Status                  


------------  ------------------------  ------------------------


  jiekexu-r2    no                        passed                  
  jiekexu-r1    no                        passed                  


  Node Name     Running?                  Status                  


------------  ------------------------  ------------------------


  jiekexu-r2    no                        passed                  
  jiekexu-r1    no                        passed                  
Verifying Daemon "avahi-daemon" not configured and running ...PASSED
Verifying Daemon "proxyt" not configured and running ...
  Node Name     Configured                Status                  


------------  ------------------------  ------------------------


  jiekexu-r2    no                        passed                  
  jiekexu-r1    no                        passed                  


  Node Name     Running?                  Status                  


------------  ------------------------  ------------------------


  jiekexu-r2    no                        passed                  
  jiekexu-r1    no                        passed                  
Verifying Daemon "proxyt" not configured and running ...PASSED
Verifying User Equivalence ...PASSED
Verifying RPM Package Manager database ...INFORMATION (PRVG-11250)
Verifying /dev/shm mounted as temporary file system ...PASSED
Verifying File system mount options for path /var ...PASSED
Verifying DefaultTasksMax parameter ...PASSED
Verifying zeroconf check ...PASSED
Verifying ASM Filter Driver configuration ...PASSED


Pre-check for cluster services setup was unsuccessful on all the nodes. 




Failures were encountered during execution of CVU verification request "stage -pre crsinst".


Verifying resolv.conf Integrity ...FAILED
jiekexu-r2: PRVF-5636 : The DNS response time for an unreachable node exceeded
            "15000" ms on following nodes: jiekexu-r1,jiekexu-r2
jiekexu-r2: PRVG-10048 : Name "jiekexu-r2" was not resolved to an address of
            the specified type by name servers "192.168.75.2".


jiekexu-r1: PRVF-5636 : The DNS response time for an unreachable node exceeded
            "15000" ms on following nodes: jiekexu-r1,jiekexu-r2
jiekexu-r1: PRVG-10048 : Name "jiekexu-r1" was not resolved to an address of
            the specified type by name servers "192.168.75.2".


Verifying RPM Package Manager database ...INFORMATION
PRVG-11250 : The check "RPM Package Manager database" was not performed because
it needs 'root' user privileges.


CVU operation performed:      stage -pre crsinst
Date:                         Aug 25, 2021 8:41:59 PM
CVU home:                     /u01/app/19.0.0/grid/
User:                         grid






[grid@jiekexu-r1:/home/grid]$ /u01/app/19.0.0/grid/runcluvfy.sh stage -pre crsinst -n jiekexu-r1,jiekexu-r2 -method root
Enter "ROOT" password:


Verifying Physical Memory ...PASSED
Verifying Available Physical Memory ...PASSED
Verifying Swap Size ...PASSED
Verifying Free Space: jiekexu-r2:/usr,jiekexu-r2:/var,jiekexu-r2:/etc,jiekexu-r2:/sbin,jiekexu-r2:/tmp ...PASSED
Verifying Free Space: jiekexu-r1:/usr,jiekexu-r1:/var,jiekexu-r1:/etc,jiekexu-r1:/sbin,jiekexu-r1:/tmp ...PASSED
Verifying User Existence: grid ...
  Verifying Users With Same UID: 10001 ...PASSED
Verifying User Existence: grid ...PASSED
Verifying Group Existence: asmadmin ...PASSED
Verifying Group Existence: asmdba ...PASSED
Verifying Group Existence: oinstall ...PASSED
Verifying Group Membership: asmdba ...PASSED
Verifying Group Membership: asmadmin ...PASSED
Verifying Group Membership: oinstall(Primary) ...PASSED
Verifying Run Level ...PASSED
Verifying Hard Limit: maximum open file descriptors ...PASSED
Verifying Soft Limit: maximum open file descriptors ...PASSED
Verifying Hard Limit: maximum user processes ...PASSED
Verifying Soft Limit: maximum user processes ...PASSED
Verifying Soft Limit: maximum stack size ...PASSED
Verifying Architecture ...PASSED
Verifying OS Kernel Version ...PASSED
Verifying OS Kernel Parameter: semmsl ...PASSED
Verifying OS Kernel Parameter: semmns ...PASSED
Verifying OS Kernel Parameter: semopm ...PASSED
Verifying OS Kernel Parameter: semmni ...PASSED
Verifying OS Kernel Parameter: shmmax ...PASSED
Verifying OS Kernel Parameter: shmmni ...PASSED
Verifying OS Kernel Parameter: shmall ...PASSED
Verifying OS Kernel Parameter: file-max ...PASSED
Verifying OS Kernel Parameter: ip_local_port_range ...PASSED
Verifying OS Kernel Parameter: rmem_default ...PASSED
Verifying OS Kernel Parameter: rmem_max ...PASSED
Verifying OS Kernel Parameter: wmem_default ...PASSED
Verifying OS Kernel Parameter: wmem_max ...PASSED
Verifying OS Kernel Parameter: aio-max-nr ...PASSED
Verifying Package: kmod-20-21 (x86_64) ...PASSED
Verifying Package: kmod-libs-20-21 (x86_64) ...PASSED
Verifying Package: binutils-2.23.52.0.1 ...PASSED
Verifying Package: compat-libcap1-1.10 ...PASSED
Verifying Package: libgcc-4.8.2 (x86_64) ...PASSED
Verifying Package: libstdc++-4.8.2 (x86_64) ...PASSED
Verifying Package: libstdc++-devel-4.8.2 (x86_64) ...PASSED
Verifying Package: sysstat-10.1.5 ...PASSED
Verifying Package: gcc-c++-4.8.2 ...PASSED
Verifying Package: ksh ...PASSED
Verifying Package: make-3.82 ...PASSED
Verifying Package: glibc-2.17 (x86_64) ...PASSED
Verifying Package: glibc-devel-2.17 (x86_64) ...PASSED
Verifying Package: libaio-0.3.109 (x86_64) ...PASSED
Verifying Package: libaio-devel-0.3.109 (x86_64) ...PASSED
Verifying Package: nfs-utils-1.2.3-15 ...PASSED
Verifying Package: smartmontools-6.2-4 ...PASSED
Verifying Package: net-tools-2.0-0.17 ...PASSED
Verifying Package: compat-libstdc++-33-3.2.3 (x86_64) ...PASSED
Verifying Package: libxcb-1.11 (x86_64) ...PASSED
Verifying Package: libX11-1.6.3 (x86_64) ...PASSED
Verifying Package: libXau-1.0.8 (x86_64) ...PASSED
Verifying Package: libXi-1.7.4 (x86_64) ...PASSED
Verifying Package: libXtst-1.2.2 (x86_64) ...PASSED
Verifying Port Availability for component "Oracle Notification Service (ONS)" ...PASSED
Verifying Port Availability for component "Oracle Cluster Synchronization Services (CSSD)" ...PASSED
Verifying Users With Same UID: 0 ...PASSED
Verifying Current Group ID ...PASSED
Verifying Root user consistency ...PASSED
Verifying Package: cvuqdisk-1.0.10-1 ...PASSED
Verifying Host name ...PASSED
Verifying Node Connectivity ...
  Verifying Hosts File ...PASSED
  Verifying Check that maximum (MTU) size packet goes through subnet ...PASSED
  Verifying subnet mask consistency for subnet "192.168.75.0" ...PASSED
  Verifying subnet mask consistency for subnet "10.0.0.0" ...PASSED
Verifying Node Connectivity ...PASSED
Verifying Multicast or broadcast check ...PASSED
Verifying Network Time Protocol (NTP) ...PASSED
Verifying Same core file name pattern ...PASSED
Verifying User Mask ...PASSED
Verifying User Not In Group "root": grid ...PASSED
Verifying Time zone consistency ...PASSED
Verifying Time offset between nodes ...PASSED
Verifying resolv.conf Integrity ...FAILED (PRVG-13159)
Verifying DNS/NIS name service ...PASSED
Verifying Domain Sockets ...PASSED
Verifying /boot mount ...PASSED
Verifying Daemon "avahi-daemon" not configured and running ...PASSED
Verifying Daemon "proxyt" not configured and running ...PASSED
Verifying User Equivalence ...PASSED
Verifying RPM Package Manager database ...PASSED
Verifying /dev/shm mounted as temporary file system ...PASSED
Verifying File system mount options for path /var ...PASSED
Verifying DefaultTasksMax parameter ...PASSED
Verifying zeroconf check ...PASSED
Verifying ASM Filter Driver configuration ...PASSED


Pre-check for cluster services setup was unsuccessful on all the nodes. 




Failures were encountered during execution of CVU verification request "stage -pre crsinst".


Verifying resolv.conf Integrity ...FAILED
jiekexu-r2: PRVG-13159 : On node "jiekexu-r2" the file "/etc/resolv.conf" could
            not be parsed because the file is empty.


jiekexu-r1: PRVG-13159 : On node "jiekexu-r1" the file "/etc/resolv.conf" could
            not be parsed because the file is empty.


CVU operation performed:      stage -pre crsinst
Date:                         Aug 30, 2021 7:49:20 PM
CVU home:                     /u01/app/19.0.0/grid/
User:                         grid

6.4 查看静默安装文件

[root@jiekexu-r2 soft]# lvmdiskscan 
  /dev/sda1       [       1.00 GiB] 
  /dev/sda2       [     <99.00 GiB] LVM physical volume
  /dev/asm_data01 [      10.00 GiB] 
  /dev/asm_ocr02  [       3.00 GiB] 
  /dev/asm_ocr01  [       3.00 GiB] 
  /dev/asm_data02 [      10.00 GiB] 
  /dev/asm_arch01 [      10.00 GiB] 
  /dev/asm_ocr03  [       3.00 GiB] 
  0 disks
  7 partitions
  0 LVM physical volume whole disks
  1 LVM physical volume

响应文件位置

/u01/app/19.0.0/grid/install/response

${ORACLE_HOME}/install/response/gridsetup.rsp

参数说明:

oracle.install.crs.config.clusterNodes=网卡名:公网IP地址段:1,私网网卡名:私网IP地址段:5

这里的 1 代表 PUBLIC,5 代表 ASM & PRIVATE

#############################################################################
oracle.install.crs.config.clusterNodes=
#############################################################################
The value should be a comma separated strings where each string is as shown below
InterfaceName:SubnetAddress:InterfaceType
where InterfaceType can be either "1", "2", "3", "4", or "5"
InterfaceType stand for the following values
1 : PUBLIC
2 : PRIVATE
3 : DO NOT USE
4 : ASM
5 : ASM & PRIVATE
#
For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3
#############################################################################
12.2:Post upgrade steps for Grid infrastructure reports INS-32601 error (Doc ID 2380863.1)

6.5 执行补丁和 GI 安装

jiekexu-r1:/home/grid(+ASM1)$ $ORACLE_HOME/gridSetup.sh --helpUsage: gridSetup.sh [<flag>] [<option>]Following are the possible flags: -help - 显示帮助。 -silent - 在无提示模式下运行。输入内容可以是一个响应文件, 也可以是命令行变量值对的列表。 [-ignorePrereqFailure - 忽略所有先决条件检查失败。] [-lenientInstallMode - 通过自动忽略输入参数中的无效数据, 执行“最佳效果”安装。] -responseFile - 指定要使用的响应文件的完整路径。 -logLevel - 根据此参数所提供的优先级启用消息日志。有效选项包括: 严重, 警告, 信息, 配置, 详细, 较为详细, 非常详细。 -executePrereqs | -executeConfigTools | -createGoldImage | -switchGridHome | -downgrade | -dryRunForUpgrade -executePrereqs - 仅执行先决条件检查。 -executeConfigTools - 对安装的主目录执行配置工具。 [-skipStackCheck - 跳过堆栈状态检查。] -createGoldImage - 从当前 Oracle 主目录创建 Gold Image。 -destinationLocation - 指定将存放所创建 Gold Image 的位置的完整路径。 [-exclFiles - 指定要从新 Gold Image 中排除的文件的完整路径。] -switchGridHome - 更改 Oracle Grid Infrastructure 主目录路径。 -downgrade - 将网格基础结构降级回旧主目录 (仅在升级不完整的情况下使用)。 -silent - 在无提示模式下运行。输入内容可以是一个响应文件, 也可以是命令行变量值对的列表。 [-ignorePrereqFailure - 忽略所有先决条件检查失败。] [-lenientInstallMode - 通过自动忽略输入参数中的无效数据, 执行“最佳效果”安装。] [-configmethod - 指定以授权用户身份执行脚本的方法。如果未指定, 则系统将指示用户以授权用户身份登录来运行脚本。有效选项为: root,sudo。] [-sudopath - 指定 sudo 程序的完整路径。这是可选参数。在为 configmethod 指定了 'sudo' 并且默认路径中没有 'sudo' 程序时, 需要此项。] [-sudousername - 指定 sudoer 的名称。] -dryRunForUpgrade - 执行网格基础结构升级过程的预演。 -debug - 在调试模式下运行。 -printdiskusage - 记录有关磁盘使用情况的调试信息。 -printmemory - 记录有关内存使用情况的调试信息。 -printtime - 记录有关时间使用情况的调试信息。 -waitForCompletion - 等待安装完成, 而不是衍生安装程序并返回控制台提示符。 -noconfig - 不执行配置工具。 -noconsole - 禁止在控制台中显示消息。不分配控制台。 -ignoreInternalDriverError - 忽略任何内部驱动程序错误。 -noCopy - 执行配置, 但不将软件复制到远程节点。 -applyRU - 将发行版更新应用于 Oracle 主目录。        -applyOneOffs - 将一次性补丁程序应用于 Oracle 主目录。多个一次性补丁程序可以采用逗号分隔的位置列表格式传递。

$ORACLE_HOME/gridSetup.sh -silent -applyRU /home/soft/32900083/32895426  -force -noconfig  -ignorePrereq  -waitforcompletion \
-responseFile ${ORACLE_HOME}/install/response/gridsetup.rsp \
INVENTORY_LOCATION=/u01/app/oraInventory \
ORACLE_BASE=/u01/app/grid \
ORACLE_HOME=/u01/app/19.0.0/grid \
oracle.install.asm.OSDBA=asmdba \
oracle.install.asm.OSOPER=asmoper \
oracle.install.asm.OSASM=asmadmin \
oracle.install.crs.config.storageOption=ASM \
oracle.install.crs.config.useIPMI=false \
oracle.install.asm.diskGroup.name=OCR \
oracle.install.asm.diskGroup.AUSize=4 \
oracle.install.asm.diskGroup.redundancy=NORMAL \
oracle.install.crs.config.ClusterConfiguration=STANDALONE \
oracle.install.crs.config.configureAsExtendedCluster=false \
oracle.install.crs.config.gpnp.scanPort=1521 \
oracle.install.crs.config.gpnp.configureGNS=false \
oracle.install.option=CRS_CONFIG \
oracle.install.asm.SYSASMPassword=Oracle19C \
oracle.install.asm.monitorPassword=Oracle19C \
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm_* \
oracle.install.asm.diskGroup.disks=/dev/asm_ocr01,/dev/asm_ocr02,/dev/asm_ocr03 \
oracle.install.crs.config.gpnp.scanName=jiekexu-racscan \
oracle.install.crs.config.clusterName=jiekexu-racscan \
oracle.install.crs.config.autoConfigureClusterNodeVIP=false \
oracle.install.crs.config.clusterNodes=jiekexu-r1:jiekexu-r1-vip,jiekexu-r2:jiekexu-r2-vip \
oracle.install.crs.config.networkInterfaceList=ens32:192.168.75.0:1,ens33:10.10.10.0:5 \
oracle.install.asm.configureGIMRDataDG=false \
oracle.install.crs.configureRHPS=false \
oracle.install.crs.config.ignoreDownNodes=false \
oracle.install.config.managementOption=NONE \
oracle.install.config.omsPort=0 \
oracle.install.crs.rootconfig.executeRootScript=false 

--注:这里尝试配置 root 自动执行 root.sh 脚本时,需要输入密码,但很快就过去了,根本来不及输入密码。无奈则取消掉 oracle.install.crs.rootconfig.configMethod=ROOT 这行,将 oracle.install.crs.rootconfig.executeRootScript=true  改为 oracle.install.crs.rootconfig.executeRootScript=false

[grid@jiekexu-r2:/home/grid]$ cd /u01/app/19.0.0/grid
[grid@jiekexu-r2:/u01/app/19.0.0/grid]$ ls 
addnode      clone   dbs          gpnp           inventory  lib      opatchautocfg   ord   plsql    rdbms          root.sh.old.2   sqlpatch  usm           xdk
assistants   crs     deinstall    gridSetup.sh   javavm     md       OPatch.bak0826  ords  precomp  relnotes       root.sh.old.3   sqlplus   utl
bin          css     demo         has            jdbc       network  opmn            oss   pylib    rhp            rootupgrade.sh  srvm      welcome.html
cfgtoollogs  ctx     diagnostics  hs             jdk        nls      oracore         oui   QOpatch  root.sh        runcluvfy.sh    suptools  wlm
cha          cv      env.ora      install        jlib       olap     oradiag_grid    owm   qos      root.sh.old    sdk             tomcat    wwg
client       dbjava  evm          instantclient  ldap       OPatch   oraInst.loc     perl  racg     root.sh.old.1  slax            ucp       xag
[grid@jiekexu-r2:/u01/app/19.0.0/grid]$ opatch version 
OPatch Version: 12.2.0.1.25


OPatch succeeded.
[grid@jiekexu-r2:/u01/app/19.0.0/grid]$ opatch lspatches
32918050;TOMCAT RELEASE UPDATE 19.0.0.0.0 (32918050)
32916816;OCW RELEASE UPDATE 19.12.0.0.0 (32916816)
32915586;ACFS RELEASE UPDATE 19.12.0.0.0 (32915586)
32904851;Database Release Update : 19.12.0.0.210720 (32904851)
32585572;DBWLM RELEASE UPDATE 19.0.0.0.0 (32585572)


OPatch succeeded.

You can find the log of this install session at:
 /u01/app/oraInventory/logs/GridSetupActions2021-08-30_08-16-41PM/gridSetupActions2021-08-30_08-16-41PM.log


As a root user, execute the following script(s):
        1. /u01/app/19.0.0/grid/root.sh


Execute /u01/app/19.0.0/grid/root.sh on the following nodes: 
[jiekexu-r1, jiekexu-r2]


Run the script on the local node first. After successful completion, you can start the script in parallel on all other nodes.


Successfully Setup Software with warning(s).
As install user, execute the following command to complete the configuration.
        /u01/app/19.0.0/grid/gridSetup.sh -executeConfigTools -responseFile /u01/app/19.0.0/grid/install/response/gridsetup.rsp [-silent]

6.5.1 root 脚本执行

/u01/app/oraInventory/orainstRoot.sh

/u01/app/19.0.0/grid/root.sh

[root@jiekexu-r1 ~]# /u01/app/19.0.0/grid/root.sh
Check /u01/app/19.0.0/grid/install/root_jiekexu-r1_2021-08-28_19-52-00-806173517.log for the output of root script
[root@jiekexu-r1 ~]#

执行脚本遇到如下错误ORA-39511,这个问题前面一篇文章已经说了,可点此查看

ORA-39511: Start of CRS resource for instance '215' failed with error:[CRS-2672: Attempting to start 'ora.cluster_interconnect.haip' on 'jiekexu-r1'
oracle.sysman.assistants.util.sqlEngine.SQLFatalErrorException: ORA-39511: Start of CRS resource for instance '215' failed with error:[CRS-2672: Attempting to start 'ora.cluster_interconnect.haip' on 'jiekexu-r1'

6.5.2 卸载 GI

如果脚本执行错误,重复执行也无法修复时,则需要使用 deinstall 卸载重新安装。

cd $ORACLE_HOME/deinstall
./deinstall
根据提示输入和执行脚本  
n   n   y  另开会话执行脚本 ./rootcrs.sh -force  -deconfig -paramfile ……,等待十几分钟
rm -rf /opt/ORCLfmap
rm -rf /etc/oraInst.loc
检查所有节点的配置文件/etc/oraInst.loc、/etc/oratab是否存在相关配置,若有,则删除之。
使用 root 用户登录所有节点,执行:
# rm -rf /etc/oracle /tmp/.oracle /var/tmp/.oracle /u01/app/oraInventory /u01/app/grid/* /tmp/GridSetupActions*
卸载后新建 mkdir -p  /u01/app/19.0.0/grid
chown -R grid:oinstall /u01
chmod -R 775 /u01
chown -R oracle:oinstall /u01/app/oracle
另一节点如果还没执行 root.sh 则直接  /u01/app/19.0.0/grid :
cd $ORACLE_HOME
rm -rf *   rm -rf .opatchauto_storage  rm -rf .patch_storage
cd /u01/app/grid
rm -rf *
rm -rf /u01/app/oraInventory

6.6 重新解压 GI 安装包继续安装

unzip LINUX.X64_193000_grid_home.zip -d $ORACLE_HOME
cd $ORACLE_HOME/OPatch
mv OPatch/ OPatch.bak
cp -r /home/soft/OPatch/ ./

两节点均需配置,使用ifconfigip link show查看mac地址。修改文件/etc/udev/rules.d/70-persistent-ipoib.rules

cat > /etc/udev/rules.d/70-persistent-ipoib.rules <<"EOF"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:e4:ce:69", ATTR{type}=="1", KERNEL=="eth*", NAME="ens32"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:e4:ce:73", ATTR{type}=="1", KERNEL=="eth*", NAME="ens33"
EOF
[root@jiekexu-r1 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:e4:ce:69 brd ff:ff:ff:ff:ff:ff
3: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:e4:ce:73 brd ff:ff:ff:ff:ff:ff


cat > /etc/sysconfig/network-scripts/ifcfg-ens32 <<"EOF"
DEVICE=ens32
NAME=ens32
IPADDR=192.168.75.128
NETMASK=255.255.255.0
GATEWAY=192.168.75.2
ONBOOT=yes
USERCTL=no
BOOTPROTO=static
HWADDR=00:0c:29:e4:ce:69
TYPE=Ethernet
IPV6INIT=no
DNS1=114.114.114.114
DNS2=8.8.8.8
NM_CONTROLLED=no
EOF


注意第二块网卡不配置网关,否则系统默认网关就变成了第二块网卡的网关,从而导致系统不能上外网。

cat > /etc/sysconfig/network-scripts/ifcfg-ens33 <<"EOF"
DEVICE=ens33
NAME=ens33
IPADDR=10.10.10.128
NETMASK=255.255.255.0
ONBOOT=yes
USERCTL=no
BOOTPROTO=static
HWADDR=00:0c:29:e4:ce:73
TYPE=Ethernet
IPV6INIT=no
DNS1=114.114.114.114
DNS2=8.8.8.8
NM_CONTROLLED=no
EOF

重跑 root.sh

[root@jiekexu-r1 network-scripts]# cat /u01/app/19.0.0/grid/install/root_jiekexu-r1_2021-08-31_18-14-46-714402688.log
Performing root user operation.


The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /u01/app/19.0.0/grid
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


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.0.0/grid/crs/install/crsconfig_params
The log of current session can be found at:
  /u01/app/grid/crsdata/jiekexu-r1/crsconfig/rootcrs_jiekexu-r1_2021-08-31_06-14-47PM.log
2021/08/31 18:14:50 CLSRSC-594: Executing installation step 1 of 19: 'SetupTFA'.
2021/08/31 18:14:50 CLSRSC-594: Executing installation step 2 of 19: 'ValidateEnv'.
2021/08/31 18:14:50 CLSRSC-363: User ignored prerequisites during installation
2021/08/31 18:14:50 CLSRSC-594: Executing installation step 3 of 19: 'CheckFirstNode'.
2021/08/31 18:14:52 CLSRSC-594: Executing installation step 4 of 19: 'GenSiteGUIDs'.
2021/08/31 18:14:53 CLSRSC-594: Executing installation step 5 of 19: 'SetupOSD'.
2021/08/31 18:14:53 CLSRSC-594: Executing installation step 6 of 19: 'CheckCRSConfig'.
2021/08/31 18:14:53 CLSRSC-594: Executing installation step 7 of 19: 'SetupLocalGPNP'.
2021/08/31 18:14:54 CLSRSC-594: Executing installation step 8 of 19: 'CreateRootCert'.
2021/08/31 18:14:57 CLSRSC-594: Executing installation step 9 of 19: 'ConfigOLR'.
2021/08/31 18:14:57 CLSRSC-594: Executing installation step 10 of 19: 'ConfigCHMOS'.
2021/08/31 18:14:57 CLSRSC-594: Executing installation step 11 of 19: 'CreateOHASD'.
2021/08/31 18:14:58 CLSRSC-594: Executing installation step 12 of 19: 'ConfigOHASD'.
2021/08/31 18:15:00 CLSRSC-594: Executing installation step 13 of 19: 'InstallAFD'.
2021/08/31 18:15:00 CLSRSC-594: Executing installation step 14 of 19: 'InstallACFS'.
2021/08/31 18:15:01 CLSRSC-594: Executing installation step 15 of 19: 'InstallKA'.
2021/08/31 18:15:04 CLSRSC-594: Executing installation step 16 of 19: 'InitConfig'.
2021/08/31 18:15:22 CLSRSC-4002: Successfully installed Oracle Trace File Analyzer (TFA) Collector.


ASM has been created and started successfully.


[DBT-30001] Disk groups created successfully. Check /u01/app/grid/cfgtoollogs/asmca/asmca-210831PM061542.log for details.


2021/08/31 18:16:34 CLSRSC-482: Running command: '/u01/app/19.0.0/grid/bin/ocrconfig -upgrade grid oinstall'
CRS-4256: Updating the profile
Successful addition of voting disk 14ed0aa13ffd4f89bfe2d79061f96fbc.
Successful addition of voting disk 27cc8fbc135f4fd3bf574b4d2e62531e.
Successful addition of voting disk c5c806e3a2414f74bf1c70f2add4a821.
Successfully replaced voting disk group with +OCR.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced


STATE    File Universal Id                File Name Disk group


--  -----    -----------------                --------- ---------


  1. ONLINE   14ed0aa13ffd4f89bfe2d79061f96fbc (/dev/asm_ocr03) [OCR]
  2. ONLINE   27cc8fbc135f4fd3bf574b4d2e62531e (/dev/asm_ocr01) [OCR]
  3. ONLINE   c5c806e3a2414f74bf1c70f2add4a821 (/dev/asm_ocr02) [OCR]
     Located 3 voting disk(s).
     2021/08/31 18:17:29 CLSRSC-594: Executing installation step 17 of 19: 'StartCluster'.
     2021/08/31 18:18:28 CLSRSC-343: Successfully started Oracle Clusterware stack
     2021/08/31 18:18:28 CLSRSC-594: Executing installation step 18 of 19: 'ConfigNode'.
     2021/08/31 18:20:11 CLSRSC-594: Executing installation step 19 of 19: 'PostConfig'.
     2021/08/31 18:20:38 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded

节点 2 执行 root.sh 也成功了,兴奋中……

[grid@jiekexu-r2:/home/grid]$ tail -30f /u01/app/19.0.0/grid/install/root_jiekexu-r2_2021-08-31_18-25-18-796337893.log
Performing root user operation.


The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /u01/app/19.0.0/grid
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


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.0.0/grid/crs/install/crsconfig_params
The log of current session can be found at:
  /u01/app/grid/crsdata/jiekexu-r2/crsconfig/rootcrs_jiekexu-r2_2021-08-31_06-25-49PM.log
2021/08/31 18:25:53 CLSRSC-594: Executing installation step 1 of 19: 'SetupTFA'.
2021/08/31 18:25:53 CLSRSC-594: Executing installation step 2 of 19: 'ValidateEnv'.
2021/08/31 18:25:53 CLSRSC-363: User ignored prerequisites during installation
2021/08/31 18:25:53 CLSRSC-594: Executing installation step 3 of 19: 'CheckFirstNode'.
2021/08/31 18:25:55 CLSRSC-594: Executing installation step 4 of 19: 'GenSiteGUIDs'.
2021/08/31 18:25:55 CLSRSC-594: Executing installation step 5 of 19: 'SetupOSD'.
Redirecting to /bin/systemctl restart rsyslog.service
2021/08/31 18:25:56 CLSRSC-594: Executing installation step 6 of 19: 'CheckCRSConfig'.
2021/08/31 18:25:58 CLSRSC-594: Executing installation step 7 of 19: 'SetupLocalGPNP'.
2021/08/31 18:26:02 CLSRSC-594: Executing installation step 8 of 19: 'CreateRootCert'.
2021/08/31 18:26:02 CLSRSC-594: Executing installation step 9 of 19: 'ConfigOLR'.
2021/08/31 18:26:16 CLSRSC-594: Executing installation step 10 of 19: 'ConfigCHMOS'.
2021/08/31 18:26:16 CLSRSC-594: Executing installation step 11 of 19: 'CreateOHASD'.
2021/08/31 18:26:20 CLSRSC-594: Executing installation step 12 of 19: 'ConfigOHASD'.
2021/08/31 18:26:20 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'
2021/08/31 18:26:43 CLSRSC-594: Executing installation step 13 of 19: 'InstallAFD'.
2021/08/31 18:26:43 CLSRSC-594: Executing installation step 14 of 19: 'InstallACFS'.
2021/08/31 18:27:30 CLSRSC-594: Executing installation step 15 of 19: 'InstallKA'.
2021/08/31 18:27:33 CLSRSC-594: Executing installation step 16 of 19: 'InitConfig'.
2021/08/31 18:27:42 CLSRSC-594: Executing installation step 17 of 19: 'StartCluster'.
2021/08/31 18:27:56 CLSRSC-4002: Successfully installed Oracle Trace File Analyzer (TFA) Collector.
2021/08/31 18:28:28 CLSRSC-343: Successfully started Oracle Clusterware stack
2021/08/31 18:28:29 CLSRSC-594: Executing installation step 18 of 19: 'ConfigNode'.
2021/08/31 18:29:13 CLSRSC-594: Executing installation step 19 of 19: 'PostConfig'.
2021/08/31 18:29:19 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded

[root@jiekexu-r1 ~]# systemctl status oracle-ohasd.service
? oracle-ohasd.service - Oracle High Availability Services
   Loaded: loaded (/etc/systemd/system/oracle-ohasd.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/oracle-ohasd.service.d
           +-00_oracle-ohasd.conf
   Active: active (running) since Thu 2021-09-02 10:55:47 CST; 37min ago
 Main PID: 1638 (init.ohasd)
   CGroup: /system.slice/oracle-ohasd.service
           +- 1638 /bin/sh /etc/init.d/init.ohasd run >/dev/null 2>&1 </dev/null 


…………省略更多输出…………


Sep 02 11:29:49 jiekexu-r1 CLSD[4579]: The clock on host jiekexu-r1 has been updated by the Cluster Time Synchronization Service to be synchronous with the mean cluster time.
Sep 02 11:31:58 jiekexu-r1 oracle_26819_+a[26819]: Oracle Audit[26819]: LENGTH : '247' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[4] 'gri...R:[3] '100'
Hint: Some lines were ellipsized, use -l to show in full.

6.9 配置集群

根据 6.5.1 节前的内容,执行完 root.sh 脚本,执行 executeConfigTools 配置,更新节点信息。

/u01/app/19.0.0/grid/gridSetup.sh  -silent -executeConfigTools -waitforcompletion \
-responseFile /u01/app/19.0.0/grid/install/response/gridsetup.rsp  \
INVENTORY_LOCATION=/u01/app/oraInventory \
ORACLE_BASE=/u01/app/grid \
ORACLE_HOME=/u01/app/19.0.0/grid \
oracle.install.asm.OSDBA=asmdba \
oracle.install.asm.OSOPER=asmoper \
oracle.install.asm.OSASM=asmadmin \
oracle.install.crs.config.storageOption=ASM \
oracle.install.crs.config.useIPMI=false \
oracle.install.asm.diskGroup.name=OCR \
oracle.install.asm.diskGroup.AUSize=4 \
oracle.install.asm.diskGroup.redundancy=NORMAL \
oracle.install.crs.config.ClusterConfiguration=STANDALONE \
oracle.install.crs.config.configureAsExtendedCluster=false \
oracle.install.crs.config.gpnp.scanPort=1521 \
oracle.install.crs.config.gpnp.configureGNS=false \
oracle.install.option=CRS_CONFIG \
oracle.install.asm.SYSASMPassword=Oracle19C \
oracle.install.asm.monitorPassword=Oracle19C \
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm_* \
oracle.install.asm.diskGroup.disks=/dev/asm_ocr01,/dev/asm_ocr02,/dev/asm_ocr03 \
oracle.install.crs.config.gpnp.scanName=jiekexu-racscan \
oracle.install.crs.config.clusterName=jiekexu-racscan \
oracle.install.crs.config.autoConfigureClusterNodeVIP=false \
oracle.install.crs.config.clusterNodes=jiekexu-r1:jiekexu-r1-vip,jiekexu-r2:jiekexu-r2-vip \
oracle.install.crs.config.networkInterfaceList=ens32:192.168.75.0:1,ens33:10.10.10.0:5 \
oracle.install.asm.configureGIMRDataDG=false \
oracle.install.crs.configureRHPS=false \
oracle.install.crs.config.ignoreDownNodes=false \
oracle.install.config.managementOption=NONE \
oracle.install.config.omsPort=0 \
oracle.install.crs.rootconfig.executeRootScript=false 






Launching Oracle Grid Infrastructure Setup Wizard...


You can find the logs of this session at:
/u01/app/oraInventory/logs/GridSetupActions2021-08-31_06-44-55PM


You can find the log of this install session at:
 /u01/app/oraInventory/logs/UpdateNodeList2021-08-31_06-44-55PM.log
Configuration failed.
[WARNING] [INS-43080] Some of the configuration assistants failed, were cancelled or skipped.
   ACTION: Refer to the logs or contact Oracle Support Services.

注意:在 /u01/app/19.0.0/grid/install/response 目录下,新生成了 grid_2021-08-31_02-31-29PM.rsp 响应文件,可以使用新生成的,我这里沿用了前面的配置项也可以。

7.创建磁盘组

创建磁盘组可使用图形化 asmca 创建,也可以使用 asmca -silent 静默创建,更可以使用 SQL 语句创建。

在这里创建3个磁盘组:

OCR: 存放OCR voting 文件。AU size 4MB  ,redundance NORMAL。

DATA : 存放数据文件等。AU size 4MB  ,redundance EXTERNAL 。

ARCH : 存放归档日志和镜像的 ONLINE LOGFILE。redundance EXTERNAL 。

#创建 DATA 磁盘组

asmca -silent -createDiskGroup -sysAsmPassword Oracle_19c -asmsnmpPassword Oracle_19c -oui_internal  -diskString '/dev/asm_\*\' -diskGroupName DATA -diskList /dev/asm_data01,/dev/asm_data02 -redundancy EXTERNAL -au_size 4 -compatible.asm 19.0.0.0.0


[INFO] [DBT-30001] Disk groups created successfully. Check /u01/app/grid/cfgtoollogs/asmca/asmca-210902AM105901.log for details.

查看创建日志发现执行了以下的创建 SQL 语句,并且两节点均已挂载。

ALTER SYSTEM SET asm_diskstring='/dev/asm_' SID='';
select name from v$parameter where isdefault='FALSE'union select name from v$system_parameter where ismodified='MODIFIED';
CREATE DISKGROUP DATA EXTERNAL REDUNDANCY  DISK '/dev/asm_data01' SIZE 10240M   DISK '/dev/asm_data02' SIZE 10240M  ATTRIBUTE 'compatible.asm'='19.0.0.0.0','compatible.advm'='19.0.0.0','au_size'='4M';

#创建 ARCH 磁盘组

asmca -silent -createDiskGroup -sysAsmPassword Oracle_19c -asmsnmpPassword Oracle_19c -oui_internal  -diskString '/dev/asm_*' -diskGroupName ARCH -diskList /dev/asm_arch01 -redundancy EXTERNAL -au_size 4 -compatible.asm 19.0.0.0.0

以下是官方文档 SQL 创建磁盘组示例:

Example
Creating the FRA disk groupCREATE DISKGROUP fra NORMAL REDUNDANCY  DISK '/devices/diskc*';  
CREATE DISKGROUP data external REDUNDANCY  DISK '/dev/asmdisks/asm-data'  ATTRIBUTE 'au_size'='4M',    'compatible.asm' = '19.0',     'compatible.rdbms' = '19.0',    'compatible.advm' = '19.0';
CREATE DISKGROUP fra external REDUNDANCY  DISK '/dev/asmdisks/asm-fra'  ATTRIBUTE 'au_size'='4M',    'compatible.asm' = '19.0',     'compatible.rdbms' = '19.0',    'compatible.advm' = '19.0';

图形化创建比较简单就不演示了;创建完磁盘组后,检查磁盘组 DATA 兼容性.

su - grid 
sqlplus / as sysasm
select GROUP_NUMBER,name,value from v$asm_attribute where GROUP_NUMBER=2 and name like 'compatible%';


GROUP_NUMBER NAME               VALUE


------------ ------------------ ------------------------------


           2 compatible.asm     19.0.0.0.0
           2 compatible.rdbms   10.1.0.0.0
           2 compatible.advm    19.0.0.0.0


修改兼容性
ALTER DISKGROUP DATA SET ATTRIBUTE 'compatible.rdbms' = '19.0.0.0.0';

8.安装 DB 软件

8.1 修改软件包权限并解压
[root@jiekexu-r1 soft]# chown oracle:oinstall LINUX.X64_193000_db_home.zip
[root@jiekexu-r1 soft]# chown -R oracle:oinstall OPatch
$ unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME

8.2 替换 OPatch

mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch.bak
cp -r OPatch $ORACLE_HOME
$ opatch version OPatch Version: 12.2.0.1.25
OPatch succeeded.

8.3 使用 RU 静默安装 DB 软件

${ORACLE_HOME}/runInstaller -h
Usage:  runInstaller [<flag>] [<option>]
Following are the possible flags: 
        -help - 显示帮助。
        -silent - 在无提示模式下运行。输入内容可以是一个响应文件, 也可以是命令行变量值对的列表。
                [-ignorePrereqFailure - 忽略所有先决条件检查失败。]
        -responseFile - 指定要使用的响应文件的完整路径。
        -logLevel - 根据此参数所提供的优先级启用消息日志。有效选项包括: 严重, 警告, 信息, 配置, 详细, 较为详细, 非常详细。
        -executePrereqs | -executeConfigTools | -createGoldImage
        -executePrereqs - 仅执行先决条件检查。
        -executeConfigTools - 对安装的主目录执行配置工具。
        -createGoldImage - 从当前 Oracle 主目录创建 Gold Image。
                -destinationLocation - 指定将存放所创建 Gold Image 的位置的完整路径。
                [-exclFiles - 指定要从新 Gold Image 中排除的文件的完整路径。]
        -debug - 在调试模式下运行。
        -printdiskusage - 记录有关磁盘使用情况的调试信息。
        -printmemory - 记录有关内存使用情况的调试信息。
        -printtime - 记录有关时间使用情况的调试信息。
        -waitForCompletion - 等待安装完成, 而不是衍生安装程序并返回控制台提示符。
        -noconfig - 不执行配置工具。
        -noconsole - 禁止在控制台中显示消息。不分配控制台。
        -ignoreInternalDriverError - 忽略任何内部驱动程序错误。
        -noCopy - 执行配置, 但不将软件复制到远程节点。
        -applyRU - 将发行版更新应用于 Oracle 主目录。
        -applyOneOffs - 将一次性补丁程序应用于 Oracle 主目录。多个一次性补丁程序可以采用逗号分隔的位置列表格式传递。


db 响应文件位置 $ORACLE_HOME/install/response/db_install.rsp
$ORACLE_HOME/runInstaller -ignorePrereq -waitforcompletion -silent -applyRU /home/soft/32900083/32895426 \
-responseFile  $ORACLE_HOME/install/response/db_install.rsp \
oracle.install.option=INSTALL_DB_SWONLY \
ORACLE_HOSTNAME=/u01/app/oraInventory \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=/u01/app/oraInventory \
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 \
ORACLE_BASE=/u01/app/oracle \
oracle.install.db.InstallEdition=EE \
oracle.install.db.OSDBA_GROUP=dba \
oracle.install.db.OSOPER_GROUP=oper \
oracle.install.db.OSBACKUPDBA_GROUP=backupdba \
oracle.install.db.OSDGDBA_GROUP=dgdba \
oracle.install.db.OSKMDBA_GROUP=kmdba \
oracle.install.db.OSRACDBA_GROUP=racdba \
oracle.install.db.CLUSTER_NODES=jiekexu-r1,jiekexu-r2

8.3.1 卸载 DB 软件

卸载 DB 软件很简单 $ORACLE_HOME/deinstall/deinstall  根据提示先回车 然后 y 继续,等待一会儿则卸载完毕,dbhome 清理完成。再次安装时需要新建,然后解压软件。

mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME

8.4 静默创建实例

字符集为 32UTF8

DBCA 建库

非容器数据库创建方法:

dbca -silent -createDatabase \
 -templateName General_Purpose.dbc \
 -gdbname JiekeXu -responseFile NO_VALUE \
 -characterSet AL32UTF8 \
 -sysPassword Oracle19c \
 -systemPassword Oracle19c \
 -createAsContainerDatabase false \
 -databaseType MULTIPURPOSE \
 -automaticMemoryManagement false \
 -totalMemory 8192 \
 -redoLogFileSize 1024 \
 -emConfiguration NONE \
 -ignorePreReqs \
 -nodelist jiekexu-r1,jiekexu-r2 \
 -storageType ASM \
 -diskGroupName +DATA \
 -asmsnmpPassword Oracle19c \
 -recoveryAreaDestination  NONE

PDB容器数据库创建方法:

dbca -silent -createDatabase \
 -templateName General_Purpose.dbc \
 -gdbname JiekeXu -responseFile NO_VALUE \
 -characterSet AL32UTF8 \
 -sysPassword Oracle_19C \
 -systemPassword Oracle_19C \
 -createAsContainerDatabase true \
 -numberOfPDBs 1 \
 -pdbName JiekeXupdb1 \
 -pdbAdminPassword Oracle_19C \
 -databaseType MULTIPURPOSE \
 -automaticMemoryManagement false \
 -totalMemory 1500 \
 -redoLogFileSize 200 \
 -emConfiguration NONE \
 -ignorePreReqs \
 -nodelist jiekexu-r1,jiekexu-r2  \
 -storageType ASM \
 -diskGroupName +DATA \
 -asmsnmpPassword Oracle_19C \
 -recoveryAreaDestination  NONE

本次创建容器数据库。

[root@jiekexu-r1 ~]# tail -f /u01/app/oracle/cfgtoollogs/dbca/JiekeXu/JiekeXu.log
[ 2021-09-02 16:26:50.800 CST ] Prepare for db operation
DBCA_PROGRESS : 7%
[ 2021-09-02 16:27:27.683 CST ] Copying database files
DBCA_PROGRESS : 27%
[ 2021-09-02 16:30:53.347 CST ] Creating and starting Oracle instance
DBCA_PROGRESS : 28%
DBCA_PROGRESS : 31%
DBCA_PROGRESS : 35%
DBCA_PROGRESS : 37%
DBCA_PROGRESS : 40%
[ 2021-09-02 17:10:05.458 CST ] Creating cluster database views
DBCA_PROGRESS : 41%
DBCA_PROGRESS : 53%
[ 2021-09-02 17:11:35.673 CST ] Completing Database Creation
DBCA_PROGRESS : 57%
DBCA_PROGRESS : 59%
DBCA_PROGRESS : 60%
[ 2021-09-02 17:21:42.870 CST ] Creating Pluggable Databases
DBCA_PROGRESS : 64%
DBCA_PROGRESS : 80%
[ 2021-09-02 17:22:41.957 CST ] Executing Post Configuration Actions
DBCA_PROGRESS : 100%
[ 2021-09-02 17:22:41.971 CST ] Database creation complete. For details check the logfiles at:
 /u01/app/oracle/cfgtoollogs/dbca/JiekeXu.
Database Information:
Global Database Name:JiekeXu
System Identifier(SID) Prefix:JiekeXu

到达 31% 则比较慢,半小时多没有反应,关闭微信、浏览器等其他软件后总共花费 56 分钟完成。

8.4.1 静默删除实例

静默删除数据库实例

dbca -silent -deleteDatabase -sourceDB JiekeXu -sysDBAUserName SYS -sysDBAPassword Oracle19c

8.5 数据库状态检查

8.5.1集群状态查看
jiekexu-r1:/home/grid(+ASM1)$ crsctl status res -t 


Name           Target  State        Server                   State details       


Local Resources


ora.LISTENER.lsnr
               ONLINE  ONLINE       jiekexu-r1               STABLE
               ONLINE  ONLINE       jiekexu-r2               STABLE
ora.chad
               ONLINE  ONLINE       jiekexu-r1               STABLE
               ONLINE  ONLINE       jiekexu-r2               STABLE
ora.net1.network
               ONLINE  ONLINE       jiekexu-r1               STABLE
               ONLINE  ONLINE       jiekexu-r2               STABLE
ora.ons
               ONLINE  ONLINE       jiekexu-r1               STABLE


               ONLINE  ONLINE       jiekexu-r2               STABLE


Cluster Resources


ora.ARCH.dg(ora.asmgroup)
      1        ONLINE  ONLINE       jiekexu-r1               STABLE
      2        ONLINE  ONLINE       jiekexu-r2               STABLE
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       jiekexu-r1               STABLE
      2        ONLINE  ONLINE       jiekexu-r2               STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       jiekexu-r1               STABLE
      2        ONLINE  ONLINE       jiekexu-r2               STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       jiekexu-r2               STABLE
ora.OCR.dg(ora.asmgroup)
      1        ONLINE  ONLINE       jiekexu-r1               STABLE
      2        ONLINE  ONLINE       jiekexu-r2               STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       jiekexu-r1               Started,STABLE
      2        ONLINE  ONLINE       jiekexu-r2               Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       jiekexu-r1               STABLE
      2        ONLINE  ONLINE       jiekexu-r2               STABLE
ora.cvu
      1        ONLINE  ONLINE       jiekexu-r2               STABLE
ora.jiekexu-r1.vip
      1        ONLINE  ONLINE       jiekexu-r1               STABLE
ora.jiekexu-r2.vip
      1        ONLINE  ONLINE       jiekexu-r2               STABLE
ora.jiekexu.db
      1        ONLINE  ONLINE       jiekexu-r1               Open,HOME=/u01/app/o
                                                                                      racle/product/19.0.0
                                                                                      /dbhome_1,STABLE
      2        ONLINE  ONLINE       jiekexu-r2               Open,HOME=/u01/app/o
                                                                                      racle/product/19.0.0
                                                                                      /dbhome_1,STABLE
ora.qosmserver
      1        ONLINE  ONLINE       jiekexu-r2               STABLE
ora.scan1.vip


      1        ONLINE  ONLINE       jiekexu-r2               STABLE


jiekexu-r1:/home/grid(+ASM1)$

8.5.2 监听状态查看

8.5.3 数据库信息查看
jiekexu-r1:/home/oracle(JiekeXu1)$  sqlplus / as sysdba 


SQL*Plus: Release 19.0.0.0.0 - Production on Thu Sep 2 18:05:30 2021
Version 19.12.0.0.0


Copyright (c) 1982, 2021, Oracle.  All rights reserved.




Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.12.0.0.0


SQL> set line  240 
col HOST_NAME for a30 SQL> SQL> 
select INSTANCE_NAME,HOST_NAME,VERSION,STARTUP_TIME,STATUS from gv$instance; 
SQL> 
INSTANCE_NAME    HOST_NAME                      VERSION           STARTUP_TIME        STATUS


---------------- ------------------------------ ----------------- ------------------- ------------


JiekeXu1         jiekexu-r1                     19.0.0.0.0        2021-09-02 17:20:52 OPEN
JiekeXu2         jiekexu-r2                     19.0.0.0.0        2021-09-02 17:20:57 OPEN


Elapsed: 00:00:00.02
SQL>  col status for a10
SQL>  col action for a10
SQL>  col action_time for a30
SQL>  col description for a60
SQL>  select patch_id,patch_type,action,status,action_time,description from dba_registry_sqlpatch;




  PATCH_ID PATCH_TYPE ACTION     STATUS     ACTION_TIME                    DESCRIPTION


---------- ---------- ---------- ---------- ------------------------------ ------------------------------------------------------------


  32904851 RU         APPLY      SUCCESS    02-SEP-21 05.05.15.051185 PM   Database Release Update : 19.12.0.0.210720 (32904851)


SQL> SQL> show pdbs


    CON_ID CON_NAME                       OPEN MODE  RESTRICTED


---------- ------------------------------ ---------- ----------


         2 PDB$SEED                       READ ONLY  NO
         3 JIEKEXUPDB1                    READ WRITE NO


SQL>  col version for a25
SQL>  col comments for a80
SQL>  select ACTION_TIME,VERSION,COMMENTS from dba_registry_history;


ACTION_TIME                    VERSION                   COMMENTS


------------------------------ ------------------------- --------------------------------------------------------------------------------


                               19                        RDBMS_19.12.0.0.0DBRU_LINUX.X64_210715


02-SEP-21 05.02.53.625968 PM   19.0.0.0.0                Patch applied from 19.3.0.0.0 to 19.12.0.0.0: Release_Update - 210716141810

8.5.4 连接测试

SQL> col File_Name for a88
col Con_Name for a16
set pages 345
with Containers as (select PDB_ID Con_ID, PDB_Name Con_Name from DBA_PDBs
  union
  select 1 Con_ID, 'CDB$ROOT' Con_Name from Dual)
  select Con_ID,Con_Name "Con_Name",Tablespace_Name "T'space_Name",File_Name "File_Name"
  from CDB_Data_Files inner join Containers using (Con_ID)
  union
  select Con_ID,Con_Name "Con_Name",Tablespace_Name "T'space_Name",File_Name "File_Name"
  from CDB_Temp_Files inner join Containers using (Con_ID)
  order by 1, 3;






    CON_ID Con_Name         T'space_Name                   File_Name


---------- ---------------- ------------------------------ ----------------------------------------------------------------------------------------


         1 CDB$ROOT         SYSAUX                         +DATA/JIEKEXU/DATAFILE/sysaux.258.1082219405
         1 CDB$ROOT         SYSTEM                         +DATA/JIEKEXU/DATAFILE/system.257.1082219301
         1 CDB$ROOT         TEMP                           +DATA/JIEKEXU/TEMPFILE/temp.264.1082219523
         1 CDB$ROOT         UNDOTBS1                       +DATA/JIEKEXU/DATAFILE/undotbs1.259.1082219451
         1 CDB$ROOT         UNDOTBS2                       +DATA/JIEKEXU/DATAFILE/undotbs2.269.1082221805
         1 CDB$ROOT         USERS                          +DATA/JIEKEXU/DATAFILE/users.260.1082219453
         3 JIEKEXUPDB1      SYSAUX                         +DATA/JIEKEXU/CB00B60A29FFA77AE053814BA8C06D60/DATAFILE/sysaux.275.1082222507
         3 JIEKEXUPDB1      SYSTEM                         +DATA/JIEKEXU/CB00B60A29FFA77AE053814BA8C06D60/DATAFILE/system.274.1082222507
         3 JIEKEXUPDB1      TEMP                           +DATA/JIEKEXU/CB00B60A29FFA77AE053814BA8C06D60/TEMPFILE/temp.276.1082222513
         3 JIEKEXUPDB1      UNDOTBS1                       +DATA/JIEKEXU/CB00B60A29FFA77AE053814BA8C06D60/DATAFILE/undotbs1.273.1082222507
         3 JIEKEXUPDB1      UNDO_2                         +DATA/JIEKEXU/CB00B60A29FFA77AE053814BA8C06D60/DATAFILE/undo_2.277.1082222553
         3 JIEKEXUPDB1      USERS                          +DATA/JIEKEXU/CB00B60A29FFA77AE053814BA8C06D60/DATAFILE/users.278.1082222557


12 rows selected.

8.6 SQL 连接提示符修改

cd $ORACLE_HOME/sqlplus/admin
vi glogin.sql
set linesize 250
set pagesize 9999
col Name format a80
col owner format a30
col file_name for a88
set termout off
ALTER SESSION SET nls_date_format = 'yyyy-mm-dd HH24:MI:SS';
set termout on
set serveroutput on size 1000000
set long 2000
set time on
set timing on
define _editor=vi
set sqlprompt "_user'@'_connect_identifier> "

8.7 安装 rlwrap

*安装 rlwrap 包实现 sqlplus 历史命令上下翻转回退等操作。*

先使用 yum 安装 readline(一定要安装成功) 然后编译安装 rlwrap

下载 https://github.com/hanslub42/rlwrap/releases


# yum install -y readline*
# tar -zxvf  rlwrap-0.45.2.tar.gz
# cd rlwrap-0.45.2
# ./configure && make && make install
添加 oracle 用户环境变量
# su - oracle 
$ cat <<EOF>>/home/oracle/.bash_profile
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias lsnrctl='rlwrap lsnrctl'
alias asmcmd='rlwrap asmcmd'
alias adrci='rlwrap adrci'
alias ggsci='rlwrap ggsci'
alias sas=’sqlplus / as sysdba’
EOF


$ . .bash_profile --生效

Linux 64 位 19.12 RU :https://www.modb.pro/download/137693

Linux 64 位 RAC 安装包:https://www.modb.pro/download/5713

吐血整理,实属不易,原作者更加辛苦,如认真阅读,此文一定对您有帮助,欢迎点赞、在看与转发,写作不易,坚持写作更不易,您的点赞、转发,举手之劳,便是对作者最大的支持,也能让更多的人受益,感谢!

——————————————————————--—--————

公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
腾讯云:https://cloud.tencent.com/developer/user/5645107

————————————————————————----———

2021年7月国产数据库排行榜:openGauss高歌猛进,GBase持续下跌

Oracle 12c 及以上版本补丁更新说明及下载方法(收藏版)

Oracle 19c 19.10DBRU 最新补丁升级看这一篇就够了

Redhat 7.7 安装最新版 MongoDB 5.0.1 手册

ASM 管理的内部工具:KFED、KFOD、AMDU

性能优化|关于数据库历史性能问题的一道面试题

一线运维 DBA 五年经验常用 SQL 大全(二)

ORA-00349|激活 ADG 备库时遇到的问题

Oracle 轻量级实时监控工具 oratop

MySQL OCP 认证考试你知道吗?

Oracle 19C RAC 安装遇到的坑

国产数据库|TiDB 5.0 快速体验

Oracle 19C MAA 搭建指南

Oracle 每日一题系列合集

百花齐放的国产数据库


Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐