GPnP Profile 文件的作用:
GPnP Profile 文件是一个保存于 $GRID_HOME/gpnp/<hostname>/profiles/peer 目录下的小型 XML 文件,名称为 profile.xml。
其用于正确描述 RAC 每个节点的全局特性。每个节点上都会保存一个本地的 GPnP Profile,并且由 GPnP 守护进程(GPnPD)维护。
GPnP Profile 包含的内容:
GPnP Profile 的功能类似于 SPFILE,其用于保存启动数据库集群程序所需的必要信息,如下表所示。
GPnP Profile 参数 |
集群名称(Cluster name) |
网络类型,包含业务及心跳网络(Network classifications, Public/Private) |
用于 CSS 进程的存储(Storage to be used for CSS) |
用于 ASM 的存储(Storage to be used for ASM : SPFILE location, ASM DiskString etc) |
数字签名信息(Digital signature information):GPnP Profile 对安全十分敏感,其可识别根分区的信息,并且保存了数据签名的配置权限。 |
GPnP Profile 信息的更新:
GPnP Profile 将会在以下情况被更新。
(1).GPnP 守护进程(GPnPD)将在软件安装、系统启动或 Profile 更新时复制 Profile 的变化,以此实现所有节点 GPnP Profile 的同步更新。
(2).当由 oifcfg、crsctl、asmcmd 等命令更改集群配置时,GPnP Profile 都将被同步更新。
集群软件对 GPnP Profile 配置信息的应用原理:
启动集群软件时,需要访问仲裁盘(Voting Disk)。当仲裁盘为 ASM 磁盘时,以上仲裁盘的信息需要从 GPnP Profile 中读取,其中 GPnP Profile 对仲裁盘信息描述如下。
<orcl:CSS-Profile id=”css” DiscoveryString=”+asm” LeaseDuration=”400″/>
即使 ASM 实例没有启动,仲裁盘的信息依旧可以通过 kfed 功能读取。(he voting disk is read using kfed utility even if ASM is not up.)
随后,集群软件将检查是否所有的 RAC 节点都更新了 GPnP Profile 信息,并且 RAC 各节点将依据 GPnP 的配置信息加入集群中。当一个节点加入集群或在集群中启动时,集群软件将在节点上启动 GPnP agent。当节点已经在集群内部时,GPnP agent 将读取已存在于节点内的 GPnP profile。当节点被新加至集群时,GPnP agent 将通过组播协议(mDNS)定位到一个已存在于集群的节点的 GPnP agent,并且从该源端的 agent 上获取 GPnP profile。
随后,CRSD 进程将需要读取 OCR 信息以启动节点上的多个资源,并根据资源状态更新 OCR 信息。(Next CRSD needs to read OCR to startup various resources on the node and hence update it as status of resources changes.)因为 OCR 信息保存于 ASM 磁盘内,所以 CRSD 读取 OCR 信息前需获知 ASM Spfile 参数文件的路径。需要在不同的参数文件中查找 ASM Spfile 路径,因此查找文件的顺序如下:(1).GPnP Profile;(2).ORACLE_HOME/dbs/spfile<sid.ora>;(3).ORACLE_HOME/dbs/init<sid.ora>
GPnP Profile 维护工具:
可使用 gpnptool 工具对 GPnP Profile 进行维护,常见命令如下。
(1).$> gpnptool get:读取 GPnP Profile 内容(How to read the profile)
(2).$> gpnptool lfind:查看运行于本地节点的 GPnP 守护进程(How to find GPnP Deamons are running on the local node)
(3).$> gpnptool find:查看基于 mDNS 协议可以探测到的所有 GPnP 守护进程(How to find all RD-discoverable resources of given type)
(4).$> gpnptool getpval -<parameter_name>:查看 GPnP Profile 中对应参数的值,其中 <parameter_name> 为参数名称。
Oracle-11g-R2 RAC 环境下 GPnP Profile 文件