19c 单节点修复

报错

bash 复制代码
2026-06-13 12:37:49.493 [OHASD(19996)]CRS-8500: Oracle Clusterware OHASD 进程以操作系统进程 ID 19996 开头
2026-06-13 12:37:49.575 [OHASD(19996)]CRS-0714: Oracle Clusterware 发行版 19.0.0.0.0。
2026-06-13 12:37:49.597 [OHASD(19996)]CRS-2112: 已在节点 newtest2 上启动 OLR 服务。
2026-06-13 12:37:49.819 [OHASD(19996)]CRS-1301: 已在节点 newtest2 上启动 Oracle 高可用性服务。
2026-06-13 12:37:49.819 [OHASD(19996)]CRS-8017: 位置: /etc/oracle/lastgasp 具有 2 个重新启动指导日志文件, 0 个已发布, 0 个出现错误
2026-06-13 12:37:50.321 [ORAAGENT(20069)]CRS-8500: Oracle Clusterware ORAAGENT 进程以操作系统进程 ID 20069 开头
2026-06-13 12:37:50.338 [CSSDAGENT(20086)]CRS-8500: Oracle Clusterware CSSDAGENT 进程以操作系统进程 ID 20086 开头
2026-06-13 12:37:50.351 [CSSDMONITOR(20090)]CRS-8500: Oracle Clusterware CSSDMONITOR 进程以操作系统进程 ID 20090 开头
2026-06-13 12:37:50.414 [CSSDAGENT(20086)]CRS-1726: 进程无法以实时优先级运行。详细信息见 (:CLSN00143 (位于 /u01/app/grid/diag/crs/newtest2/crs/trace/ohasd_cssdagent_root.trc)。
2026-06-13 12:37:50.430 [CSSDMONITOR(20090)]CRS-1726: 进程无法以实时优先级运行。详细信息见 (:CLSN00143 (位于 /u01/app/grid/diag/crs/newtest2/crs/trace/ohasd_cssdmonitor_root.trc)。
2026-06-13 12:37:50.369 [ORAROOTAGENT(20079)]CRS-8500: Oracle Clusterware ORAROOTAGENT 进程以操作系统进程 ID 20079 开头
2026-06-13 12:37:50.759 [ORAAGENT(20169)]CRS-8500: Oracle Clusterware ORAAGENT 进程以操作系统进程 ID 20169 开头
2026-06-13 12:37:50.959 [MDNSD(20191)]CRS-8500: Oracle Clusterware MDNSD 进程以操作系统进程 ID 20191 开头
2026-06-13 12:37:50.976 [EVMD(20194)]CRS-8500: Oracle Clusterware EVMD 进程以操作系统进程 ID 20194 开头
2026-06-13 12:37:52.025 [GPNPD(20229)]CRS-8500: Oracle Clusterware GPNPD 进程以操作系统进程 ID 20229 开头
2026-06-13 12:37:53.100 [GPNPD(20229)]CRS-2328: 已在节点 newtest2 上启动 GPNPD。
2026-06-13 12:37:53.070 [GIPCD(20296)]CRS-8500: Oracle Clusterware GIPCD 进程以操作系统进程 ID 20296 开头
2026-06-13 12:37:54.041 [GIPCD(20296)]CRS-7517: The Oracle Grid Interprocess Communication (GIPC) failed to identify the Fast Node Death Detection (FNDD).
2026-06-13 12:37:57.180 [OSYSMOND(20452)]CRS-8500: Oracle Clusterware OSYSMOND 进程以操作系统进程 ID 20452 开头
2026-06-13 12:37:57.163 [CSSDMONITOR(20450)]CRS-8500: Oracle Clusterware CSSDMONITOR 进程以操作系统进程 ID 20450 开头
2026-06-13 12:37:57.256 [CSSDMONITOR(20450)]CRS-1726: 进程无法以实时优先级运行。详细信息见 (:CLSN00143 (位于 /u01/app/grid/diag/crs/newtest2/crs/trace/ohasd_cssdmonitor_root.trc)。
2026-06-13 12:37:57.496 [CSSDAGENT(20490)]CRS-8500: Oracle Clusterware CSSDAGENT 进程以操作系统进程 ID 20490 开头
2026-06-13 12:37:57.576 [CSSDAGENT(20490)]CRS-1726: 进程无法以实时优先级运行。详细信息见 (:CLSN00143 (位于 /u01/app/grid/diag/crs/newtest2/crs/trace/ohasd_cssdagent_root.trc)。
2026-06-13 12:38:02.344 [OCSSD(20512)]CRS-8500: Oracle Clusterware OCSSD 进程以操作系统进程 ID 20512 开头
2026-06-13 12:38:03.447 [OCSSD(20512)]CRS-1713: CSSD 守护程序已在 hub 模式下启动
2026-06-13 12:38:03.497 [OCSSD(20512)]CRS-1726: 进程无法以实时优先级运行。详细信息见 (:CLSN00143 (位于 /u01/app/grid/diag/crs/newtest2/crs/trace/ocssd.trc)。
2026-06-13 12:38:03.498 [OCSSD(20512)]CRS-1656: CSS 守护程序由于致命错误而正在终止; 详细信息见 (:CSSSC00011 (位于 )
2026-06-13T12:38:04.521720+08:00
Errors in file /u01/app/grid/diag/crs/newtest2/crs/trace/ocssd.trc (incident=1201):
CRS-8503 [] [] [] [] [] [] [] [] [] [] [] []
Incident details in: /u01/app/grid/diag/crs/newtest2/crs/incident/incdir_1201/ocssd_i1201.trc

2026-06-13 12:38:04.500 [OCSSD(20512)]CRS-8503: Oracle Clusterware 进程 OCSSD (具有操作系统进程 ID 20512) 遇到致命信号或异常错误代码 6。
2026-06-13 12:38:05.562 [CSSDMONITOR(20839)]CRS-8500: Oracle Clusterware CSSDMONITOR 进程以操作系统进程 ID 20839 开头
2026-06-13 12:38:05.642 [CSSDMONITOR(20839)]CRS-1726: 进程无法以实时优先级运行。详细信息见 (:CLSN00143 (位于 /u01/app/grid/diag/crs/newtest2/crs/trace/ohasd_cssdmonitor_root.trc)。
2026-06-13 12:38:06.340 [CSSDAGENT(20865)]CRS-8500: Oracle Clusterware CSSDAGENT 进程以操作系统进程 ID 20865 开头
2026-06-13 12:38:06.425 [CSSDAGENT(20865)]CRS-1726: 进程无法以实时优先级运行。详细信息见 (:CLSN00143 (位于 /u01/app/grid/diag/crs/newtest2/crs/trace/ohasd_cssdagent_root.trc)。

原因
1.limits.conf缺失:grid用户未配置rtprio 99、memlock unlimited,原有配置仅做了进程数、文件句柄限制,遗漏集群必备实时调度、内存锁定参数
2.内核参数缺失:两台节点sysctl从未配置kernel.sched_rt_runtime_us=-1,系统默认950000限制实时CPU占用,即便ulimit生效,内核依旧拦截OCSSD调度
3.PAM模块缺失:newtest1节点/etc/pam.d/sshd未加载pam_limits.so,导致limits配置不生效,属于双节点配置不一致隐患
4.配置失效原理:19c OCSSD强制要求SCHED_FIFO实时优先级,内核+用户limits双重校验,任意一层不满足直接触发内部断言,主动自杀退出,OHASD检测到进程退出后自动重启集群,形成死循环

/etc/security/limits.conf
grid soft memlock unlimited
grid hard memlock unlimited
grid soft rtprio 99
grid hard rtprio 99
root soft rtprio 99
root hard rtprio 99

echo "kernel.sched_rt_period_us = 1000000" >> /etc/sysctl.conf
echo "kernel.sched_rt_runtime_us = -1" >> /etc/sysctl.conf
sysctl -p

节点多路径

bash 复制代码
[root@newtest2 ~]# cat /etc/multipath.conf
blacklist {
}
defaults {
        user_friendly_names no
        path_grouping_policy multibus
        failback immediate
        no_path_retry fail
}
multipaths {
       multipath {
               wwid                   36000c29e9fd236d3828b1d6c91137a2f
               alias                  OCR01
       }
       multipath {
               wwid                   36000c293e91da82b54703bd58d0dfc3d
               alias                  OCR02
       }
       multipath {
               wwid                   36000c29c3b6308755fa4629676745f68
               alias                  OCR03
       }
       multipath {
               wwid                   36000c29baf9098365284367f2c2f5ec5
               alias                  DATA01
       }
       multipath {
               wwid                   36000c299d492149cfca35df8a7fa18dc
               alias                  DATA02
       }

}
[root@newtest2 ~]# multipath -ll
DATA01 (36000c29baf9098365284367f2c2f5ec5) dm-6 VMware  ,Virtual disk    
size=2.0T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  `- 1:0:2:0 sdb 8:16  active ready running
OCR03 (36000c29c3b6308755fa4629676745f68) dm-4 VMware  ,Virtual disk    
size=10G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  `- 2:0:1:0 sdd 8:48  active ready running
OCR02 (36000c293e91da82b54703bd58d0dfc3d) dm-2 VMware  ,Virtual disk    
size=10G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  `- 2:0:2:0 sde 8:64  active ready running
OCR01 (36000c29e9fd236d3828b1d6c91137a2f) dm-5 VMware  ,Virtual disk    
size=10G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  `- 2:0:0:0 sdc 8:32  active ready running
DATA02 (36000c299d492149cfca35df8a7fa18dc) dm-3 VMware  ,Virtual disk    
size=1.0T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
  `- 1:0:1:0 sda 8:0   active ready running

[root@newtest2 ~]# cat /etc/udev/rules.d/99-clwasm.rules
KERNEL=="dm-*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36000c29c3b6308755fa4629676745f68",RUN+="/bin/sh -c 'mknod /dev/oraasm/ASMDISK202011273 b $major $minor;chown grid:asmadmin /dev/oraasm/ASMDISK202011273;chmod 660 /dev/oraasm/ASMDISK202011273"

KERNEL=="dm-*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36000c293e91da82b54703bd58d0dfc3d",RUN+="/bin/sh -c 'mknod /dev/oraasm/ASMDISK202011272 b $major $minor;chown grid:asmadmin /dev/oraasm/ASMDISK202011272;chmod 660 /dev/oraasm/ASMDISK202011272"

KERNEL=="dm-*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36000c29e9fd236d3828b1d6c91137a2f",RUN+="/bin/sh -c 'mknod /dev/oraasm/ASMDISK202011271 b $major $minor;chown grid:asmadmin /dev/oraasm/ASMDISK202011271;chmod 660 /dev/oraasm/ASMDISK202011271"

KERNEL=="dm-*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36000c29baf9098365284367f2c2f5ec5",RUN+="/bin/sh -c 'mknod /dev/oraasm/ASMDISK202011274 b $major $minor;chown grid:asmadmin /dev/oraasm/ASMDISK202011274;chmod 660 /dev/oraasm/ASMDISK202011274"

KERNEL=="dm-*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36000c299d492149cfca35df8a7fa18dc",RUN+="/bin/sh -c 'mknod /dev/oraasm/ASMDISK202011275 b $major $minor;chown grid:asmadmin /dev/oraasm/ASMDISK202011275;chmod 660 /dev/oraasm/ASMDISK202011275"

卸载坏死节点

bash 复制代码
[root@newtest1 rules.d]# /u01/app/19.0.0/grid/crs/install/
-bash: /u01/app/19.0.0/grid/crs/install/: Is a directory
[root@newtest1 rules.d]# /u01/app/19.0.0/grid/bin/crsctl stop crs -f
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'newtest1'
CRS-2673: Attempting to stop 'ora.mdnsd' on 'newtest1'
CRS-2673: Attempting to stop 'ora.cssdmonitor' on 'newtest1'
CRS-2673: Attempting to stop 'ora.crf' on 'newtest1'
CRS-2673: Attempting to stop 'ora.evmd' on 'newtest1'
CRS-2677: Stop of 'ora.cssdmonitor' on 'newtest1' succeeded
CRS-2673: Attempting to stop 'ora.gpnpd' on 'newtest1'
CRS-2677: Stop of 'ora.crf' on 'newtest1' succeeded
CRS-2673: Attempting to stop 'ora.gipcd' on 'newtest1'
CRS-2677: Stop of 'ora.mdnsd' on 'newtest1' succeeded
CRS-2677: Stop of 'ora.evmd' on 'newtest1' succeeded
CRS-2677: Stop of 'ora.gpnpd' on 'newtest1' succeeded
CRS-2677: Stop of 'ora.gipcd' on 'newtest1' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'newtest1' has completed
CRS-4133: Oracle High Availability Services has been stopped.
[root@newtest1 rules.d]# /u01/app/19.0.0/grid/bin/crsctl stop has -f
CRS-4639: Could not contact Oracle High Availability Services
CRS-4000: Command Stop failed, or completed with errors


[root@newtest1 rules.d]# cd /u01/app/19.0.0/grid/crs/install/
[root@newtest1 install]# ./rootcrs.sh -deconfig -force
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/newtest1/crsconfig/crsdeconfig_newtest1_2026-06-18_02-19-02PM.log
PRCR-1070 : Failed to check if resource ora.net1.network is registered
CRS-0184 : Cannot communicate with the CRS daemon.
PRCR-1070 : Failed to check if resource ora.helper is registered
CRS-0184 : Cannot communicate with the CRS daemon.
PRCR-1070 : Failed to check if resource ora.ons is registered
CRS-0184 : Cannot communicate with the CRS daemon.

2026/06/18 14:19:10 CLSRSC-180: An error occurred while executing the command '/u01/app/19.0.0/grid/bin/srvctl config nodeapps'
Redirecting to /bin/systemctl restart rsyslog.service
2026/06/18 14:19:26 CLSRSC-4006: Removing Oracle Trace File Analyzer (TFA) Collector.
2026/06/18 14:20:23 CLSRSC-4007: Successfully removed Oracle Trace File Analyzer (TFA) Collector.
2026/06/18 14:20:55 CLSRSC-336: Successfully deconfigured Oracle Clusterware stack on this node

清除缓存

bash 复制代码
rm -rf /u01/app/grid/crsdata/newtest1
rm -rf /u01/app/19.0.0/grid/gpnp/newtest1
rm -rf /etc/oracle /etc/oraInst.loc
rm -rf /tmp/.oracle /var/tmp/.oracle
rm -rf /u01/app/19.0.0/grid/log/newtest1/*

好节点,查看是否卸载干净

bash 复制代码
su - grid
export ORACLE_HOME=/u01/app/19.0.0/grid
$ORACLE_HOME/bin/olsnodes -s -t


[grid@newtest2 ~]$ echo $ORACLE_HOME
/u01/app/19.0.0/grid
[grid@newtest2 ~]$ $ORACLE_HOME/bin/olsnodes -s -t
newtest1	Inactive	Unpinned
newtest2	Active	Unpinned
[grid@newtest2 ~]$ 
[grid@newtest2 ~]$ 
[grid@newtest2 ~]$ 登出
[root@newtest2 rules.d]# su - oracle
Last login: Thu Jun 18 14:19:18 CST 2026
[oracle@newtest2 ~]$ echo $ORACLE_HOME
/u01/app/oracle/product/19.0.0/dbhome_1
[oracle@newtest2 ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jun 18 14:30:24 2026
Version 19.18.0.0.0

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


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

SQL> alter user sys identified by oracle_123;

User altered.


[oracle@newtest2 ~]$ $ORACLE_HOME/bin/dbca -silent -deleteInstance -gdbName ractest -nodeName newtest1 -instanceName ractest1 -sysDBAUserName sys -sysDBAPassword "oracle_123"
[WARNING] [DBT-19203] Database Configuration Assistant 将删除 Oracle 实例及其关联的 OFA 目录结构。所有有关此实例的信息都将被删除。

准备执行数据库操作
已完成 40%
正在删除实例
已完成 48%
已完成 52%
已完成 56%
已完成 60%
已完成 64%
已完成 68%
已完成 72%
已完成 76%
已完成 80%
正在进行实例管理。
已完成 100%
已成功从节点 "newtest1" 中删除实例 "ractest1"。
有关详细信息, 请参阅日志文件 "/u01/app/oracle/cfgtoollogs/dbca/ractest/ractest.log"。



[root@newtest2 rules.d]# su - grid
Last login: Thu Jun 18 14:28:17 CST 2026 on pts/2
[grid@newtest2 ~]$ olsnodes -s -t
newtest1	Inactive	Unpinned
newtest2	Active	Unpinned
[grid@newtest2 ~]$ crsctl check cluster -all
**************************************************************
newtest2:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
[grid@newtest2 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       newtest2                 STABLE
ora.chad
               ONLINE  ONLINE       newtest2                 STABLE
ora.net1.network
               ONLINE  ONLINE       newtest2                 STABLE
ora.ons
               ONLINE  ONLINE       newtest2                 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       newtest2                 STABLE
      2        ONLINE  OFFLINE                               STABLE
      3        ONLINE  OFFLINE                               STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       newtest2                 STABLE
      2        OFFLINE OFFLINE                               STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       newtest2                 STABLE
ora.OCR.dg(ora.asmgroup)
      1        ONLINE  ONLINE       newtest2                 STABLE
      2        OFFLINE OFFLINE                               STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       newtest2                 Started,STABLE
      2        ONLINE  OFFLINE                               STABLE
      3        ONLINE  OFFLINE                               STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       newtest2                 STABLE
      2        ONLINE  OFFLINE                               STABLE
      3        ONLINE  OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       newtest2                 STABLE
ora.newtest1.vip
      1        ONLINE  INTERMEDIATE newtest2                 FAILED OVER,STABLE
ora.newtest2.vip
      1        ONLINE  ONLINE       newtest2                 STABLE
ora.qosmserver
      1        ONLINE  ONLINE       newtest2                 STABLE
ora.ractest.db
      1        ONLINE  ONLINE       newtest2                 Open,HOME=/u01/app/o
                                                             racle/product/19.0.0
                                                             /dbhome_1,STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       newtest2                 STABLE
--------------------------------------------------------------------------------
[grid@newtest2 ~]$ ocrcheck
Status of Oracle Cluster Registry is as follows :
	 Version                  :          4
	 Total space (kbytes)     :     491684
	 Used space (kbytes)      :      84304
	 Available space (kbytes) :     407380
	 ID                       :  601533721
	 Device/File Name         :       +OCR
                                    Device/File integrity check succeeded

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

	 Cluster registry integrity check succeeded

	 Logical corruption check bypassed due to non-privileged user

[grid@newtest2 ~]$ crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   c45619e51d3e4fe6bf60529505dd5b7b (/dev/oraasm/ASMDISK202011271) [OCR]
 2. ONLINE   9f6ec714e04b4fa7bf6f5c6a99e81a3c (/dev/oraasm/ASMDISK202011273) [OCR]
 3. ONLINE   71e93f5453514f49bf0de732e1c44a7d (/dev/oraasm/ASMDISK202011272) [OCR]
Located 3 voting disk(s).
[grid@newtest2 ~]$ cluvfy comp ocr -n all -verbose
This software is "1252" days old. It is a best practice to update the CRS home by downloading and applying the latest release update. Refer to MOS note 756671.1 for more details.

Performing following verification checks ...

  OCR 完整性 ...WARNING (PRVG-6017)

OCR 完整性 的验证成功。


执行 CVU 验证请求 "OCR 完整性" 时出现警告。

OCR 完整性 ...WARNING
PRVG-6017 : OCR backup is located in the same disk group "+OCR" as OCR.


CVU 操作已执行:                    OCR 完整性
日期:                           2026-6-18 14:37:50
CVU version:                  19.18.0.0.0 (011323x8664)
集群件版本:                        19.0.0.0.0
CVU 主目录:                      /u01/app/19.0.0/grid
网格主目录:                        /u01/app/19.0.0/grid
用户:                           grid
操作系统:                         Linux3.10.0-1160.66.1.el7.x86_64
[grid@newtest2 ~]$ 

从ocr中彻底删除坏节点信息

bash 复制代码
root@newtest2 rules.d]# $GI_HOME/bin/srvctl remove vip -i newtest1-vip -f
[root@newtest2 rules.d]# $GI_HOME/bin/crsctl delete node -n newtest1
CRS-4661: Node newtest1 successfully deleted.
[root@newtest2 rules.d]# $GI_HOME/bin/olsnodes -s -t
newtest2	Active	Unpinned
[root@newtest2 rules.d]# 


更新节点2 grid清单
grid@newtest2 bin]$ export GI_HOME=/u01/app/19.0.0/grid
[grid@newtest2 bin]$ cd $GI_HOME/oui/bin
[grid@newtest2 bin]$ ./runInstaller -updateNodeList ORACLE_HOME=$GI_HOME "CLUSTER_NODES={newtest2}" CRS=TRUE -silent -local
正在启动 Oracle Universal Installer...

检查交换空间: 必须大于 500 MB。   实际为 16383 MB    通过
The inventory pointer is located at /etc/oraInst.loc
可以在以下位置找到本次安装会话的日志:
 /u01/app/oraInventory/logs/UpdateNodeList2026-06-18_02-50-20PM.log
'UpdateNodeList' 成功。

[oracle@newtest2 ~]$ export DB_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
[oracle@newtest2 ~]$ cd $DB_HOME/oui/bin
[oracle@newtest2 bin]$ 
[oracle@newtest2 bin]$ 
[oracle@newtest2 bin]$ 
[oracle@newtest2 bin]$ 
[oracle@newtest2 bin]$ ./runInstaller -updateNodeList ORACLE_HOME=$DB_HOME "CLUSTER_NODES={newtest2}" -silent -local
正在启动 Oracle Universal Installer...

检查交换空间: 必须大于 500 MB。   实际为 16383 MB    通过
The inventory pointer is located at /etc/oraInst.loc
可以在以下位置找到本次安装会话的日志:
 /u01/app/oraInventory/logs/UpdateNodeList2026-06-18_02-52-37PM.log
'UpdateNodeList' 成功。


新增节点 newtest1 流程
[grid@newtest2 ~]$ export ORACLE_HOME=/u01/app/19.0.0/grid
[grid@newtest2 ~]$ $ORACLE_HOME/bin/cluvfy  comp peer -refnode newtest2 -n newtest1 -verbose

This software is "1252" days old. It is a best practice to update the CRS home by downloading and applying the latest release update. Refer to MOS note 756671.1 for more details.









Performing following verification checks ...

  对等兼容性 ...
    物理内存 ...通过
兼容性检查: 物理内存 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      188.7492GB (1.97917868E8KB)  188.7492GB (1.97917868E8KB)  匹配        
物理内存 <null>


    可用内存 ...通过
兼容性检查: 可用内存 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      185.7412GB (1.9476378E8KB)  100.5167GB (1.0539944E8KB)  匹配        
可用内存 <null>


    交换空间 ...通过
兼容性检查: 交换空间 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      16GB (1.6777212E7KB)      16GB (1.6777212E7KB)      匹配        
交换空间 <null>


    空闲空间 ...通过
兼容性检查: "/usr" 的 空闲磁盘空间 [引用节点: newtest2]

  节点名               路径            装载点           状态            引用节点状态        注释          
  ----------------  ------------  ------------  ------------  ------------  ------------
  newtest1          /usr          /             37.8721GB (3.9711744E7KB)  23.0098GB (2.4127488E7KB)  匹配          
空闲磁盘空间 匹配
兼容性检查: "/var" 的 空闲磁盘空间 [引用节点: newtest2]

  节点名               路径            装载点           状态            引用节点状态        注释          
  ----------------  ------------  ------------  ------------  ------------  ------------
  newtest1          /var          /             37.8721GB (3.9711744E7KB)  23.0098GB (2.4127488E7KB)  匹配          
空闲磁盘空间 匹配
兼容性检查: "/etc" 的 空闲磁盘空间 [引用节点: newtest2]

  节点名               路径            装载点           状态            引用节点状态        注释          
  ----------------  ------------  ------------  ------------  ------------  ------------
  newtest1          /etc          /             37.8721GB (3.9711744E7KB)  23.0098GB (2.4127488E7KB)  匹配          
空闲磁盘空间 匹配
兼容性检查: "/sbin" 的 空闲磁盘空间 [引用节点: newtest2]

  节点名               路径            装载点           状态            引用节点状态        注释          
  ----------------  ------------  ------------  ------------  ------------  ------------
  newtest1          /sbin         /             37.8721GB (3.9711744E7KB)  23.0098GB (2.4127488E7KB)  匹配          
空闲磁盘空间 匹配
兼容性检查: "/tmp" 的 空闲磁盘空间 [引用节点: newtest2]

  节点名               路径            装载点           状态            引用节点状态        注释          
  ----------------  ------------  ------------  ------------  ------------  ------------
  newtest1          /tmp          /             37.8721GB (3.9711744E7KB)  23.0098GB (2.4127488E7KB)  匹配          
空闲磁盘空间 匹配


    "grid" 的用户存在性 ...通过
兼容性检查: "grid" 的用户存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      grid(1002)                grid(1002)                匹配        
"grid" 的用户存在性 检查已通过


    "dba" 的组存在性 ...通过
兼容性检查: "dba" 的组存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      dba(1002)                 dba(1002)                 匹配        
"dba" 的组存在性 检查已通过


    "dba" 中 "grid" 的组成员资格 ...通过
兼容性检查: "dba" 中 "grid" 的组成员资格 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      是                         是                         匹配        
"dba" 中 "grid" 的组成员资格 检查已通过


    运行级别 ...通过
兼容性检查: 运行级别 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      3                         3                         匹配        
运行级别 检查已通过


    系统体系结构 ...通过
兼容性检查: 系统体系结构 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      x86_64                    x86_64                    匹配        
系统体系结构 检查已通过


    内核版本 ...通过
兼容性检查: 内核版本 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      3.10.0-1160.66.1.el7.x86_64  3.10.0-1160.66.1.el7.x86_64  匹配        
内核版本 检查已通过


    内核参数 "semmsl" ...通过
兼容性检查: 内核参数 "semmsl" [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      250                       250                       匹配        
内核参数 "semmsl" 检查已通过


    内核参数 "semmns" ...通过
兼容性检查: 内核参数 "semmns" [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      32000                     32000                     匹配        
内核参数 "semmns" 检查已通过


    内核参数 "semopm" ...通过
兼容性检查: 内核参数 "semopm" [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      32                        32                        匹配        
内核参数 "semopm" 检查已通过


    内核参数 "semmni" ...通过
兼容性检查: 内核参数 "semmni" [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      128                       128                       匹配        
内核参数 "semmni" 检查已通过


    内核参数 "shmmax" ...通过
兼容性检查: 内核参数 "shmmax" [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      18446744073692774000      18446744073692774000      匹配        
内核参数 "shmmax" 检查已通过


    内核参数 "shmmni" ...通过
兼容性检查: 内核参数 "shmmni" [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      4096                      4096                      匹配        
内核参数 "shmmni" 检查已通过


    内核参数 "shmall" ...通过
兼容性检查: 内核参数 "shmall" [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      0                         0                         匹配        
内核参数 "shmall" 检查已通过


    内核参数 "file-max" ...通过
兼容性检查: 内核参数 "file-max" [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      19490595                  19490594                  匹配        
内核参数 "file-max" 检查已通过


    内核参数 "ip_local_port_range" ...通过
兼容性检查: 内核参数 "ip_local_port_range" [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      32768 60999               32768 60999               匹配        
内核参数 "ip_local_port_range" 检查已通过


    内核参数 "rmem_default" ...通过
兼容性检查: 内核参数 "rmem_default" [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      212992                    212992                    匹配        
内核参数 "rmem_default" 检查已通过


    内核参数 "rmem_max" ...通过
兼容性检查: 内核参数 "rmem_max" [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      212992                    212992                    匹配        
内核参数 "rmem_max" 检查已通过


    内核参数 "wmem_default" ...通过
兼容性检查: 内核参数 "wmem_default" [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      212992                    212992                    匹配        
内核参数 "wmem_default" 检查已通过


    内核参数 "wmem_max" ...通过
兼容性检查: 内核参数 "wmem_max" [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      212992                    212992                    匹配        
内核参数 "wmem_max" 检查已通过


    内核参数 "aio-max-nr" ...通过
兼容性检查: 内核参数 "aio-max-nr" [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      1048576                   1048576                   匹配        
内核参数 "aio-max-nr" 检查已通过


    "kmod (x86_64)" 的程序包存在性 ...通过
兼容性检查: "kmod (x86_64)" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      kmod-20-28.el7 (x86_64)   kmod-20-28.el7 (x86_64)   匹配        
"kmod (x86_64)" 的程序包存在性 检查已通过


    "kmod-libs (x86_64)" 的程序包存在性 ...通过
兼容性检查: "kmod-libs (x86_64)" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      kmod-libs-20-28.el7 (x86_64)  kmod-libs-20-28.el7 (x86_64)  匹配        
"kmod-libs (x86_64)" 的程序包存在性 检查已通过


    "binutils" 的程序包存在性 ...通过
兼容性检查: "binutils" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      binutils-2.27-44.base.el7_9.1  binutils-2.27-44.base.el7_9.1  匹配        
"binutils" 的程序包存在性 检查已通过


    "libgcc (x86_64)" 的程序包存在性 ...通过
兼容性检查: "libgcc (x86_64)" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      libgcc-4.8.5-44.el7 (x86_64)  libgcc-4.8.5-44.el7 (x86_64)  匹配        
"libgcc (x86_64)" 的程序包存在性 检查已通过


    "libstdc++ (x86_64)" 的程序包存在性 ...通过
兼容性检查: "libstdc++ (x86_64)" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      libstdc++-4.8.5-44.el7 (x86_64)  libstdc++-4.8.5-44.el7 (x86_64)  匹配        
"libstdc++ (x86_64)" 的程序包存在性 检查已通过


    "sysstat" 的程序包存在性 ...通过
兼容性检查: "sysstat" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      sysstat-10.1.5-19.el7     sysstat-10.1.5-19.el7     匹配        
"sysstat" 的程序包存在性 检查已通过


    "ksh" 的程序包存在性 ...通过
兼容性检查: "ksh" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      ksh-20120801-143.el7_9    ksh-20120801-143.el7_9    匹配        
"ksh" 的程序包存在性 检查已通过


    "make" 的程序包存在性 ...通过
兼容性检查: "make" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      make-3.82-24.el7          make-3.82-24.el7          匹配        
"make" 的程序包存在性 检查已通过


    "glibc (x86_64)" 的程序包存在性 ...通过
兼容性检查: "glibc (x86_64)" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      glibc-2.17-326.el7_9 (x86_64)  glibc-2.17-326.el7_9 (x86_64)  匹配        
"glibc (x86_64)" 的程序包存在性 检查已通过


    "glibc-devel (x86_64)" 的程序包存在性 ...通过
兼容性检查: "glibc-devel (x86_64)" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      glibc-devel-2.17-326.el7_9 (x86_64)  glibc-devel-2.17-326.el7_9 (x86_64)  匹配        
"glibc-devel (x86_64)" 的程序包存在性 检查已通过


    "libaio (x86_64)" 的程序包存在性 ...通过
兼容性检查: "libaio (x86_64)" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      libaio-0.3.109-13.el7 (x86_64)  libaio-0.3.109-13.el7 (x86_64)  匹配        
"libaio (x86_64)" 的程序包存在性 检查已通过


    "nfs-utils" 的程序包存在性 ...通过
兼容性检查: "nfs-utils" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      nfs-utils-1.3.0-0.68.el7.2  nfs-utils-1.3.0-0.68.el7.2  匹配        
"nfs-utils" 的程序包存在性 检查已通过


    "smartmontools" 的程序包存在性 ...通过
兼容性检查: "smartmontools" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      smartmontools-7.0-2.el7   smartmontools-7.0-2.el7   匹配        
"smartmontools" 的程序包存在性 检查已通过


    "net-tools" 的程序包存在性 ...通过
兼容性检查: "net-tools" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      net-tools-2.0-0.25.20131004git.el7  net-tools-2.0-0.25.20131004git.el7  匹配        
"net-tools" 的程序包存在性 检查已通过


    "libxcb (x86_64)" 的程序包存在性 ...通过
兼容性检查: "libxcb (x86_64)" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      libxcb-1.13-1.el7 (x86_64)  libxcb-1.13-1.el7 (x86_64)  匹配        
"libxcb (x86_64)" 的程序包存在性 检查已通过


    "libX11 (x86_64)" 的程序包存在性 ...通过
兼容性检查: "libX11 (x86_64)" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      libX11-1.6.7-4.el7_9 (x86_64)  libX11-1.6.7-4.el7_9 (x86_64)  匹配        
"libX11 (x86_64)" 的程序包存在性 检查已通过


    "libXau (x86_64)" 的程序包存在性 ...通过
兼容性检查: "libXau (x86_64)" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      libXau-1.0.8-2.1.el7 (x86_64)  libXau-1.0.8-2.1.el7 (x86_64)  匹配        
"libXau (x86_64)" 的程序包存在性 检查已通过


    "libXi (x86_64)" 的程序包存在性 ...通过
兼容性检查: "libXi (x86_64)" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      libXi-1.7.9-1.el7 (x86_64)  libXi-1.7.9-1.el7 (x86_64)  匹配        
"libXi (x86_64)" 的程序包存在性 检查已通过


    "libXtst (x86_64)" 的程序包存在性 ...通过
兼容性检查: "libXtst (x86_64)" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      libXtst-1.2.3-1.el7 (x86_64)  libXtst-1.2.3-1.el7 (x86_64)  匹配        
"libXtst (x86_64)" 的程序包存在性 检查已通过


    "policycoreutils-python" 的程序包存在性 ...通过
兼容性检查: "policycoreutils-python" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      policycoreutils-python-2.5-34.el7  policycoreutils-python-2.5-34.el7  匹配        
"policycoreutils-python" 的程序包存在性 检查已通过


    "policycoreutils" 的程序包存在性 ...通过
兼容性检查: "policycoreutils" 的程序包存在性 [引用节点: newtest2]

  节点名           状态                        引用节点状态                    注释        
  ------------  ------------------------  ------------------------  ----------
  newtest1      policycoreutils-2.5-34.el7  policycoreutils-2.5-34.el7  匹配        
"policycoreutils" 的程序包存在性 检查已通过


  对等兼容性 ...通过

对等兼容性 的验证成功。

CVU 操作已执行:                    对等兼容性
日期:                           2026-6-18 15:28:03
CVU version:                  19.18.0.0.0 (011323x8664)
集群件版本:                        19.0.0.0.0
CVU 主目录:                      /u01/app/19.0.0/grid
网格主目录:                        /u01/app/19.0.0/grid
用户:                           grid
操作系统:                         Linux3.10.0-1160.66.1.el7.x86_64
[grid@newtest2 ~]$ 

全量预检查

bash 复制代码
[grid@newtest2 ~]$ $ORACLE_HOME/bin/cluvfy  stage -pre nodeadd -n newtest1 -verbose
This software is "1252" days old. It is a best practice to update the CRS home by downloading and applying the latest release update. Refer to MOS note 756671.1 for more details.

Performing following verification checks ...

  物理内存 ...
  节点名           可用                        必需                        状态        
  ------------  ------------------------  ------------------------  ----------
  newtest1      188.7492GB (1.97917868E8KB)  8GB (8388608.0KB)         通过        
  newtest2      188.7492GB (1.97917868E8KB)  8GB (8388608.0KB)         通过        
  物理内存 ...通过
  可用物理内存 ...
  节点名           可用                        必需                        状态        
  ------------  ------------------------  ------------------------  ----------
  newtest1      185.7418GB (1.94764424E8KB)  50MB (51200.0KB)          通过        
  newtest2      100.362GB (1.0523716E8KB)  50MB (51200.0KB)          通过        
  可用物理内存 ...通过
  交换空间大小 ...
  节点名           可用                        必需                        状态        
  ------------  ------------------------  ------------------------  ----------
  newtest1      16GB (1.6777212E7KB)      16GB (1.6777216E7KB)      通过        
  newtest2      16GB (1.6777212E7KB)      16GB (1.6777216E7KB)      通过        
  交换空间大小 ...通过
  空闲空间: newtest1:/usr,newtest1:/var,newtest1:/etc,newtest1:/sbin,newtest1:/tmp ...
  路径                节点名           装载点           可用            必需            状态          
  ----------------  ------------  ------------  ------------  ------------  ------------
  /usr              newtest1      /             37.8711GB     25MB          通过          
  /var              newtest1      /             37.8711GB     5MB           通过          
  /etc              newtest1      /             37.8711GB     25MB          通过          
  /sbin             newtest1      /             37.8711GB     10MB          通过          
  /tmp              newtest1      /             37.8711GB     1GB           通过          
  空闲空间: newtest1:/usr,newtest1:/var,newtest1:/etc,newtest1:/sbin,newtest1:/tmp ...通过
  空闲空间: newtest1:/u01/app/19.0.0/grid ...
  路径                节点名           装载点           可用            必需            状态          
  ----------------  ------------  ------------  ------------  ------------  ------------
  /u01/app/19.0.0/grid  newtest1      /u01          41.7939GB     6.9GB         通过          
  空闲空间: newtest1:/u01/app/19.0.0/grid ...通过
  空闲空间: newtest2:/usr,newtest2:/var,newtest2:/etc,newtest2:/sbin,newtest2:/tmp ...
  路径                节点名           装载点           可用            必需            状态          
  ----------------  ------------  ------------  ------------  ------------  ------------
  /usr              newtest2      /             23.0127GB     25MB          通过          
  /var              newtest2      /             23.0127GB     5MB           通过          
  /etc              newtest2      /             23.0127GB     25MB          通过          
  /sbin             newtest2      /             23.0127GB     10MB          通过          
  /tmp              newtest2      /             23.0127GB     1GB           通过          
  空闲空间: newtest2:/usr,newtest2:/var,newtest2:/etc,newtest2:/sbin,newtest2:/tmp ...通过
  空闲空间: newtest2:/u01/app/19.0.0/grid ...
  路径                节点名           装载点           可用            必需            状态          
  ----------------  ------------  ------------  ------------  ------------  ------------
  /u01/app/19.0.0/grid  newtest2      /u01          79.5586GB     6.9GB         通过          
  空闲空间: newtest2:/u01/app/19.0.0/grid ...通过
  用户存在性: oracle ...
  节点名           状态                        注释                      
  ------------  ------------------------  ------------------------
  newtest1      通过                        存在(1001)                
  newtest2      通过                        存在(1001)                

    具有相同 UID 的用户: 1001 ...通过
  用户存在性: oracle ...通过
  用户存在性: grid ...
  节点名           状态                        注释                      
  ------------  ------------------------  ------------------------
  newtest1      通过                        存在(1002)                
  newtest2      通过                        存在(1002)                

    具有相同 UID 的用户: 1002 ...通过
  用户存在性: grid ...通过
  用户存在性: root ...
  节点名           状态                        注释                      
  ------------  ------------------------  ------------------------
  newtest1      通过                        存在(0)                   
  newtest2      通过                        存在(0)                   

    具有相同 UID 的用户: 0 ...通过
  用户存在性: root ...通过
  组存在性: asmadmin ...
  节点名           状态                        注释                      
  ------------  ------------------------  ------------------------
  newtest1      通过                        存在                      
  newtest2      通过                        存在                      
  组存在性: asmadmin ...通过
  组存在性: asmoper ...
  节点名           状态                        注释                      
  ------------  ------------------------  ------------------------
  newtest1      通过                        存在                      
  newtest2      通过                        存在                      
  组存在性: asmoper ...通过
  组存在性: asmdba ...
  节点名           状态                        注释                      
  ------------  ------------------------  ------------------------
  newtest1      通过                        存在                      
  newtest2      通过                        存在                      
  组存在性: asmdba ...通过
  组存在性: oinstall ...
  节点名           状态                        注释                      
  ------------  ------------------------  ------------------------
  newtest1      通过                        存在                      
  newtest2      通过                        存在                      
  组存在性: oinstall ...通过
  组成员资格: oinstall ...
  节点名               用户存在          组存在           组中的用户         状态              
  ----------------  ------------  ------------  ------------  ----------------
  newtest1          是             是             是             通过              
  newtest2          是             是             是             通过              
  组成员资格: oinstall ...通过
  组成员资格: asmdba ...
  节点名               用户存在          组存在           组中的用户         状态              
  ----------------  ------------  ------------  ------------  ----------------
  newtest1          是             是             是             通过              
  newtest2          是             是             是             通过              
  组成员资格: asmdba ...通过
  组成员资格: asmadmin ...
  节点名               用户存在          组存在           组中的用户         状态              
  ----------------  ------------  ------------  ------------  ----------------
  newtest1          是             是             是             通过              
  newtest2          是             是             是             通过              
  组成员资格: asmadmin ...通过
  组成员资格: asmoper ...
  节点名               用户存在          组存在           组中的用户         状态              
  ----------------  ------------  ------------  ------------  ----------------
  newtest1          是             是             是             通过              
  newtest2          是             是             是             通过              
  组成员资格: asmoper ...通过
  运行级别 ...
  节点名           运行级别                      必需                        状态        
  ------------  ------------------------  ------------------------  ----------
  newtest1      3                         3,5                       通过        
  newtest2      3                         3,5                       通过        
  运行级别 ...通过
  硬性限制: 打开的文件描述符的最大数 ...
  节点名               类型            可用            必需            状态              
  ----------------  ------------  ------------  ------------  ----------------
  newtest1          硬性            65536         65536         通过              
  newtest2          硬性            65536         65536         通过              
  硬性限制: 打开的文件描述符的最大数 ...通过
  软性限制: 打开的文件描述符的最大数 ...
  节点名               类型            可用            必需            状态              
  ----------------  ------------  ------------  ------------  ----------------
  newtest1          软性            1024          1024          通过              
  newtest2          软性            65536         1024          通过              
  软性限制: 打开的文件描述符的最大数 ...通过
  硬性限制: 最大用户进程数 ...
  节点名               类型            可用            必需            状态              
  ----------------  ------------  ------------  ------------  ----------------
  newtest1          硬性            16384         16384         通过              
  newtest2          硬性            131072        16384         通过              
  硬性限制: 最大用户进程数 ...通过
  软性限制: 最大用户进程数 ...
  节点名               类型            可用            必需            状态              
  ----------------  ------------  ------------  ------------  ----------------
  newtest1          软性            2047          2047          通过              
  newtest2          软性            131072        2047          通过              
  软性限制: 最大用户进程数 ...通过
  软性限制: 最大堆栈大小 ...
  节点名               类型            可用            必需            状态              
  ----------------  ------------  ------------  ------------  ----------------
  newtest1          软性            10240         10240         通过              
  newtest2          软性            10240         10240         通过              
  软性限制: 最大堆栈大小 ...通过
  体系结构 ...
  节点名           可用                        必需                        状态        
  ------------  ------------------------  ------------------------  ----------
  newtest1      x86_64                    x86_64                    通过        
  newtest2      x86_64                    x86_64                    通过        
  体系结构 ...通过
  操作系统内核版本 ...
  节点名           可用                        必需                        状态        
  ------------  ------------------------  ------------------------  ----------
  newtest1      3.10.0-1160.66.1.el7.x86_64  3.10.0                    通过        
  newtest2      3.10.0-1160.66.1.el7.x86_64  3.10.0                    通过        
  操作系统内核版本 ...通过
  操作系统内核参数: semmsl ...
  节点名               当前值           已配置           必需            状态            注释          
  ----------------  ------------  ------------  ------------  ------------  ------------
  newtest1          250           未定义           250           通过              
  newtest2          250           未定义           250           通过              
  操作系统内核参数: semmsl ...通过
  操作系统内核参数: semmns ...
  节点名               当前值           已配置           必需            状态            注释          
  ----------------  ------------  ------------  ------------  ------------  ------------
  newtest1          32000         未定义           32000         通过              
  newtest2          32000         未定义           32000         通过              
  操作系统内核参数: semmns ...通过
  操作系统内核参数: semopm ...
  节点名               当前值           已配置           必需            状态            注释          
  ----------------  ------------  ------------  ------------  ------------  ------------
  newtest1          32            未定义           100           失败            当前值不正确。     
  newtest2          32            未定义           100           失败            当前值不正确。     
  操作系统内核参数: semopm ...失败 (PRVG-1205)
  操作系统内核参数: semmni ...
  节点名               当前值           已配置           必需            状态            注释          
  ----------------  ------------  ------------  ------------  ------------  ------------
  newtest1          128           未定义           128           通过              
  newtest2          128           未定义           128           通过              
  操作系统内核参数: semmni ...通过
  操作系统内核参数: shmmax ...
  节点名               当前值           已配置           必需            状态            注释          
  ----------------  ------------  ------------  ------------  ------------  ------------
  newtest1          18446744073692774000  未定义           101333948416  通过              
  newtest2          18446744073692774000  未定义           101333948416  通过              
  操作系统内核参数: shmmax ...通过
  操作系统内核参数: shmmni ...
  节点名               当前值           已配置           必需            状态            注释          
  ----------------  ------------  ------------  ------------  ------------  ------------
  newtest1          4096          未定义           4096          通过              
  newtest2          4096          未定义           4096          通过              
  操作系统内核参数: shmmni ...通过
  操作系统内核参数: shmall ...
  节点名               当前值           已配置           必需            状态            注释          
  ----------------  ------------  ------------  ------------  ------------  ------------
  newtest1          18446744073692774000  未定义           2251799813685248  通过              
  newtest2          18446744073692774000  未定义           2251799813685248  通过              
  操作系统内核参数: shmall ...通过
  操作系统内核参数: file-max ...
  节点名               当前值           已配置           必需            状态            注释          
  ----------------  ------------  ------------  ------------  ------------  ------------
  newtest1          19490595      未定义           6815744       通过              
  包: libXau-1.0.8 (x86_64) ...
  节点名           可用                        必需                        状态        
  ------------  ------------------------  ------------------------  ----------
  newtest1      libXau(x86_64)-1.0.8-2.1.el7  libXau(x86_64)-1.0.8      通过        
  newtest2      libXau(x86_64)-1.0.8-2.1.el7  libXau(x86_64)-1.0.8      通过        
  包: libXau-1.0.8 (x86_64) ...通过
  包: libXi-1.7.4 (x86_64) ...
  节点名           可用                        必需                        状态        
  ------------  ------------------------  ------------------------  ----------
  newtest1      libXi(x86_64)-1.7.9-1.el7  libXi(x86_64)-1.7.4       通过        
  newtest2      libXi(x86_64)-1.7.9-1.el7  libXi(x86_64)-1.7.4       通过        
  包: libXi-1.7.4 (x86_64) ...通过
  包: libXtst-1.2.2 (x86_64) ...
  节点名           可用                        必需                        状态        
  ------------  ------------------------  ------------------------  ----------
  newtest1      libXtst(x86_64)-1.2.3-1.el7  libXtst(x86_64)-1.2.2     通过        
  newtest2      libXtst(x86_64)-1.2.3-1.el7  libXtst(x86_64)-1.2.2     通过        
  包: libXtst-1.2.2 (x86_64) ...通过
  包: policycoreutils-python-2.5-17 ...
  节点名           可用                        必需                        状态        
  ------------  ------------------------  ------------------------  ----------
  newtest1      policycoreutils-python-2.5-34.el7  policycoreutils-python-2.5-17  通过        
  newtest2      policycoreutils-python-2.5-34.el7  policycoreutils-python-2.5-17  通过        
  包: policycoreutils-python-2.5-17 ...通过
  包: policycoreutils-2.5-17 ...
  节点名           可用                        必需                        状态        
  ------------  ------------------------  ------------------------  ----------
  newtest1      policycoreutils-2.5-34.el7  policycoreutils-2.5-17    通过        
  newtest2      policycoreutils-2.5-34.el7  policycoreutils-2.5-17    通过        
  包: policycoreutils-2.5-17 ...通过
  具有相同 UID 的用户: 0 ...通过
  当前组 ID ...通过
  Root 用户一致性 ...
  节点名                                   状态                      
  ------------------------------------  ------------------------
  newtest1                              通过                      
  newtest2                              通过                      
  Root 用户一致性 ...通过
  包: cvuqdisk-1.0.10-1 ...
  节点名           可用                        必需                        状态        
  ------------  ------------------------  ------------------------  ----------
  newtest1      缺失                        cvuqdisk-1.0.10-1         失败        
  newtest2      cvuqdisk-1.0.10-1         cvuqdisk-1.0.10-1         通过        
  包: cvuqdisk-1.0.10-1 ...失败 (PRVG-11550)
  添加节点 ...
    CRS 完整性 ...通过
    集群件版本一致性 ...通过
    '/u01/app/19.0.0/grid' ...通过
  添加节点 ...通过
  主机名 ...通过
  节点连接性 ...
    主机文件 ...
  节点名                                   状态                      
  ------------------------------------  ------------------------
  newtest2                              通过                      
  newtest1                              通过                      
    主机文件 ...通过

节点 "newtest1" 的接口信息

 名称     IP 地址           子网              网关              默认网关            HW 地址             MTU   
 ------ --------------- --------------- --------------- --------------- ----------------- ------
 ens160 172.16.130.106  172.16.130.0    0.0.0.0         172.16.130.1    00:50:56:A7:EE:3C 1500  
 ens192 1.1.1.1         1.1.1.0         0.0.0.0         172.16.130.1    00:50:56:A7:F8:B9 1500  

节点 "newtest2" 的接口信息

 名称     IP 地址           子网              网关              默认网关            HW 地址             MTU   
 ------ --------------- --------------- --------------- --------------- ----------------- ------
 ens160 172.16.130.107  172.16.130.0    0.0.0.0         172.16.130.1    00:50:56:A7:A6:AE 1500  
 ens160 172.16.130.119  172.16.130.0    0.0.0.0         172.16.130.1    00:50:56:A7:A6:AE 1500  
 ens160 172.16.130.117  172.16.130.0    0.0.0.0         172.16.130.1    00:50:56:A7:A6:AE 1500  
 ens160 172.16.130.118  172.16.130.0    0.0.0.0         172.16.130.1    00:50:56:A7:A6:AE 1500  
 ens192 1.1.1.2         1.1.1.0         0.0.0.0         172.16.130.1    00:50:56:A7:9D:F4 1500  

检查: 子网 "1.1.1.0" 上专用接口的 MTU 一致性

  节点                名称            IP 地址         子网            MTU             
  ----------------  ------------  ------------  ------------  ----------------
  newtest1          ens192        1.1.1.1       1.1.1.0       1500            
  newtest2          ens192        1.1.1.2       1.1.1.0       1500            

检查: 子网 "172.16.130.0" 的 MTU 一致性。

  节点                名称            IP 地址         子网            MTU             
  ----------------  ------------  ------------  ------------  ----------------
  newtest1          ens160        172.16.130.106  172.16.130.0  1500            
  newtest2          ens160        172.16.130.107  172.16.130.0  1500            
  newtest2          ens160        172.16.130.119  172.16.130.0  1500            
  newtest2          ens160        172.16.130.117  172.16.130.0  1500            
  newtest2          ens160        172.16.130.118  172.16.130.0  1500            

  源                               目标                              是否已连接?          
  ------------------------------  ------------------------------  ----------------
  newtest2[ens192:1.1.1.2]        newtest1[ens192:1.1.1.1]        是               

  源                               目标                              是否已连接?          
  ------------------------------  ------------------------------  ----------------
  newtest2[ens160:172.16.130.107]  newtest1[ens160:172.16.130.106]  是               
  newtest2[ens160:172.16.130.107]  newtest2[ens160:172.16.130.119]  是               
  newtest2[ens160:172.16.130.107]  newtest2[ens160:172.16.130.117]  是               
  newtest2[ens160:172.16.130.107]  newtest2[ens160:172.16.130.118]  是               
  newtest1[ens160:172.16.130.106]  newtest2[ens160:172.16.130.119]  是               
  newtest1[ens160:172.16.130.106]  newtest2[ens160:172.16.130.117]  是               
  newtest1[ens160:172.16.130.106]  newtest2[ens160:172.16.130.118]  是               
  newtest2[ens160:172.16.130.119]  newtest2[ens160:172.16.130.117]  是               
  newtest2[ens160:172.16.130.119]  newtest2[ens160:172.16.130.118]  是               
  newtest2[ens160:172.16.130.117]  newtest2[ens160:172.16.130.118]  是               
    检查流经子网的最大 (MTU) 大小数据包 ...通过
    子网 "1.1.1.0" 的子网掩码一致性 ...通过
    子网 "172.16.130.0" 的子网掩码一致性 ...通过
  节点连接性 ...通过
  多点传送或广播检查 ...
正在检查子网 "1.1.1.0" 是否能够与多点传送组 "224.0.0.251" 进行多点传送通信
  多点传送或广播检查 ...通过
  ASM 完整性 ...通过
  ASM 的设备检查 ...
    包: cvuqdisk-1.0.10-1 ...失败 (PRVG-11550)
    访问控制列表检查 ...
正在检查所有节点上设备所有者的一致性...
"/dev/oraasm/ASMDISK202011274" 的设备所有者一致性检查通过
"/dev/oraasm/ASMDISK202011275" 的设备所有者一致性检查通过
"/dev/oraasm/ASMDISK202011271" 的设备所有者一致性检查通过
"/dev/oraasm/ASMDISK202011272" 的设备所有者一致性检查通过
"/dev/oraasm/ASMDISK202011273" 的设备所有者一致性检查通过

正在检查所有节点上设备组的一致性...
"/dev/oraasm/ASMDISK202011274" 的设备组一致性检查通过
"/dev/oraasm/ASMDISK202011275" 的设备组一致性检查通过
"/dev/oraasm/ASMDISK202011271" 的设备组一致性检查通过
"/dev/oraasm/ASMDISK202011272" 的设备组一致性检查通过
"/dev/oraasm/ASMDISK202011273" 的设备组一致性检查通过

正在检查所有节点的设备权限一致性...
"/dev/oraasm/ASMDISK202011274" 的设备权限一致性检查通过
"/dev/oraasm/ASMDISK202011275" 的设备权限一致性检查通过
"/dev/oraasm/ASMDISK202011271" 的设备权限一致性检查通过
"/dev/oraasm/ASMDISK202011272" 的设备权限一致性检查通过
"/dev/oraasm/ASMDISK202011273" 的设备权限一致性检查通过
    访问控制列表检查 ...通过
  ASM 的设备检查 ...失败 (PRVG-11550)
  数据库主目录可用性 ...通过
  OCR 完整性 ...通过
  时区一致性 ...通过
  网络时间协议 (NTP) ...
    '/etc/ntp.conf' ...
  节点名                                   文件是否存在?                 
  ------------------------------------  ------------------------
  newtest1                              是                       
  newtest2                              是                       

    '/etc/ntp.conf' ...通过
    '/etc/chrony.conf' ...
  节点名                                   文件是否存在?                 
  ------------------------------------  ------------------------
  newtest1                              是                       
  newtest2                              是                       

    '/etc/chrony.conf' ...通过
    守护程序 'chronyd' ...
  节点名                                   正在运行?                   
  ------------------------------------  ------------------------
  newtest1                              是                       
  newtest2                              是                       

    守护程序 'chronyd' ...通过
    正在使用 UDP 端口 123 的 NTP 守护程序或服务 ...
  节点名                                   端口是否打开?                 
  ------------------------------------  ------------------------
  newtest1                              是                       
  newtest2                              是                       

    正在使用 UDP 端口 123 的 NTP 守护程序或服务 ...通过
    chrony 守护程序至少与一个外部时间源同步 ...通过
  网络时间协议 (NTP) ...通过
  用户不在组中 "root": grid ...
  节点名           状态                        注释                      
  ------------  ------------------------  ------------------------
  newtest1      通过                        不存在                     
  newtest2      通过                        不存在                     
  用户不在组中 "root": grid ...通过
  节点之间的时间偏移量 ...通过
  resolv.conf 完整性 ...
  节点名                                   状态                      
  ------------------------------------  ------------------------
  newtest1                              通过                      
  newtest2                              通过                      

检查 "/etc/resolv.conf" 中指定的每个名称服务器对名称 "newtest2" 的响应

  节点名           源                         注释                        状态        
  ------------  ------------------------  ------------------------  ----------
  newtest2      172.16.128.4              IPv4                      通过        
  newtest2      172.16.128.33             IPv4                      通过        

检查 "/etc/resolv.conf" 中指定的每个名称服务器对名称 "newtest1" 的响应

  节点名           源                         注释                        状态        
  ------------  ------------------------  ------------------------  ----------
  newtest1      172.16.128.4              IPv4                      通过        
  newtest1      172.16.128.33             IPv4                      通过        
  resolv.conf 完整性 ...通过
  DNS/NIS 名称服务 ...通过
  等同用户 ...
  节点名                                   状态                      
  ------------------------------------  ------------------------
  newtest1                              通过                      
  等同用户 ...通过
  软件主目录: /u01/app/19.0.0/grid ...
  节点名           状态                        注释                      
  ------------  ------------------------  ------------------------
  newtest2      通过                        1249 个文件已验证             
  软件主目录: /u01/app/19.0.0/grid ...通过
  /dev/shm 作为临时文件系统装载 ...失败 (PRVE-0421)
  zeroconf 检查 ...通过

在所有节点上预检查 添加节点 失败。


执行 CVU 验证请求 "stage -pre nodeadd" 时失败。

操作系统内核参数: semopm ...失败
newtest1: PRVG-1205 : 操作系统内核参数 "semopm" 在节点 "newtest1" 上没有预期的当前值 [应为 = "100";
          当前值 = "32"; 配置值 = "未定义"]。

newtest2: PRVG-1205 : 操作系统内核参数 "semopm" 在节点 "newtest2" 上没有预期的当前值 [应为 = "100";
          当前值 = "32"; 配置值 = "未定义"]。

操作系统内核参数: rmem_default ...失败
newtest1: PRVG-1205 : 操作系统内核参数 "rmem_default" 在节点 "newtest1" 上没有预期的当前值 [应为 =
          "262144"; 当前值 = "212992"; 配置值 = "未定义"]。

newtest2: PRVG-1205 : 操作系统内核参数 "rmem_default" 在节点 "newtest2" 上没有预期的当前值 [应为 =
          "262144"; 当前值 = "212992"; 配置值 = "未定义"]。

操作系统内核参数: rmem_max ...失败
newtest1: PRVG-1205 : 操作系统内核参数 "rmem_max" 在节点 "newtest1" 上没有预期的当前值 [应为 =
          "4194304"; 当前值 = "212992"; 配置值 = "未定义"]。

newtest2: PRVG-1205 : 操作系统内核参数 "rmem_max" 在节点 "newtest2" 上没有预期的当前值 [应为 =
          "4194304"; 当前值 = "212992"; 配置值 = "未定义"]。

操作系统内核参数: wmem_default ...失败
newtest1: PRVG-1205 : 操作系统内核参数 "wmem_default" 在节点 "newtest1" 上没有预期的当前值 [应为 =
          "262144"; 当前值 = "212992"; 配置值 = "未定义"]。

newtest2: PRVG-1205 : 操作系统内核参数 "wmem_default" 在节点 "newtest2" 上没有预期的当前值 [应为 =
          "262144"; 当前值 = "212992"; 配置值 = "未定义"]。

操作系统内核参数: wmem_max ...失败
newtest1: PRVG-1205 : 操作系统内核参数 "wmem_max" 在节点 "newtest1" 上没有预期的当前值 [应为 =
          "1048576"; 当前值 = "212992"; 配置值 = "未定义"]。

newtest2: PRVG-1205 : 操作系统内核参数 "wmem_max" 在节点 "newtest2" 上没有预期的当前值 [应为 =
          "1048576"; 当前值 = "212992"; 配置值 = "未定义"]。

包: cvuqdisk-1.0.10-1 ...失败
newtest1: PRVG-11550 : 节点 "newtest1" 上缺少程序包 "cvuqdisk"

ASM 的设备检查 ...失败
  包: cvuqdisk-1.0.10-1 ...失败
  newtest1: PRVG-11550 : 节点 "newtest1" 上缺少程序包 "cvuqdisk"

/dev/shm 作为临时文件系统装载 ...失败
newtest1: PRVE-0421 : /etc/fstab 中不存在用于装载 /dev/shm 的条目


CVU 操作已执行:                    stage -pre nodeadd
日期:                           2026-6-18 15:29:45
CVU version:                  19.18.0.0.0 (011323x8664)
集群件版本:                        19.0.0.0.0
CVU 主目录:                      /u01/app/19.0.0/grid
网格主目录:                        /u01/app/19.0.0/grid
用户:                           grid
操作系统:                         Linux3.10.0-1160.66.1.el7.x86_64
[grid@newtest2 ~]$ 
cp /etc/sysctl.conf /etc/sysctl.conf0618
vi /etc/sysctl.conf
kernel.sem = 250 32000 100 128
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

[root@newtest1 rpm]# cp /etc/fstab /etc/fstab0618
[root@newtest1 rpm]# vi /etc/fstab
[root@newtest1 rpm]# mount -o remount /dev/shm
[root@newtest1 rpm]# mount -o remount /dev/shm
[root@newtest1 rpm]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                  95G     0   95G   0% /dev
tmpfs                    200G  320K  200G   1% /dev/shm
tmpfs                     95G   18M   95G   1% /run
tmpfs                     95G     0   95G   0% /sys/fs/cgroup
/dev/mapper/centos-root   82G   46G   37G  56% /
/dev/sdg                 150G  111G   40G  74% /u01
/dev/sdf1                2.0G  395M  1.7G  20% /boot
tmpfs                     19G     0   19G   0% /run/user/0
[root@newtest1 rpm]# 

恢复集群权限-不用做

bash 复制代码
export GRID_HOME=/u01/app/19.0.0/grid
$GRID_HOME/root.sh

节点清理脚本-问题节点

bash 复制代码
#!/bin/bash
# cleanup_newtest1_local.sh - 在 newtest1 节点以 root 执行

echo "=== 开始强制清理 newtest1 节点 ==="

# 1. 强制杀死所有Oracle进程
echo "1. 停止所有Oracle进程..."
pkill -9 -u grid 2>/dev/null
pkill -9 -u oracle 2>/dev/null
sleep 3

# 2. 杀死所有残留集群进程
echo "2. 清理残留集群进程..."
ps -ef | grep -E "cssd|crsd|ohasd|evmd|ocssd|ora_|pmon|asm" | grep -v grep | awk '{print $2}' | xargs kill -9 2>/dev/null
sleep 2

# 3. 检查是否还有进程
echo "3. 检查残留进程..."
ps -ef | grep -E "cssd|crsd|ohasd|evmd|ocssd|ora_|pmon|asm" | grep -v grep || echo "✓ 所有进程已清理"

# 4. 清理Oracle目录
echo "4. 清理Oracle目录..."
rm -rf /u01/app/19.0.0/grid
rm -rf /u01/app/oraInventory
rm -rf /u01/app/grid
rm -rf /tmp/.oracle
rm -rf /tmp/OraInstall*
rm -rf /var/tmp/.oracle
rm -rf /u01/app/19.0.0

# 5. 清理配置文件
echo "5. 清理配置文件..."
rm -f /etc/oraInst.loc
rm -f /etc/oracle/olr.loc
rm -f /etc/oracle/ocr.loc
rm -f /var/opt/oracle/oraInst.loc

# 6. 清理日志目录
echo "6. 清理日志目录..."
rm -rf /u01/app/grid/diag
rm -rf /u01/app/oracle/diag

# 7. 禁用自动启动
echo "7. 禁用自动启动..."
systemctl stop ohasd 2>/dev/null
systemctl disable ohasd 2>/dev/null
rm -f /etc/init.d/init.cssd
rm -f /etc/init.d/init.crsd
rm -f /etc/init.d/init.evmd
rm -f /etc/rc.d/rc3.d/S96init.cssd
rm -f /etc/rc.d/rc3.d/S96init.crsd
rm -f /etc/rc.d/rc3.d/S96init.evmd
rm -f /etc/systemd/system/ohasd.service
rm -f /usr/lib/systemd/system/ohasd.service

# 8. 清理用户环境
echo "8. 清理用户环境..."
rm -f /home/grid/.oracle
rm -f /home/oracle/.oracle
rm -f /home/grid/.bash_history
rm -f /home/oracle/.bash_history

# 9. 重新创建目录结构
echo "9. 创建干净的目录结构..."
mkdir -p /u01/app/19.0.0/grid
mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01/app/19.0.0
chown -R grid:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/19.0.0
chmod -R 775 /u01/app/oraInventory
chown grid:oinstall /u01/app -R
chmod -R 775 /u01/app

# 10. 创建oraInst.loc
echo "10. 创建oraInst.loc..."
echo "inventory_loc=/u01/app/oraInventory" > /etc/oraInst.loc
echo "inst_group=oinstall" >> /etc/oraInst.loc
chown grid:oinstall /etc/oraInst.loc
chmod 644 /etc/oraInst.loc



# 11. 验证清理结果
echo ""
echo "=== 清理完成,验证结果 ==="
echo "1. 检查进程:"
ps -ef | grep -E "cssd|crsd|ohasd|evmd|ocssd|ora_" | grep -v grep || echo "✓ 没有残留进程"

echo ""
echo "2. 检查目录:"
ls -la /u01/app/19.0.0/ 2>/dev/null || echo "✓ 目录已清理"
ls -la /u01/app/oraInventory 2>/dev/null || echo "✓ 目录已清理"

echo ""
echo "3. 检查oraInst.loc:"
cat /etc/oraInst.loc

echo ""
echo "=== 清理完成!==="
echo "请回到 newtest2 执行以下命令:"
echo "  crsctl delete node -n newtest1 -purge"
echo "  cd \$ORACLE_HOME/addnode"
echo "  ./addnode.sh -silent \"CLUSTER_NEW_NODES={newtest1}\" \"CLUSTER_NEW_VIRTUAL_HOSTNAMES={newtest1-vip}\""

正常节点添加故障节点grid

bash 复制代码
# 检查OCR中的节点列表
olsnodes -s

# 如果有newtest1的残留,删除
# 使用正确的语法
/u01/app/19.0.0/grid/bin/crsctl delete node -n newtest1 -purge
# 或者不带purge参数
# 验证节点是否已删除
olsnodes -s

# 检查所有节点列表
olsnodes -t

# 检查资源状态
crsctl stat res -t


# 1. 确保newtest1上的VIP IP已释放
ip addr show | grep 172.16.130.117

# 如果VIP还存在,手动删除
sudo ip addr del 172.16.130.117/24 dev ens160

# 2. 清理ARP缓存
sudo arp -d 172.16.130.117

# 3. 验证VIP IP已释放
ping -c 2 172.16.130.117

# 4. 重新执行addnode
export ORACLE_HOME=/u01/app/19.0.0/grid
   export IGNORE_PREADDNODE_CHECKS=Y 
  cd $ORACLE_HOME/addnode

 cd $ORACLE_HOME/addnode
 
  $ORACLE_HOME/bin/cluvfy  stage -pre nodeadd -n newtest1 -verbose
./addnode.sh -silent "CLUSTER_NEW_NODES={newtest1}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={newtest1-vip}"
bash 复制代码
清理脚本
bash -c '
echo "=== 清理 newtest1 inventory ==="

# 1. 备份旧 inventory
if [ -d /u01/app/oraInventory ]; then
    echo "备份 inventory..."
    cp -r /u01/app/oraInventory /u01/app/oraInventory.bak.$(date +%Y%m%d_%H%M%S)
fi

# 2. 删除 inventory
echo "删除 inventory..."
rm -rf /u01/app/oraInventory

# 3. 创建新的 inventory
echo "创建新的 inventory..."
mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory

# 4. 创建 oraInst.loc
echo "创建 oraInst.loc..."
echo "inventory_loc=/u01/app/oraInventory" > /etc/oraInst.loc
echo "inst_group=oinstall" >> /etc/oraInst.loc
chown grid:oinstall /etc/oraInst.loc
chmod 644 /etc/oraInst.loc

# 5. 验证
echo "验证:"
ls -la /u01/app/ | grep oraInventory
cat /etc/oraInst.loc

echo ""
echo "=== 清理完成 ==="
echo "请回到 newtest2 执行 addnode"
'