
作者 | 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/137693Linux 64 位 RAC 安装包:https://www.modb.pro/download/5713
1.新建用户,组,目录 并修改 sshd_config 快速登录
1.1 新建用户和组
groupadd -g 54321 oinstallgroupadd -g 54322 dbagroupadd -g 54323 opergroupadd -g 54324 backupdbagroupadd -g 54325 dgdbagroupadd -g 54326 kmdbagroupadd -g 54327 asmdbagroupadd -g 54328 asmopergroupadd -g 54329 asmadmingroupadd -g 54330 racdbauseradd -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,racdba -u 10000 oracleuseradd -g oinstall -G dba,asmdba,asmoper,asmadmin,racdba -u 10001 gridecho "Oracle_19C" | passwd --stdin oracleecho "Oracle_19C" | passwd --stdin grid
1.2 创建目录
mkdir -p u01/app/19.0.0/gridmkdir -p u01/app/gridmkdir -p u01/app/oracle/product/19.0.0/dbhome_1mkdir -p home/softchown -R grid:oinstall u01chown -R oracle:oinstall u01/app/oraclechmod -R 775 u01chmod -R 775 home/softchown -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_USumask 022export TMP=/tmpexport TMPDIR=$TMPexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1export ORACLE_HOSTNAME=jiekexu-r1export TNS_ADMIN=$ORACLE_HOME/network/adminexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/libexport ORACLE_SID=JiekeXu1export PATH=/usr/sbin:$PATHexport PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATHexport NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"export NLS_LANG=AMERICAN_AMERICA.AL32UTF8export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/libalias 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登陆速度,禁用DNScp 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 ip192.168.75.128 jiekexu-r1192.168.75.129 jiekexu-r2#private ip10.10.10.128 jiekexu-r1-priv10.10.10.129 jiekexu-r2-priv#vip192.168.75.130 jiekexu-r1-vip192.168.75.131 jiekexu-r2-vip#scanip192.168.75.132 jiekexu-racscan'>> etc/hosts
2.2 public IP 和 private 私网配置
[root@jiekexu-r1 network-scripts]# more ifcfg-ens32TYPE="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-ens33TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33DEVICE=ens33HWADDR="00:0C:29:2C:79:D8"uuid="c96bc909-188e-ec64-3a96-6a90982b08ad"ONBOOT=yesGATEWAY="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]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 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 homesdb 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/dvdmount dev/sr0 mnt/dvd[root@jiekexu-r1 network-scripts]# ls -lh mnt/dvdtotal 974Kdr-xr-xr-x 4 root root 2.0K Jul 23 2019 addonsdr-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 GPLdr-xr-xr-x 3 root root 2.0K Jul 23 2019 imagesdr-xr-xr-x 2 root root 2.0K Jul 23 2019 isolinuxdr-xr-xr-x 2 root root 2.0K Jul 23 2019 LiveOS-r--r--r-- 1 root root 114 Jul 23 2019 media.repodr-xr-xr-x 2 root root 924K Jul 23 2019 Packagesdr-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=0EOFyum clean allyum list | grep zsh
4.2 配置多路径
##安装multipath
yum install -y device-mapper*
#生成配置文件
mpathconf --enable --with_multipathd y
[root@jiekexu-r1 ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 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 homesdb 8:16 0 3G 0 disksdc 8:32 0 3G 0 disksdd 8:48 0 3G 0 disksde 8:64 0 10G 0 disksdf 8:80 0 10G 0 disksdg 8:96 0 10G 0 disksr0 11:0 1 4.2G 0 rom mnt/dvd[root@jiekexu-r1 repodata]# usr/lib/udev/scsi_id -g -u dev/sdb36000c29714156f014c53bf30fbcc4162[root@jiekexu-r1 repodata]# usr/lib/udev/scsi_id -g -u dev/sdc36000c296835807593a81c0c4597f64d6[root@jiekexu-r1 repodata]# usr/lib/udev/scsi_id -g -u dev/sdd36000c29760b3f5110218e88d0fe6710c[root@jiekexu-r1 repodata]# usr/lib/udev/scsi_id -g -u dev/sde36000c29c671fc199d01bebc6e05e3270[root@jiekexu-r1 repodata]# usr/lib/udev/scsi_id -g -u dev/sdf36000c291ffdcc7e2ea852fe4a4e29fcc[root@jiekexu-r1 repodata]# usr/lib/udev/scsi_id -g -u dev/sdg36000c29ddf7a88a288da95203aa0a929##配置multipath,wwid 的值为上面获取的 scsi_id(multipath -v3 也可以查看到),alias 可自定义,这里配置 3 块 OCR 盘,2块DATA盘,一块 ARCH 盘。cp /etc/multipath.conf /etc/multipath.conf.bak配置文件中有以下内容:defaults {user_friendly_names yesfind_multipaths yes}blacklist {}如下需要在 blacklist 添加一行 devnode 信息,删除原有的 blacklistcat <<EOF>> etc/multipath.confblacklist {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 -Fmultipath -v2multipath -ll

#查看状态
systemctl status multipathd.service
#创建多路径开机自启动服务
systemctl enable multipathd.service

[root@jiekexu-r1 mapper]# multipath -v3 | grep 3600Aug 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]# mpathconfmultipath is enabledfind_multipaths is enableduser_friendly_names is enableddm_multipath module is loadedmultipathd is running

4.3 配置 UDEV
cd dev/mapper[root@jiekexu-r1 mapper]# lltotal 0lrwxrwxrwx 1 root root 7 Aug 22 21:15 asm_arch01 -> ../dm-8lrwxrwxrwx 1 root root 7 Aug 22 21:15 asm_data01 -> ../dm-6lrwxrwxrwx 1 root root 7 Aug 22 21:15 asm_data02 -> ../dm-7lrwxrwxrwx 1 root root 7 Aug 22 21:15 asm_ocr01 -> ../dm-3lrwxrwxrwx 1 root root 7 Aug 22 21:15 asm_ocr02 -> ../dm-4lrwxrwxrwx 1 root root 7 Aug 22 21:15 asm_ocr03 -> ../dm-5crw------- 1 root root 10, 236 Aug 22 19:44 controllrwxrwxrwx 1 root root 7 Aug 22 19:44 rhel_jiekexu--test-home -> ../dm-2lrwxrwxrwx 1 root root 7 Aug 22 19:44 rhel_jiekexu--test-root -> ../dm-0lrwxrwxrwx 1 root root 7 Aug 22 19:44 rhel_jiekexu--test-swap -> ../dm-1for i in asm_*; doprintf "%s %s\n" "$i" "$(udevadm info --query=all --name=/dev/mapper/"$i" | grep -i dm_uuid)" >>/dev/mapper/udev_infodonewhile read -r line; dodm_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.rulesdone < dev/mapper/udev_info##重载udevudevadm control --reload-rulesudevadm trigger --type=devicesll dev/asm*lrwxrwxrwx 1 root root 4 Aug 22 21:26 dev/asm_arch01 -> dm-8lrwxrwxrwx 1 root root 4 Aug 22 21:26 dev/asm_data01 -> dm-6lrwxrwxrwx 1 root root 4 Aug 22 21:26 dev/asm_data02 -> dm-7lrwxrwxrwx 1 root root 4 Aug 22 21:26 dev/asm_ocr01 -> dm-3lrwxrwxrwx 1 root root 4 Aug 22 21:26 dev/asm_ocr02 -> dm-4lrwxrwxrwx 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.rulesKERNEL=="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-0brw-rw----. 1 root disk 253, 1 Aug 22 21:32 dev/dm-1brw-rw----. 1 root disk 253, 2 Aug 22 21:32 dev/dm-2brw-rw----. 1 grid asmadmin 253, 3 Aug 22 21:32 dev/dm-3brw-rw----. 1 grid asmadmin 253, 4 Aug 22 21:32 dev/dm-4brw-rw----. 1 grid asmadmin 253, 5 Aug 22 21:32 dev/dm-5brw-rw----. 1 grid asmadmin 253, 6 Aug 22 21:32 dev/dm-6brw-rw----. 1 grid asmadmin 253, 7 Aug 22 21:32 dev/dm-7brw-rw----. 1 grid asmadmin 253, 8 Aug 22 21:32 dev/dm-8[root@jiekexu-r2 mapper]# lltotal 4lrwxrwxrwx. 1 root root 7 Aug 22 21:32 asm_arch01 -> ../dm-8lrwxrwxrwx. 1 root root 7 Aug 22 21:32 asm_data01 -> ../dm-6lrwxrwxrwx. 1 root root 7 Aug 22 21:32 asm_data02 -> ../dm-7lrwxrwxrwx. 1 root root 7 Aug 22 21:32 asm_ocr01 -> ../dm-3lrwxrwxrwx. 1 root root 7 Aug 22 21:32 asm_ocr02 -> ../dm-4lrwxrwxrwx. 1 root root 7 Aug 22 21:32 asm_ocr03 -> ../dm-5crw-------. 1 root root 10, 236 Aug 22 21:32 controllrwxrwxrwx. 1 root root 7 Aug 22 21:32 rhel_jiekexu--r2-home -> ../dm-2lrwxrwxrwx. 1 root root 7 Aug 22 21:32 rhel_jiekexu--r2-root -> ../dm-0lrwxrwxrwx. 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-releaseRed Hat Enterprise Linux Server release 7.7 (Maipo)`[root@jiekexu-r2 ~]# cat etc/redhat-releaseRed 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 RangeSize: 8192 MB##swap[root@jiekexu-r1 ~]# free -htotal used free shared buff/cache availableMem: 7.6G 550M 6.6G 12M 519M 7.0GSwap: 6.0G 0B 6.0G[root@jiekexu-r1 ~]# grep SwapTotal proc/meminfo | awk '{print $2}'6291452[root@jiekexu-r2 ~]# free -htotal used free shared buff/cache availableMem: 7.8G 627M 6.7G 12M 497M 6.9GSwap: 7.9G 0B 7.9G[root@jiekexu-r2 ~]# grep SwapTotal proc/meminfo | awk '{print $2}'8257532##时区 主机名[root@jiekexu-r2 ~]# timedatectl statusLocal time: Tue 2021-08-24 09:42:32 CSTUniversal time: Tue 2021-08-24 01:42:32 UTCRTC time: Tue 2021-08-24 01:42:32Time zone: Asia/Shanghai (CST, +0800)NTP enabled: noNTP synchronized: noRTC in local TZ: noDST active: n/a[root@jiekexu-r2 ~]# hostnamectl statusStatic hostname: jiekexu-r2Icon name: computer-vmChassis: vmMachine ID: 445856a0ecb7468cacc9e44b6c0b0130Boot ID: a6fb4d7304c34687bdb8ab1986fc992dVirtualization: vmwareOperating System: Red Hat Enterprise Linux Server 7.7 (Maipo)CPE OS Name: cpe:/o:redhat:enterprise_linux:7.7:GA:serverKernel: Linux 3.10.0-1062.el7.x86_64Architecture: 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 --systemSHMMAX:单个共享内存段最大值(字节)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 $MEMecho $SHMALLecho $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=25942memTotal=$(grep MemTotal proc/meminfo | awk '{print $2}')totalMemory=$((memTotal 2048))shmall=$((memTotal 4))if [ $shmall -lt 2097152 ]; thenshmall=2097152fishmmax=$((memTotal * 1024 - 1))if [ "$shmmax" -lt 4294967295 ]; thenshmmax=4294967295ficat <<EOF>> etc/sysctl.d/97-oracle-database-sysctl.conffs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = $shmallkernel.shmmax = $shmmaxkernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 16777216net.core.rmem_max = 16777216net.core.wmem_max = 16777216net.core.wmem_default = 16777216fs.aio-max-nr = 6194304vm.min_free_kbytes=524288vm.dirty_ratio=20vm.dirty_background_ratio=3vm.dirty_writeback_centisecs=100vm.dirty_expire_centisecs=500vm.swappiness=10net.core.netdev_max_backlog = 30000net.core.netdev_budget = 600#vm.nr_hugepages =net.ipv4.conf.all.rp_filter = 2net.ipv4.conf.default.rp_filter = 2net.ipv4.ipfrag_time = 60net.ipv4.ipfrag_low_thresh=6291456net.ipv4.ipfrag_high_thresh = 8388608EOF[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 = 16kernel.core_uses_pid = 1net.ipv4.conf.default.rp_filter = 1net.ipv4.conf.all.rp_filter = 1net.ipv4.conf.default.accept_source_route = 0net.ipv4.conf.all.accept_source_route = 0net.ipv4.conf.default.promote_secondaries = 1net.ipv4.conf.all.promote_secondaries = 1fs.protected_hardlinks = 1fs.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 = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 8181903359kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 16777216net.core.rmem_max = 16777216net.core.wmem_max = 16777216net.core.wmem_default = 16777216fs.aio-max-nr = 6194304vm.min_free_kbytes = 524288vm.dirty_ratio = 20vm.dirty_background_ratio = 3vm.dirty_writeback_centisecs = 100vm.dirty_expire_centisecs = 500vm.swappiness = 10net.core.netdev_max_backlog = 30000net.core.netdev_budget = 600net.ipv4.conf.all.rp_filter = 2net.ipv4.conf.default.rp_filter = 2net.ipv4.ipfrag_time = 60net.ipv4.ipfrag_low_thresh = 6291456net.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]# lltotal 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.rpmPreparing... ################################# [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)? yesWarning: 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 -noPromptPassphrasecd /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;dossh -l grid -o StrictHostKeyChecking=no $h date;done<oracle>$ for h in jiekexu-r1 jiekexu-r1-priv jiekexu-r2 jiekexu-r2-priv;dossh -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 rootEnter "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 -verboseVerifying Physical Memory ...Node Name Available Required Status------------ ------------------------ ------------------------ ----------jiekexu-r2 7.7772GB (8155004.0KB) 8GB (8388608.0KB) passedjiekexu-r1 7.62GB (7990132.0KB) 8GB (8388608.0KB) passedVerifying Physical Memory ...PASSEDVerifying Available Physical Memory ...Node Name Available Required Status------------ ------------------------ ------------------------ ----------jiekexu-r2 6.953GB (7290788.0KB) 50MB (51200.0KB) passedjiekexu-r1 6.5808GB (6900520.0KB) 50MB (51200.0KB) passedVerifying Available Physical Memory ...PASSEDVerifying Swap Size ...Node Name Available Required Status------------ ------------------------ ------------------------ ----------jiekexu-r2 7.875GB (8257532.0KB) 7.7772GB (8155004.0KB) passedjiekexu-r1 8GB (8388600.0KB) 7.62GB (7990132.0KB) passedVerifying Swap Size ...PASSEDVerifying 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 passedvar jiekexu-r2 47.5273GB 5MB passedetc jiekexu-r2 47.5273GB 25MB passedsbin jiekexu-r2 47.5273GB 10MB passedtmp jiekexu-r2 47.5273GB 1GB passedVerifying Free Space: jiekexu-r2:/usr,jiekexu-r2:/var,jiekexu-r2:/etc,jiekexu-r2:/sbin,jiekexu-r2:/tmp ...PASSEDVerifying 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 passedvar jiekexu-r1 8.8099GB 5MB passedetc jiekexu-r1 8.8099GB 25MB passedsbin jiekexu-r1 8.8099GB 10MB passedtmp jiekexu-r1 8.8099GB 1GB passedVerifying Free Space: jiekexu-r1:/usr,jiekexu-r1:/var,jiekexu-r1:/etc,jiekexu-r1:/sbin,jiekexu-r1:/tmp ...PASSEDVerifying User Existence: grid ...Node Name Status Comment------------ ------------------------ ------------------------jiekexu-r2 passed exists(10001)jiekexu-r1 passed exists(10001)Verifying Users With Same UID: 10001 ...PASSEDVerifying User Existence: grid ...PASSEDVerifying Group Existence: asmadmin ...Node Name Status Comment------------ ------------------------ ------------------------jiekexu-r2 passed existsjiekexu-r1 passed existsVerifying Group Existence: asmadmin ...PASSEDVerifying Group Existence: asmdba ...Node Name Status Comment------------ ------------------------ ------------------------jiekexu-r2 passed existsjiekexu-r1 passed existsVerifying Group Existence: asmdba ...PASSEDVerifying Group Existence: oinstall ...Node Name Status Comment------------ ------------------------ ------------------------jiekexu-r2 passed existsjiekexu-r1 passed existsVerifying Group Existence: oinstall ...PASSEDVerifying Group Membership: asmdba ...Node Name User Exists Group Exists User in Group Status---------------- ------------ ------------ ------------ ----------------jiekexu-r2 yes yes yes passedjiekexu-r1 yes yes yes passedVerifying Group Membership: asmdba ...PASSEDVerifying Group Membership: asmadmin ...Node Name User Exists Group Exists User in Group Status---------------- ------------ ------------ ------------ ----------------jiekexu-r2 yes yes yes passedjiekexu-r1 yes yes yes passedVerifying Group Membership: asmadmin ...PASSEDVerifying Group Membership: oinstall(Primary) ...Node Name User Exists Group Exists User in Group Primary Status---------------- ------------ ------------ ------------ ------------ ------------jiekexu-r2 yes yes yes yes passedjiekexu-r1 yes yes yes yes passedVerifying Group Membership: oinstall(Primary) ...PASSEDVerifying Run Level ...Node Name run level Required Status------------ ------------------------ ------------------------ ----------jiekexu-r2 5 3,5 passedjiekexu-r1 5 3,5 passedVerifying Run Level ...PASSEDVerifying Hard Limit: maximum open file descriptors ...Node Name Type Available Required Status---------------- ------------ ------------ ------------ ----------------jiekexu-r2 hard 65536 65536 passedjiekexu-r1 hard 65536 65536 passedVerifying Hard Limit: maximum open file descriptors ...PASSEDVerifying Soft Limit: maximum open file descriptors ...Node Name Type Available Required Status---------------- ------------ ------------ ------------ ----------------jiekexu-r2 soft 1024 1024 passedjiekexu-r1 soft 1024 1024 passedVerifying Soft Limit: maximum open file descriptors ...PASSEDVerifying Hard Limit: maximum user processes ...Node Name Type Available Required Status---------------- ------------ ------------ ------------ ----------------jiekexu-r2 hard 16384 16384 passedjiekexu-r1 hard 16384 16384 passedVerifying Hard Limit: maximum user processes ...PASSEDVerifying Soft Limit: maximum user processes ...Node Name Type Available Required Status---------------- ------------ ------------ ------------ ----------------jiekexu-r2 soft 2047 2047 passedjiekexu-r1 soft 2047 2047 passedVerifying Soft Limit: maximum user processes ...PASSEDVerifying Soft Limit: maximum stack size ...Node Name Type Available Required Status---------------- ------------ ------------ ------------ ----------------jiekexu-r2 soft 10240 10240 passedjiekexu-r1 soft 10240 10240 passedVerifying Soft Limit: maximum stack size ...PASSEDVerifying Architecture ...Node Name Available Required Status------------ ------------------------ ------------------------ ----------jiekexu-r2 x86_64 x86_64 passedjiekexu-r1 x86_64 x86_64 passedVerifying Architecture ...PASSEDVerifying OS Kernel Version ...Node Name Available Required Status------------ ------------------------ ------------------------ ----------jiekexu-r2 3.10.0-1062.el7.x86_64 3.10.0 passedjiekexu-r1 3.10.0-1062.el7.x86_64 3.10.0 passedVerifying OS Kernel Version ...PASSEDVerifying OS Kernel Parameter: semmsl ...Node Name Current Configured Required Status Comment---------------- ------------ ------------ ------------ ------------ ------------jiekexu-r1 250 250 250 passedjiekexu-r2 250 250 250 passedVerifying OS Kernel Parameter: semmsl ...PASSEDVerifying OS Kernel Parameter: semmns ...Node Name Current Configured Required Status Comment---------------- ------------ ------------ ------------ ------------ ------------jiekexu-r1 32000 32000 32000 passedjiekexu-r2 32000 32000 32000 passedVerifying OS Kernel Parameter: semmns ...PASSEDVerifying OS Kernel Parameter: semopm ...Node Name Current Configured Required Status Comment---------------- ------------ ------------ ------------ ------------ ------------jiekexu-r1 100 100 100 passedjiekexu-r2 100 100 100 passedVerifying OS Kernel Parameter: semopm ...PASSEDVerifying OS Kernel Parameter: semmni ...Node Name Current Configured Required Status Comment---------------- ------------ ------------ ------------ ------------ ------------jiekexu-r1 128 128 128 passedjiekexu-r2 128 128 128 passedVerifying OS Kernel Parameter: semmni ...PASSEDVerifying OS Kernel Parameter: shmmax ...Node Name Current Configured Required Status Comment---------------- ------------ ------------ ------------ ------------ ------------jiekexu-r1 8181903359 8181903359 4090947584 passedjiekexu-r2 8350715903 8350715903 4175362048 passedVerifying OS Kernel Parameter: shmmax ...PASSEDVerifying OS Kernel Parameter: shmmni ...Node Name Current Configured Required Status Comment---------------- ------------ ------------ ------------ ------------ ------------jiekexu-r1 4096 4096 4096 passedjiekexu-r2 4096 4096 4096 passedVerifying OS Kernel Parameter: shmmni ...PASSEDVerifying OS Kernel Parameter: shmall ...Node Name Current Configured Required Status Comment---------------- ------------ ------------ ------------ ------------ ------------jiekexu-r1 2097152 2097152 1997534 passedjiekexu-r2 2097152 2097152 2038748 passedVerifying OS Kernel Parameter: shmall ...PASSEDVerifying OS Kernel Parameter: file-max ...Node Name Current Configured Required Status Comment---------------- ------------ ------------ ------------ ------------ ------------jiekexu-r1 6815744 6815744 6815744 passedjiekexu-r2 6815744 6815744 6815744 passedVerifying OS Kernel Parameter: file-max ...PASSEDVerifying 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 passedjiekexu-r2 between 9000 & 65500 between 9000 & 65500 between 9000 & 65535 passedVerifying OS Kernel Parameter: ip_local_port_range ...PASSEDVerifying OS Kernel Parameter: rmem_default ...Node Name Current Configured Required Status Comment---------------- ------------ ------------ ------------ ------------ ------------jiekexu-r1 16777216 16777216 262144 passedjiekexu-r2 16777216 16777216 262144 passedVerifying OS Kernel Parameter: rmem_default ...PASSEDVerifying OS Kernel Parameter: rmem_max ...Node Name Current Configured Required Status Comment---------------- ------------ ------------ ------------ ------------ ------------jiekexu-r1 16777216 16777216 4194304 passedjiekexu-r2 16777216 16777216 4194304 passedVerifying OS Kernel Parameter: rmem_max ...PASSEDVerifying OS Kernel Parameter: wmem_default ...Node Name Current Configured Required Status Comment---------------- ------------ ------------ ------------ ------------ ------------jiekexu-r1 16777216 16777216 262144 passedjiekexu-r2 16777216 16777216 262144 passedVerifying OS Kernel Parameter: wmem_default ...PASSEDVerifying OS Kernel Parameter: wmem_max ...Node Name Current Configured Required Status Comment---------------- ------------ ------------ ------------ ------------ ------------jiekexu-r1 16777216 16777216 1048576 passedjiekexu-r2 16777216 16777216 1048576 passedVerifying OS Kernel Parameter: wmem_max ...PASSEDVerifying OS Kernel Parameter: aio-max-nr ...Node Name Current Configured Required Status Comment---------------- ------------ ------------ ------------ ------------ ------------jiekexu-r1 6194304 6194304 1048576 passedjiekexu-r2 6194304 6194304 1048576 passedVerifying OS Kernel Parameter: aio-max-nr ...PASSEDVerifying Package: kmod-20-21 (x86_64) ...Node Name Available Required Status------------ ------------------------ ------------------------ ----------jiekexu-r2 kmod(x86_64)-20-25.el7 kmod(x86_64)-20-21 passedjiekexu-r1 kmod(x86_64)-20-25.el7 kmod(x86_64)-20-21 passedVerifying Package: kmod-20-21 (x86_64) ...PASSEDVerifying 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 passedjiekexu-r1 kmod-libs(x86_64)-20-25.el7 kmod-libs(x86_64)-20-21 passedVerifying Package: kmod-libs-20-21 (x86_64) ...PASSEDVerifying 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 passedjiekexu-r1 binutils-2.27-41.base.el7 binutils-2.23.52.0.1 passedVerifying Package: binutils-2.23.52.0.1 ...PASSEDVerifying Package: compat-libcap1-1.10 ...Node Name Available Required Status------------ ------------------------ ------------------------ ----------jiekexu-r2 compat-libcap1-1.10-7.el7 compat-libcap1-1.10 passedjiekexu-r1 compat-libcap1-1.10-7.el7 compat-libcap1-1.10 passedVerifying Package: compat-libcap1-1.10 ...PASSEDVerifying 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 passedjiekexu-r1 libgcc(x86_64)-4.8.5-39.el7 libgcc(x86_64)-4.8.2 passedVerifying Package: libgcc-4.8.2 (x86_64) ...PASSEDVerifying 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 passedjiekexu-r1 libstdc++(x86_64)-4.8.5-39.el7 libstdc++(x86_64)-4.8.2 passedVerifying Package: libstdc++-4.8.2 (x86_64) ...PASSEDVerifying 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 passedjiekexu-r1 libstdc++-devel(x86_64)-4.8.5-39.el7 libstdc++-devel(x86_64)-4.8.2 passedVerifying Package: libstdc++-devel-4.8.2 (x86_64) ...PASSEDVerifying Package: sysstat-10.1.5 ...Node Name Available Required Status------------ ------------------------ ------------------------ ----------jiekexu-r2 sysstat-10.1.5-18.el7 sysstat-10.1.5 passedjiekexu-r1 sysstat-10.1.5-18.el7 sysstat-10.1.5 passedVerifying Package: sysstat-10.1.5 ...PASSEDVerifying 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 passedjiekexu-r1 gcc-c++-4.8.5-39.el7 gcc-c++-4.8.2 passedVerifying Package: gcc-c++-4.8.2 ...PASSEDVerifying Package: ksh ...Node Name Available Required Status------------ ------------------------ ------------------------ ----------jiekexu-r2 ksh ksh passedjiekexu-r1 ksh ksh passedVerifying Package: ksh ...PASSEDVerifying Package: make-3.82 ...Node Name Available Required Status------------ ------------------------ ------------------------ ----------jiekexu-r2 make-3.82-24.el7 make-3.82 passedjiekexu-r1 make-3.82-24.el7 make-3.82 passedVerifying Package: make-3.82 ...PASSEDVerifying 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 passedjiekexu-r1 glibc(x86_64)-2.17-292.el7 glibc(x86_64)-2.17 passedVerifying Package: glibc-2.17 (x86_64) ...PASSEDVerifying 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 passedjiekexu-r1 glibc-devel(x86_64)-2.17-292.el7 glibc-devel(x86_64)-2.17 passedVerifying Package: glibc-devel-2.17 (x86_64) ...PASSEDVerifying 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 passedjiekexu-r1 libaio(x86_64)-0.3.109-13.el7 libaio(x86_64)-0.3.109 passedVerifying Package: libaio-0.3.109 (x86_64) ...PASSEDVerifying 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 passedjiekexu-r1 libaio-devel(x86_64)-0.3.109-13.el7 libaio-devel(x86_64)-0.3.109 passedVerifying Package: libaio-devel-0.3.109 (x86_64) ...PASSEDVerifying 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 passedjiekexu-r1 nfs-utils-1.3.0-0.65.el7 nfs-utils-1.2.3-15 passedVerifying Package: nfs-utils-1.2.3-15 ...PASSEDVerifying Package: smartmontools-6.2-4 ...Node Name Available Required Status------------ ------------------------ ------------------------ ----------jiekexu-r2 smartmontools-7.0-1.el7 smartmontools-6.2-4 passedjiekexu-r1 smartmontools-7.0-1.el7 smartmontools-6.2-4 passedVerifying Package: smartmontools-6.2-4 ...PASSEDVerifying 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 passedjiekexu-r1 net-tools-2.0-0.25.20131004git.el7 net-tools-2.0-0.17 passedVerifying Package: net-tools-2.0-0.17 ...PASSEDVerifying 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 passedjiekexu-r1 compat-libstdc++-33(x86_64)-3.2.3-72.el7 compat-libstdc++-33(x86_64)-3.2.3 passedVerifying Package: compat-libstdc++-33-3.2.3 (x86_64) ...PASSEDVerifying 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 passedjiekexu-r1 libxcb(x86_64)-1.13-1.el7 libxcb(x86_64)-1.11 passedVerifying Package: libxcb-1.11 (x86_64) ...PASSEDVerifying 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 passedjiekexu-r1 libX11(x86_64)-1.6.7-2.el7 libX11(x86_64)-1.6.3 passedVerifying Package: libX11-1.6.3 (x86_64) ...PASSEDVerifying 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 passedjiekexu-r1 libXau(x86_64)-1.0.8-2.1.el7 libXau(x86_64)-1.0.8 passedVerifying Package: libXau-1.0.8 (x86_64) ...PASSEDVerifying 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 passedjiekexu-r1 libXi(x86_64)-1.7.9-1.el7 libXi(x86_64)-1.7.4 passedVerifying Package: libXi-1.7.4 (x86_64) ...PASSEDVerifying 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 passedjiekexu-r1 libXtst(x86_64)-1.2.3-1.el7 libXtst(x86_64)-1.2.2 passedVerifying Package: libXtst-1.2.2 (x86_64) ...PASSEDVerifying Port Availability for component "Oracle Notification Service (ONS)" ...Node Name Port Number Protocol Available Status---------------- ------------ ------------ ------------ ----------------jiekexu-r2 6200 TCP yes successfuljiekexu-r1 6200 TCP yes successfuljiekexu-r2 6100 TCP yes successfuljiekexu-r1 6100 TCP yes successfulVerifying Port Availability for component "Oracle Notification Service (ONS)" ...PASSEDVerifying Port Availability for component "Oracle Cluster Synchronization Services (CSSD)" ...Node Name Port Number Protocol Available Status---------------- ------------ ------------ ------------ ----------------jiekexu-r2 42424 TCP yes successfuljiekexu-r1 42424 TCP yes successfulVerifying Port Availability for component "Oracle Cluster Synchronization Services (CSSD)" ...PASSEDVerifying Users With Same UID: 0 ...PASSEDVerifying Current Group ID ...PASSEDVerifying Root user consistency ...Node Name Status------------------------------------ ------------------------jiekexu-r2 passedjiekexu-r1 passedVerifying Root user consistency ...PASSEDVerifying Package: cvuqdisk-1.0.10-1 ...Node Name Available Required Status------------ ------------------------ ------------------------ ----------jiekexu-r2 cvuqdisk-1.0.10-1 cvuqdisk-1.0.10-1 passedjiekexu-r1 cvuqdisk-1.0.10-1 cvuqdisk-1.0.10-1 passedVerifying Package: cvuqdisk-1.0.10-1 ...PASSEDVerifying Host name ...PASSEDVerifying Node Connectivity ...Verifying Hosts File ...Node Name Status------------------------------------ ------------------------jiekexu-r1 passedjiekexu-r2 passedVerifying Hosts File ...PASSEDInterface 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 1500ens32 192.168.75.129 192.168.75.0 0.0.0.0 10.10.10.1 00:0C:29:E4:CE:69 1500ens33 10.10.10.129 10.0.0.0 0.0.0.0 10.10.10.1 00:0C:29:E4:CE:73 1500Interface 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 1500ens32 192.168.75.128 192.168.75.0 0.0.0.0 10.10.10.1 00:0C:29:2C:79:CE 1500ens33 10.10.10.128 10.0.0.0 0.0.0.0 10.10.10.1 00:0C:29:2C:79:D8 1500Check: 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 1500jiekexu-r2 ens32 192.168.75.129 192.168.75.0 1500jiekexu-r1 ens32 192.168.75.28 192.168.75.0 1500jiekexu-r1 ens32 192.168.75.128 192.168.75.0 1500Check: 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 1500jiekexu-r1 ens33 10.10.10.128 10.0.0.0 1500Verifying Check that maximum (MTU) size packet goes through subnet ...PASSEDSource Destination Connected?------------------------------ ------------------------------ ----------------jiekexu-r1[ens32:192.168.75.28] jiekexu-r2[ens32:192.168.75.129] yesjiekexu-r1[ens32:192.168.75.28] jiekexu-r2[ens32:192.168.75.30] yesjiekexu-r1[ens32:192.168.75.28] jiekexu-r1[ens32:192.168.75.128] yesjiekexu-r2[ens32:192.168.75.129] jiekexu-r2[ens32:192.168.75.30] yesjiekexu-r2[ens32:192.168.75.129] jiekexu-r1[ens32:192.168.75.128] yesjiekexu-r2[ens32:192.168.75.30] jiekexu-r1[ens32:192.168.75.128] yesSource Destination Connected?------------------------------ ------------------------------ ----------------jiekexu-r1[ens33:10.10.10.128] jiekexu-r2[ens33:10.10.10.129] yesVerifying subnet mask consistency for subnet "192.168.75.0" ...PASSEDVerifying subnet mask consistency for subnet "10.0.0.0" ...PASSEDVerifying Node Connectivity ...PASSEDVerifying 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 ...PASSEDVerifying Network Time Protocol (NTP) ...PASSEDVerifying Same core file name pattern ...PASSEDVerifying User Mask ...Node Name Available Required Comment------------ ------------------------ ------------------------ ----------jiekexu-r2 0022 0022 passedjiekexu-r1 0022 0022 passedVerifying User Mask ...PASSEDVerifying User Not In Group "root": grid ...Node Name Status Comment------------ ------------------------ ------------------------jiekexu-r2 passed does not existjiekexu-r1 passed does not existVerifying User Not In Group "root": grid ...PASSEDVerifying Time zone consistency ...PASSEDVerifying Time offset between nodes ...PASSEDVerifying resolv.conf Integrity ...Node Name Status------------------------------------ ------------------------jiekexu-r1 failedjiekexu-r2 failedchecking response for name "jiekexu-r2" from each of the name servers specifiedin "/etc/resolv.conf"Node Name Source Comment Status------------ ------------------------ ------------------------ ----------jiekexu-r2 192.168.75.2 IPv4 failedchecking response for name "jiekexu-r1" from each of the name servers specifiedin "/etc/resolv.conf"Node Name Source Comment Status------------ ------------------------ ------------------------ ----------jiekexu-r1 192.168.75.2 IPv4 failedVerifying resolv.conf Integrity ...FAILED (PRVF-5636, PRVG-10048)Verifying DNS/NIS name service ...PASSEDVerifying Domain Sockets ...PASSEDVerifying boot mount ...PASSEDVerifying Daemon "avahi-daemon" not configured and running ...Node Name Configured Status------------ ------------------------ ------------------------jiekexu-r2 no passedjiekexu-r1 no passedNode Name Running? Status------------ ------------------------ ------------------------jiekexu-r2 no passedjiekexu-r1 no passedVerifying Daemon "avahi-daemon" not configured and running ...PASSEDVerifying Daemon "proxyt" not configured and running ...Node Name Configured Status------------ ------------------------ ------------------------jiekexu-r2 no passedjiekexu-r1 no passedNode Name Running? Status------------ ------------------------ ------------------------jiekexu-r2 no passedjiekexu-r1 no passedVerifying Daemon "proxyt" not configured and running ...PASSEDVerifying User Equivalence ...PASSEDVerifying RPM Package Manager database ...INFORMATION (PRVG-11250)Verifying dev/shm mounted as temporary file system ...PASSEDVerifying File system mount options for path /var ...PASSEDVerifying DefaultTasksMax parameter ...PASSEDVerifying zeroconf check ...PASSEDVerifying ASM Filter Driver configuration ...PASSEDPre-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 ...FAILEDjiekexu-r2: PRVF-5636 : The DNS response time for an unreachable node exceeded"15000" ms on following nodes: jiekexu-r1,jiekexu-r2jiekexu-r2: PRVG-10048 : Name "jiekexu-r2" was not resolved to an address ofthe 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-r2jiekexu-r1: PRVG-10048 : Name "jiekexu-r1" was not resolved to an address ofthe specified type by name servers "192.168.75.2".Verifying RPM Package Manager database ...INFORMATIONPRVG-11250 : The check "RPM Package Manager database" was not performed becauseit needs 'root' user privileges.CVU operation performed: stage -pre crsinstDate: Aug 25, 2021 8:41:59 PMCVU 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 rootEnter "ROOT" password:Verifying Physical Memory ...PASSEDVerifying Available Physical Memory ...PASSEDVerifying Swap Size ...PASSEDVerifying Free Space: jiekexu-r2:/usr,jiekexu-r2:/var,jiekexu-r2:/etc,jiekexu-r2:/sbin,jiekexu-r2:/tmp ...PASSEDVerifying Free Space: jiekexu-r1:/usr,jiekexu-r1:/var,jiekexu-r1:/etc,jiekexu-r1:/sbin,jiekexu-r1:/tmp ...PASSEDVerifying User Existence: grid ...Verifying Users With Same UID: 10001 ...PASSEDVerifying User Existence: grid ...PASSEDVerifying Group Existence: asmadmin ...PASSEDVerifying Group Existence: asmdba ...PASSEDVerifying Group Existence: oinstall ...PASSEDVerifying Group Membership: asmdba ...PASSEDVerifying Group Membership: asmadmin ...PASSEDVerifying Group Membership: oinstall(Primary) ...PASSEDVerifying Run Level ...PASSEDVerifying Hard Limit: maximum open file descriptors ...PASSEDVerifying Soft Limit: maximum open file descriptors ...PASSEDVerifying Hard Limit: maximum user processes ...PASSEDVerifying Soft Limit: maximum user processes ...PASSEDVerifying Soft Limit: maximum stack size ...PASSEDVerifying Architecture ...PASSEDVerifying OS Kernel Version ...PASSEDVerifying OS Kernel Parameter: semmsl ...PASSEDVerifying OS Kernel Parameter: semmns ...PASSEDVerifying OS Kernel Parameter: semopm ...PASSEDVerifying OS Kernel Parameter: semmni ...PASSEDVerifying OS Kernel Parameter: shmmax ...PASSEDVerifying OS Kernel Parameter: shmmni ...PASSEDVerifying OS Kernel Parameter: shmall ...PASSEDVerifying OS Kernel Parameter: file-max ...PASSEDVerifying OS Kernel Parameter: ip_local_port_range ...PASSEDVerifying OS Kernel Parameter: rmem_default ...PASSEDVerifying OS Kernel Parameter: rmem_max ...PASSEDVerifying OS Kernel Parameter: wmem_default ...PASSEDVerifying OS Kernel Parameter: wmem_max ...PASSEDVerifying OS Kernel Parameter: aio-max-nr ...PASSEDVerifying Package: kmod-20-21 (x86_64) ...PASSEDVerifying Package: kmod-libs-20-21 (x86_64) ...PASSEDVerifying Package: binutils-2.23.52.0.1 ...PASSEDVerifying Package: compat-libcap1-1.10 ...PASSEDVerifying Package: libgcc-4.8.2 (x86_64) ...PASSEDVerifying Package: libstdc++-4.8.2 (x86_64) ...PASSEDVerifying Package: libstdc++-devel-4.8.2 (x86_64) ...PASSEDVerifying Package: sysstat-10.1.5 ...PASSEDVerifying Package: gcc-c++-4.8.2 ...PASSEDVerifying Package: ksh ...PASSEDVerifying Package: make-3.82 ...PASSEDVerifying Package: glibc-2.17 (x86_64) ...PASSEDVerifying Package: glibc-devel-2.17 (x86_64) ...PASSEDVerifying Package: libaio-0.3.109 (x86_64) ...PASSEDVerifying Package: libaio-devel-0.3.109 (x86_64) ...PASSEDVerifying Package: nfs-utils-1.2.3-15 ...PASSEDVerifying Package: smartmontools-6.2-4 ...PASSEDVerifying Package: net-tools-2.0-0.17 ...PASSEDVerifying Package: compat-libstdc++-33-3.2.3 (x86_64) ...PASSEDVerifying Package: libxcb-1.11 (x86_64) ...PASSEDVerifying Package: libX11-1.6.3 (x86_64) ...PASSEDVerifying Package: libXau-1.0.8 (x86_64) ...PASSEDVerifying Package: libXi-1.7.4 (x86_64) ...PASSEDVerifying Package: libXtst-1.2.2 (x86_64) ...PASSEDVerifying Port Availability for component "Oracle Notification Service (ONS)" ...PASSEDVerifying Port Availability for component "Oracle Cluster Synchronization Services (CSSD)" ...PASSEDVerifying Users With Same UID: 0 ...PASSEDVerifying Current Group ID ...PASSEDVerifying Root user consistency ...PASSEDVerifying Package: cvuqdisk-1.0.10-1 ...PASSEDVerifying Host name ...PASSEDVerifying Node Connectivity ...Verifying Hosts File ...PASSEDVerifying Check that maximum (MTU) size packet goes through subnet ...PASSEDVerifying subnet mask consistency for subnet "192.168.75.0" ...PASSEDVerifying subnet mask consistency for subnet "10.0.0.0" ...PASSEDVerifying Node Connectivity ...PASSEDVerifying Multicast or broadcast check ...PASSEDVerifying Network Time Protocol (NTP) ...PASSEDVerifying Same core file name pattern ...PASSEDVerifying User Mask ...PASSEDVerifying User Not In Group "root": grid ...PASSEDVerifying Time zone consistency ...PASSEDVerifying Time offset between nodes ...PASSEDVerifying resolv.conf Integrity ...FAILED (PRVG-13159)Verifying DNS/NIS name service ...PASSEDVerifying Domain Sockets ...PASSEDVerifying /boot mount ...PASSEDVerifying Daemon "avahi-daemon" not configured and running ...PASSEDVerifying Daemon "proxyt" not configured and running ...PASSEDVerifying User Equivalence ...PASSEDVerifying RPM Package Manager database ...PASSEDVerifying /dev/shm mounted as temporary file system ...PASSEDVerifying File system mount options for path /var ...PASSEDVerifying DefaultTasksMax parameter ...PASSEDVerifying zeroconf check ...PASSEDVerifying ASM Filter Driver configuration ...PASSEDPre-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 ...FAILEDjiekexu-r2: PRVG-13159 : On node "jiekexu-r2" the file "/etc/resolv.conf" couldnot be parsed because the file is empty.jiekexu-r1: PRVG-13159 : On node "jiekexu-r1" the file "/etc/resolv.conf" couldnot be parsed because the file is empty.CVU operation performed: stage -pre crsinstDate: Aug 30, 2021 7:49:20 PMCVU 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 disks7 partitions0 LVM physical volume whole disks1 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 belowInterfaceName:SubnetAddress:InterfaceTypewhere InterfaceType can be either "1", "2", "3", "4", or "5"InterfaceType stand for the following values1 : PUBLIC2 : PRIVATE3 : DO NOT USE4 : ASM5 : 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]$ lsaddnode clone dbs gpnp inventory lib opatchautocfg ord plsql rdbms root.sh.old.2 sqlpatch usm xdkassistants crs deinstall gridSetup.sh javavm md OPatch.bak0826 ords precomp relnotes root.sh.old.3 sqlplus utlbin css demo has jdbc network opmn oss pylib rhp rootupgrade.sh srvm welcome.htmlcfgtoollogs ctx diagnostics hs jdk nls oracore oui QOpatch root.sh runcluvfy.sh suptools wlmcha cv env.ora install jlib olap oradiag_grid owm qos root.sh.old sdk tomcat wwgclient 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 versionOPatch Version: 12.2.0.1.25OPatch succeeded.[grid@jiekexu-r2:/u01/app/19.0.0/grid]$ opatch lspatches32918050;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.logAs a root user, execute the following script(s):1. /u01/app/19.0.0/grid/root.shExecute /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.shCheck /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/ORCLfmaprm -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/gridchown -R grid:oinstall /u01chmod -R 775 /u01chown -R oracle:oinstall /u01/app/oracle另一节点如果还没执行 root.sh 则直接 /u01/app/19.0.0/grid :cd $ORACLE_HOMErm -rf * rm -rf .opatchauto_storage rm -rf .patch_storagecd /u01/app/gridrm -rf *rm -rf /u01/app/oraInventory
6.6 重新解压 GI 安装包继续安装
unzip LINUX.X64_193000_grid_home.zip -d $ORACLE_HOMEcd $ORACLE_HOME/OPatchmv OPatch/ OPatch.bakcp -r /home/soft/OPatch/ ./
两节点均需配置,使用ifconfig
或ip 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 show1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:002: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:e4:ce:69 brd ff:ff:ff:ff:ff:ff3: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:e4:ce:73 brd ff:ff:ff:ff:ff:ffcat > /etc/sysconfig/network-scripts/ifcfg-ens32 <<"EOF"DEVICE=ens32NAME=ens32IPADDR=192.168.75.128NETMASK=255.255.255.0GATEWAY=192.168.75.2ONBOOT=yesUSERCTL=noBOOTPROTO=staticHWADDR=00:0c:29:e4:ce:69TYPE=EthernetIPV6INIT=noDNS1=114.114.114.114DNS2=8.8.8.8NM_CONTROLLED=noEOF
注意第二块网卡不配置网关,否则系统默认网关就变成了第二块网卡的网关,从而导致系统不能上外网。
cat > /etc/sysconfig/network-scripts/ifcfg-ens33 <<"EOF"DEVICE=ens33NAME=ens33IPADDR=10.10.10.128NETMASK=255.255.255.0ONBOOT=yesUSERCTL=noBOOTPROTO=staticHWADDR=00:0c:29:e4:ce:73TYPE=EthernetIPV6INIT=noDNS1=114.114.114.114DNS2=8.8.8.8NM_CONTROLLED=noEOF
重跑 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.logPerforming root user operation.The following environment variables are set as:ORACLE_OWNER= gridORACLE_HOME= /u01/app/19.0.0/gridCopying 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 byDatabase Configuration Assistant when a database is createdFinished running generic part of root script.Now product-specific root actions will be performed.Relinking oracle with rac_on optionUsing configuration parameter file: /u01/app/19.0.0/grid/crs/install/crsconfig_paramsThe log of current session can be found at:/u01/app/grid/crsdata/jiekexu-r1/crsconfig/rootcrs_jiekexu-r1_2021-08-31_06-14-47PM.log2021/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 installation2021/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 profileSuccessful 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 profileCRS-4266: Voting file(s) successfully replacedSTATE 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 stack2021/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.logPerforming root user operation.The following environment variables are set as:ORACLE_OWNER= gridORACLE_HOME= /u01/app/19.0.0/gridCopying 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 byDatabase Configuration Assistant when a database is createdFinished running generic part of root script.Now product-specific root actions will be performed.Relinking oracle with rac_on optionUsing configuration parameter file: /u01/app/19.0.0/grid/crs/install/crsconfig_paramsThe log of current session can be found at:/u01/app/grid/crsdata/jiekexu-r2/crsconfig/rootcrs_jiekexu-r2_2021-08-31_06-25-49PM.log2021/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 installation2021/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.service2021/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 stack2021/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 ServicesLoaded: loaded (/etc/systemd/system/oracle-ohasd.service; enabled; vendor preset: disabled)Drop-In: /etc/systemd/system/oracle-ohasd.service.d+-00_oracle-ohasd.confActive: active (running) since Thu 2021-09-02 10:55:47 CST; 37min agoMain 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=falseLaunching Oracle Grid Infrastructure Setup Wizard...You can find the logs of this session at:/u01/app/oraInventory/logs/GridSetupActions2021-08-31_06-44-55PMYou can find the log of this install session at:/u01/app/oraInventory/logs/UpdateNodeList2021-08-31_06-44-55PM.logConfiguration 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 创建磁盘组示例:
ExampleCreating 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 - gridsqlplus / as sysasmselect 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.02 compatible.rdbms 10.1.0.0.02 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.bakcp -r OPatch $ORACLE_HOME$ opatch version OPatch Version: 12.2.0.1.25OPatch succeeded.
8.3 使用 RU 静默安装 DB 软件
${ORACLE_HOME}/runInstaller -hUsage: 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_1unzip 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 operationDBCA_PROGRESS : 7%[ 2021-09-02 16:27:27.683 CST ] Copying database filesDBCA_PROGRESS : 27%[ 2021-09-02 16:30:53.347 CST ] Creating and starting Oracle instanceDBCA_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 viewsDBCA_PROGRESS : 41%DBCA_PROGRESS : 53%[ 2021-09-02 17:11:35.673 CST ] Completing Database CreationDBCA_PROGRESS : 57%DBCA_PROGRESS : 59%DBCA_PROGRESS : 60%[ 2021-09-02 17:21:42.870 CST ] Creating Pluggable DatabasesDBCA_PROGRESS : 64%DBCA_PROGRESS : 80%[ 2021-09-02 17:22:41.957 CST ] Executing Post Configuration ActionsDBCA_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:JiekeXuSystem 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 -tName Target State Server State detailsLocal Resourcesora.LISTENER.lsnrONLINE ONLINE jiekexu-r1 STABLEONLINE ONLINE jiekexu-r2 STABLEora.chadONLINE ONLINE jiekexu-r1 STABLEONLINE ONLINE jiekexu-r2 STABLEora.net1.networkONLINE ONLINE jiekexu-r1 STABLEONLINE ONLINE jiekexu-r2 STABLEora.onsONLINE ONLINE jiekexu-r1 STABLEONLINE ONLINE jiekexu-r2 STABLECluster Resourcesora.ARCH.dg(ora.asmgroup)1 ONLINE ONLINE jiekexu-r1 STABLE2 ONLINE ONLINE jiekexu-r2 STABLEora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)1 ONLINE ONLINE jiekexu-r1 STABLE2 ONLINE ONLINE jiekexu-r2 STABLEora.DATA.dg(ora.asmgroup)1 ONLINE ONLINE jiekexu-r1 STABLE2 ONLINE ONLINE jiekexu-r2 STABLEora.LISTENER_SCAN1.lsnr1 ONLINE ONLINE jiekexu-r2 STABLEora.OCR.dg(ora.asmgroup)1 ONLINE ONLINE jiekexu-r1 STABLE2 ONLINE ONLINE jiekexu-r2 STABLEora.asm(ora.asmgroup)1 ONLINE ONLINE jiekexu-r1 Started,STABLE2 ONLINE ONLINE jiekexu-r2 Started,STABLEora.asmnet1.asmnetwork(ora.asmgroup)1 ONLINE ONLINE jiekexu-r1 STABLE2 ONLINE ONLINE jiekexu-r2 STABLEora.cvu1 ONLINE ONLINE jiekexu-r2 STABLEora.jiekexu-r1.vip1 ONLINE ONLINE jiekexu-r1 STABLEora.jiekexu-r2.vip1 ONLINE ONLINE jiekexu-r2 STABLEora.jiekexu.db1 ONLINE ONLINE jiekexu-r1 Open,HOME=/u01/app/oracle/product/19.0.0/dbhome_1,STABLE2 ONLINE ONLINE jiekexu-r2 Open,HOME=/u01/app/oracle/product/19.0.0/dbhome_1,STABLEora.qosmserver1 ONLINE ONLINE jiekexu-r2 STABLEora.scan1.vip1 ONLINE ONLINE jiekexu-r2 STABLEjiekexu-r1:/home/grid(+ASM1)$

