Cluster Verification Utilit(CVU)是Oracle所推荐的一种集群检验工具。该检验工具帮助用户在Cluter部署的各个阶段验证集群的重要组件,这些阶段包括硬件搭建、Clusterware的安装、RDBMS的安装、存储等等。我们既可以在Cluster安装之前使用CVU来帮我们检验所配置的环境正确可用,也可以在软件安装完成后使用CVU来做对集群的验收。
1.获取集群验证工具cluvfy的帮助信息
grid@rac1:/home/grid>cluvfy -help
USAGE:
cluvfy [ -help ]
cluvfy stage { -list | -help }
cluvfy stage {-pre|-post} [-verbose]
cluvfy comp { -list | -help }
cluvfy comp [-verbose]
2 本文主要介绍comp 的使用,在RAC Cluster中独立的子系统或者模块被称作组件(component),可以使用CVU来验证集群组件的可用性、完整性、稳定性。简单如存储设备、CRSD、EVMD、CSSD、OCR等多个子组件的CRS stack都可以被认为是一个组件。
获得comp选项可验证的信息
grid@rac1:/home/grid>cluvfy comp -list
USAGE:
cluvfy comp [-verbose]
有效组件为:
nodereach : 检查各节点间的可访问性
nodecon : 检查节点的连接性
cfs : 检查 CFS 完整性
ssa : 检查共享存储的可访问性
space : 检查空间可用性
sys : 检查最小系统要求
clu : 检查集群完整性
clumgr : 检查集群管理器完整性
ocr : 检查 OCR 完整性
olr : 检查 OLR 完整性
ha : 检查 HA 完整性
crs : 检查 CRS 完整性
nodeapp : 检查节点应用程序是否存在
admprv : 检查管理权限
peer : 与对等端比较属性
software : 检查软件分发
asm : 检查 ASM 完整性
acfs : 检查 ACFS 完整性
gpnp : 检查 GPnP 完整性
gns : 检查 GNS 完整性
scan : 检查 SCAN 配置
ohasd : 检查 OHASD 完整性
clocksync : 检查时钟同步
vdisk : 检查表决磁盘 Udev 设置
输入语法错误时,会有语法提示:
grid@rac1:/home/grid>cluvfy comp nodereach -verbose
USAGE:
cluvfy comp nodereach -n [-srcnode ] [-verbose]
是用逗号分隔的非域限定的节点名列表, 在这些节点上执行测试。 如果指定了 "all", 则集群中的所有节点将用于验证。
是将从其上执行可访问性测试的节点。
DESCRIPTION:
3 具体的测试例子
1 检查从源节点到节点列表中指定节点的可访问性。源节点可通过 '-srcnode' 选项指定。如果未给定源节点, 则本地节点将作为源节点。
grid@rac1:/home/grid>cluvfy comp nodereach -n all -verbose
验证 节点可访问性
正在检查节点的可访问性...
检查: 节点 "rac1" 的节点可访问性
目标节点 是否可访问?
------------------------------------ ------------------------
rac2 是
rac1 是
结果:节点 "rac1" 的节点可访问性检查已通过
2 检查节点的连接性
grid@rac1:/home/grid>cluvfy comp nodecon -n all -verbose
验证 节点连接性
正在检查节点的连接性...
正在检查主机配置文件...
节点名 状态 注释
------------ ------------------------ ------------------------
rac2 通过
rac1 通过
主机配置文件的验证成功
节点 "rac2" 的接口信息
名称 IP 地址 子网 网关 默认网关 HW 地址 MTU
------ --------------- -------------- --------------- --------------- ----------------- ------
eth0 10.250.7.120 10.250.7.0 0.0.0.0 10.250.7.254 00:50:56:8F:0B:9C 1500
eth0 10.250.7.121 10.250.7.0 0.0.0.0 10.250.7.254 00:50:56:8F:0B:9C 1500
eth1 10.10.10.20 10.10.10.0 0.0.0.0 10.250.7.254 00:50:56:8F:78:DE 1500
节点 "rac1" 的接口信息
名称 IP 地址 子网 网关 默认网关 HW 地址 MTU
------ --------------- -------------- -------------- --------------- ----------------- ------
eth0 10.250.7.110 10.250.7.0 0.0.0.0 10.250.7.254 00:50:56:8F:27:1D 1500
eth0 10.250.7.111 10.250.7.0 0.0.0.0 10.250.7.254 00:50:56:8F:27:1D 1500
eth0 10.250.7.200 10.250.7.0 0.0.0.0 10.250.7.254 00:50:56:8F:27:1D 1500
eth1 10.10.10.10 10.10.10.0 0.0.0.0 10.250.7.254 00:50:56:8F:59:3E 1500
检查: 子网 "10.250.7.0" 的节点连接性
源 目标 是否已连接?
------------------------------ -------------------------- ----------------
rac2:eth0 rac2:eth0 是
rac2:eth0 rac1:eth0 是
rac2:eth0 rac1:eth0 是
rac2:eth0 rac1:eth0 是
rac2:eth0 rac1:eth0 是
rac2:eth0 rac1:eth0 是
rac2:eth0 rac1:eth0 是
rac1:eth0 rac1:eth0 是
rac1:eth0 rac1:eth0 是
rac1:eth0 rac1:eth0 是
结果:含有节点 rac2,rac1 的子网 "10.250.7.0" 的节点连接性检查已通过
检查: 子网 "10.250.7.0" 的 TCP 连接性
源 目标 是否已连接?
------------------------------ ------------------------------ ----------------
rac1:10.250.7.110 rac2:10.250.7.120 通过
rac1:10.250.7.110 rac2:10.250.7.121 通过
rac1:10.250.7.110 rac1:10.250.7.111 通过
rac1:10.250.7.110 rac1:10.250.7.200 通过
结果:子网 "10.250.7.0" 的 TCP 连接性检查通过
检查: 子网 "10.10.10.0" 的节点连接性
源 目标 是否已连接?
------------------------------ ------------------------------ ----------------
rac2:eth1 rac1:eth1 是
结果:含有节点 rac2,rac1 的子网 "10.10.10.0" 的节点连接性检查已通过
检查: 子网 "10.10.10.0" 的 TCP 连接性
源 目标 是否已连接?
------------------------------ ------------------------------ ----------------
rac1:10.10.10.10 rac2:10.10.10.20 通过
结果:子网 "10.10.10.0" 的 TCP 连接性检查通过
在子网 "10.250.7.0" 上找到的很可能是用于 VIP 的候选接口的接口为:
rac2 eth0:10.250.7.120 eth0:10.250.7.121
rac1 eth0:10.250.7.110 eth0:10.250.7.111 eth0:10.250.7.200
在子网 "10.10.10.0" 上找到的很可能是用于专用互连的候选接口的接口为:
rac2 eth1:10.10.10.20
rac1 eth1:10.10.10.10
结果:节点的连接性检查已通过
节点连接性 的验证成功。
3 检查共享存储的可访问性
grid@rac1:/home/grid>cluvfy comp ssa -n all -verbose
验证 共享存储的可访问性
正在检查共享存储的可访问性...
WARNING:
无法确定是否在以下节点上共享 /dev/sda:
rac2,rac1
Disk 共享节点 (2 个)
------------------------------------ ------------------------
/dev/sdb rac2 rac1
Disk 共享节点 (2 个)
------------------------------------ ------------------------
/dev/sdc rac2 rac1
Disk 共享节点 (2 个)
------------------------------------ ------------------------
/dev/sdd rac2 rac1
Disk 共享节点 (2 个)
------------------------------------ ------------------------
/dev/sde rac2 rac1
节点 "rac2,rac1" 上的共享存储检查成功
共享存储的可访问性 的验证成功。
4 验证 空间可用性
grid@rac1:/home/grid>
grid@rac1:/home/grid>cluvfy comp space -n all -l /opt/ -z 2G -verbose
验证 空间可用性
正在检查空间可用性...
检查: "/opt/" 上的可用空间
节点名 可用 必需 注释
------------ ------------------------ ------------------------ ----------
rac2 75.49GB (7.9155224E7KB) 2GB (2097152.0KB) 通过
rac1 69.51GB (7.2890088E7KB) 2GB (2097152.0KB) 通过
结果:"/opt/" 的空间可用性检查已通过
空间可用性 的验证成功。
5 检查最小系统要求,此项检查是验证os 系统层面 包是否安装 ,网络是否可以访问,内核参数是否正确,用户权限等等信息!
grid@rac1:/home/grid>cluvfy comp sys -n all -verbose
ERROR:
必须指定产品。有关详细资料, 请参阅用法。
USAGE:
cluvfy comp sys [-n ] -p {crs|ha|database}
[-r {10gR1|10gR2|11gR1|11gR2}]
[-osdba ] [-orainv ]
[-fixup [-fixupdir ]] [-verbose]
是用逗号分隔的非域限定的节点名列表, 在这些节点上执行测试。 如果指定了 "all", 则集群中的所有节点将用于验证。
crs 用于 Oracle Clusterware 产品
ha 用于 Oracle 高可用性产品
database 用于 Oracle Real Application Cluster 产品
10gR1 or 10gR2 or 11gR1 or 11gR2 是产品的发行版本号。
是 OSDBA 组的名称。默认为 "dba"。
是 Oracle 产品清单组的名称。默认为 "oinstall"。
是将要生成修复说明的目录。默认值为 CVU 的工作目录。
DESCRIPTION:
在节点列表中的所有节点上检查 '-p' 选项所给定产品的最小系统要求。如果未给定 '-n' 选项, 则在本地节点上进行此检查。如果未指定 OSDBA 组, 则 'dba' 将作为 OSDBA 组。如果未指定 'Oracle 产品清单' 组, 则 'oinstall' 将作为产品清单组。如果指定了 '-fixup' 选项, 则在验证失败时将生成修复说明 (如果适用)。使用 '-fixupdir' 选项可以指定应在其中生成修复说明的特定目录。
6 验证 OCR 完整性
grid@rac1:/home/grid/software/grid>cluvfy comp ocr -n all -verbose
验证 OCR 完整性
正在检查 OCR 完整性...
正在检查是否缺少非集群配置...
所有节点都没有非集群的, 仅限本地的配置
“ASM 运行”检查通过。ASM 正在所有集群节点上运行
正在检查 OCR 配置文件 "/etc/oracle/ocr.loc"...
OCR 配置文件 "/etc/oracle/ocr.loc" 检查成功
ocr 位置 "+DATA1" 的磁盘组在所有节点上都可用
正在检查 OCR 位置 "+DATA1" 的大小...
OCR 位置 "+DATA1" 的大小检查成功...
OCR 位置 "+DATA1" 的大小检查成功...
WARNING:
此检查不验证 OCR 内容的完整性。请以授权用户的身份执行 'ocrcheck' 以验证 OCR 的内容。
OCR 完整性检查已通过
OCR 完整性 的验证成功。
7
验证 CRS 完整性
grid@rac1:/home/grid/software/grid>cluvfy comp crs -n all -verbose
验证 CRS 完整性
正在检查 CRS 完整性...
Oracle Clusterware 在节点 "rac2" 上处于健康状态
Oracle Clusterware 在节点 "rac1" 上处于健康状态
CRS 完整性检查已通过
CRS 完整性 的验证成功。
8 验证 Oracle Restart 完整性
grid@rac1:/home/grid/software/grid>cluvfy comp ha -verbose
验证 Oracle Restart 完整性
ERROR:
PRVF-4112 : 无法确定 Oracle Restart 安装
验证无法继续
Oracle Restart 完整性 的验证失败。
9 验证 管理权限
grid@rac1:/home/grid>cluvfy comp admprv -n all -o
ERROR:
必须指定操作。有关详细资料, 请参阅用法。
USAGE:
cluvfy comp admprv [-n ] [-verbose]
-o user_equiv [-sshonly]
-o crs_inst [-orainv ]
[-fixup [-fixupdir ]]
-o db_inst [-osdba ]
[-fixup [-fixupdir ]]
-o db_config -d
[-fixup [-fixupdir ]]
是用逗号分隔的非域限定的节点名列表, 在这些节点上执行测试。 如果指定了 "all", 则集群中的所有节点将用于验证。
user_equiv 检查各节点间的等同用户。
crs_inst 检查安装 CRS 的管理权限。
db_inst 检查安装 RAC 数据库的管理权限。
db_config 检查配置数据库的管理权限。
是 OSDBA 组的名称。默认为 "dba"。
是 Oracle 产品清单组的名称。默认为 "oinstall"。
是将要生成修复说明的目录。默认值为 CVU 的工作目录。
DESCRIPTION:
在节点列表中的所有指定节点上检查 '-o' 选项所指定操作的必需管理权限。这些操作互相排斥并且一次只能指定一个操作。如果未提供 '-n' 选项, 则在本地节点上进行此检查。如果未指定 OSDBA 组, 则 'dba' 将作为 OSDBA 组。如果未指定 'Oracle 产品清单' 组, 则 'oinstall' 将作为产品清单组。如果指定了 '-fixup' 选项, 则在验证失败时将生成修复说明 (如果适用)。使用 '-fixupdir' 选项可以指定应在其中生成修复说明的特定目录。
比如:
grid@rac1:/home/grid>cluvfy comp admprv -n all -o crs_inst -verbose -orainv oinstall
验证 管理权限
正在检查等同用户...
检查: 用户 "grid" 的等同用户
节点名 注释
------------------------------------ -----------------
rac2 通过
rac1 通过
结果:用户 "grid" 的等同用户检查已通过
正在检查管理权限...
检查: "grid" 的 用户存在性
节点名 状态 注释
------------ ------------------------ ---------------
rac2 存在 通过
rac1 存在 通过
结果:"grid" 的 用户存在性 检查已通过
检查: "oinstall" 的 组存在性
节点名 状态 注释
------------ ------------------------ ---------------
rac2 存在 通过
rac1 存在 通过
结果:"oinstall" 的 组存在性 检查已通过
检查: 组 "oinstall" 中用户 "grid" 的成员资格 [作为 主]
节点名 用户存在 组存在 组中的用户 主 注释
--------- ------------ ------------ ------------ ------------ ------------
rac2 是 是 是 是 通过
rac1 是 是 是 是 通过
结果:组 "oinstall" 中用户 "grid" 的成员资格检查 [作为 主] 已通过
检查: "dba" 的 组存在性
节点名 状态 注释
----------------------------------- ----------------
rac2 存在 通过
rac1 存在 通过
结果:"dba" 的 组存在性 检查已通过
检查: 组 "dba" 中用户 "grid" 的成员资格
节点名 用户存在 组存在 组中的用户 注释
------------------------- ------------ ------------ ----------------
rac2 是 是 是 通过
rac1 是 是 是 通过
结果:组 "dba" 中用户 "grid" 的成员资格检查已通过
管理权限检查已通过
管理权限 的验证成功。
4 建议在安装Oracle RAC的时候,安装clusterware 软件之前和之后 都要进行必要的检查,这样可以在安装前发现错误,安装后检查其完整性!
ps 当然以我的经验,并不是每次验证正确都可以正常安装成功的!祝愿 各位好运!!(本周安装了7次,每次都验证runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose 执行都是成功的,结果都是执行rootsh的时候报错 gpnp 相关的错误!!会写一篇文章介绍这个事情)