GPnP profile文件
在Clusterware中,CSS、GPnP等服务的启动都需要依赖于GPnP profile文件。GPnP profile是一个XML文件,引导节点加入集群,GPnP profile提供了新节点的配置信息。GPnP profile还指定了整个集群的特性。如果该文件被破坏或丢失,Clusterware将无法正常启动。
在Clusterware启动期间,CSS守护进程使用GPnP profile发现表决文件(参数“DiscoveryString”)。一个不正确的Discovery字符串将阻止CSS守护进程启动,导致整个CRS无法启动。
注意 Oracle不支持手动修改profile.xml文件,直接对它的修改可能导致无法修复的问题,最终导致在所有节点重建Clusterware。
GPnP profile文件保存的是集群的配置信息。默认的保存位置是:
$GRID_HOME/gpnp/$HOSTNAME/profile/peer/profile.xml
$GRID_HOME/gpnp/profile/peer/profile.xml(全局备份)
下面是典型的GPnP profile内容(/u01/app/11.2.0/grid/gpnp/profiles/peer/profile.xml):
- <?xml version="1.0" encoding="UTF-8"?>
- <gpnp:GPnP-Profile Version="1.0" xmlns="http://www.grid-pnp.org/2005/11/gpnp-
- profile" xmlns:gpnp="http://www.grid-pnp.org/2005/11/
- gpnp-profile" xmlns:orcl="http://www.oracle.com/gpnp/
- 2005/11/gpnp-profile" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.grid-pnp.org/2005/11/gpnp-profile gpnp-
- profile.xsd" ProfileSequence="4" ClusterUId="33b46b234583df41ff600bf1d9904cea"
- ClusterName="rhel-cluster" PALocation="">
- <gpnp:Network-Profile>
- <gpnp:HostNetwork id="gen" HostName="*">
- <gpnp:Network id="net1" IP="10.168.4.0" Adapter="eth0" Use="public"/>
- <gpnp:Network id="net2" IP="192.168.1.0" Adapter="eth1"
- Use="cluster_interconnect"/>
- <gpnp:Network id="net3" IP="192.168.1.0" Adapter="eth2"
- Use="cluster_interconnect"/>
- </gpnp:HostNetwork>
- </gpnp:Network-Profile>
- <orcl:CSS-Profile id="css" DiscoveryString="+asm" LeaseDuration="400"/>
- <orcl:ASM-Profile id="asm" DiscoveryString="/dev/raw/*,ORCL:*"
- SPFile="+OCRVDISK/rhel-cluster/asmparameterfile/registry.253.684539075"/>
- <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
- <ds:SignedInfo>
- <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-
- exc-c14n#"/>
- <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
- <ds:Reference URI="">
- <ds:Transforms>
- <ds:Transform Algorithm="http://www.w3.org/2000/09/
- xmldsig#enveloped-signature"/>
- <ds:Transform Algorithm="http://www.w3.org/
- 2001/10/xml-exc-c14n#">
- <InclusiveNamespaces xmlns="
- http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="gpnp orcl xsi"/>
- </ds:Transform>
- </ds:Transforms>
- <ds:DigestMethod Algorithm="http://www.
- w3.org/2000/09/xmldsig#sha1"/>
- <ds:DigestValue>tJwvbopVU0UhRT9K3M6+t9glsbk=</ds:DigestValue>
- </ds:Reference>
- </ds:SignedInfo>
- <ds:SignatureValue>XH4UsWRss5MLcgLnBPYXgf4LK/6/EinZL30y
- Lqe1oavr1tAQFi63XQjW7qpglukNaR3IZX2roOPnlocf3
- spcnAXUufDlGyUFN7Tf3zqa25P9Xfs2yvdFB24kN81eZNrlANC5own0LbpKL7
- yiBW6vMr/rz8OgbIzLkb/zkylBKfQ=</ds:SignatureValue>
- </ds:Signature>
- </gpnp:GPnP-Profile>
通过上面的例子可以看出,GPnP profile保存的是RAC的配置信息,包括集群名称、网络类型信息(public/private)、ASM和CSS的存储信息、安全的数字签名,以及ASM实例的SPFILE文件位置。当集群配置发生变化时,所有节点的该文件会被自动更新。在安装、系统引导或者当使用标准的集群工具更新期间,这些活动包括:oifcfg 改变网络信息、crsctl 改变css设备、ASM额外的存储等,会通过gpdpd进程复制GPnP profile到所有的其他节点。
如果GPnP出现问题,可以使用cluvfy comp gpnp组件验证命令检查在集群中所有节点网格即插即用的完整性。
- cluvfy comp gpnp [-n node_list] [-verbose]