8.5.2 监听状态查看

8.5.3 数据库信息查看
jiekexu-r1:/home/oracle(JiekeXu1)$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Thu Sep 2 18:05:30 2021Version 19.12.0.0.0Copyright (c) 1982, 2021, Oracle. All rights reserved.Connected to:Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - ProductionVersion 19.12.0.0.0SQL> set line 240col 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 OPENJiekeXu2 jiekexu-r2 19.0.0.0.0 2021-09-02 17:20:57 OPENElapsed: 00:00:00.02SQL> col status for a10SQL> col action for a10SQL> col action_time for a30SQL> col description for a60SQL> 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 pdbsCON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 JIEKEXUPDB1 READ WRITE NOSQL> col version for a25SQL> col comments for a80SQL> select ACTION_TIME,VERSION,COMMENTS from dba_registry_history;ACTION_TIME VERSION COMMENTS------------------------------ ------------------------- --------------------------------------------------------------------------------19 RDBMS_19.12.0.0.0DBRU_LINUX.X64_21071502-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 a88col Con_Name for a16set pages 345with Containers as (select PDB_ID Con_ID, PDB_Name Con_Name from DBA_PDBsunionselect 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)unionselect 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.10822194051 CDB$ROOT SYSTEM +DATA/JIEKEXU/DATAFILE/system.257.10822193011 CDB$ROOT TEMP +DATA/JIEKEXU/TEMPFILE/temp.264.10822195231 CDB$ROOT UNDOTBS1 +DATA/JIEKEXU/DATAFILE/undotbs1.259.10822194511 CDB$ROOT UNDOTBS2 +DATA/JIEKEXU/DATAFILE/undotbs2.269.10822218051 CDB$ROOT USERS +DATA/JIEKEXU/DATAFILE/users.260.10822194533 JIEKEXUPDB1 SYSAUX +DATA/JIEKEXU/CB00B60A29FFA77AE053814BA8C06D60/DATAFILE/sysaux.275.10822225073 JIEKEXUPDB1 SYSTEM +DATA/JIEKEXU/CB00B60A29FFA77AE053814BA8C06D60/DATAFILE/system.274.10822225073 JIEKEXUPDB1 TEMP +DATA/JIEKEXU/CB00B60A29FFA77AE053814BA8C06D60/TEMPFILE/temp.276.10822225133 JIEKEXUPDB1 UNDOTBS1 +DATA/JIEKEXU/CB00B60A29FFA77AE053814BA8C06D60/DATAFILE/undotbs1.273.10822225073 JIEKEXUPDB1 UNDO_2 +DATA/JIEKEXU/CB00B60A29FFA77AE053814BA8C06D60/DATAFILE/undo_2.277.10822225533 JIEKEXUPDB1 USERS +DATA/JIEKEXU/CB00B60A29FFA77AE053814BA8C06D60/DATAFILE/users.278.108222255712 rows selected.
8.6 SQL 连接提示符修改
cd $ORACLE_HOME/sqlplus/adminvi glogin.sqlset linesize 250set pagesize 9999col Name format a80col owner format a30col file_name for a88set termout offALTER SESSION SET nls_date_format = 'yyyy-mm-dd HH24:MI:SS';set termout onset serveroutput on size 1000000set long 2000set time onset timing ondefine _editor=viset 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_profilealias 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 每日一题系列合集





