--GPnP Profile 文件的作用:
GPnP Profile 文件是一个保存于 $GRID_HOME/gpnp/<hostname>/profiles/peer 目录下的小型 XML 文件,名称为 profile.xml。
其用于正确描述 RAC 每个节点的全局特性。每个节点上都会保存一个本地的 GPnP Profile,并且由 GPnP 守护进程(GPnPD)维护。
grid@racdb1:/oracle/app/19.3.0/grid/gpnp/racdb1/profiles/peer>cd $ORACLE_HOME/gpnp/racdb1/profiles/peer
grid@racdb1:/oracle/app/19.3.0/grid/gpnp/racdb1/profiles/peer>ll
total 12
-rw-r--r-- 1 grid oinstall 2160 Apr 30 2023 profile.old
-rw-r--r-- 1 grid oinstall 2160 Apr 30 2023 profile.xml
-rw-r--r-- 1 grid oinstall 2100 Apr 30 2023 profile_orig.xml
=========================================================================
--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)。
1).当仲裁盘为 ASM 磁盘时,以上仲裁盘的信息需要从 GPnP Profile 中读取,其中 GPnP Profile 对仲裁盘信息描述如下:
<orcl:CSS-Profile id=”css” DiscoveryString=”+asm” LeaseDuration=”400″/>
2).即使 ASM 实例没有启动,仲裁盘的信息依旧可以通过 kfed 功能读取。
(he voting disk is read using kfed utility even if ASM is not up.)。
3).随后,集群软件将检查是否所有的 RAC 节点都更新了 GPnP Profile 信息,并且 RAC 各节点将依据 GPnP 的配置信息加入集群中。当一个节点加入集群或在集群中启动时,集群软件将在节点上启动 GPnP agent。当节点已经在集群内部时,GPnP agent 将读取已存在于节点内的 GPnP profile。当节点被新加至集群时,GPnP agent 将通过组播协议(mDNS)定位到一个已存在于集群的节点的 GPnP agent,并且从该源端的 agent 上获取 GPnP profile。
4).随后,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)。
grid@racdb1:/oracle/app/19.3.0/grid/gpnp/racdb1/profiles/peer>gpnptool get
Warning: some command line parameters were defaulted. Resulting command line:
/oracle/app/19.3.0/grid/bin/gpnptool.bin get -o-
<?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="5" ClusterUId="58d19a20b77a7f3dff2c76fc96a90429" ClusterName="FweiCls" PALocation=""><gpnp:Network-Profile><gpnp:HostNetwork id="gen" HostName="*"><gpnp:Network id="net1" IP="192.168.197.0" Adapter="ens33" Use="public"/><gpnp:Network id="net2" IP="192.168.178.0" Adapter="ens35" Use="asm,cluster_interconnect"/></gpnp:HostNetwork></gpnp:Network-Profile><orcl:CSS-Profile id="css" DiscoveryString="+asm" LeaseDuration="400"/><orcl:ASM-Profile id="asm" DiscoveryString="/dev/asm*" SPFile="+OCRDG/FweiCls/ASMPARAMETERFILE/registry.253.1135515945" Mode="remote" Extended="false"/><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-sha512"/><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#sha512"/><ds:DigestValue>n0nQFg+8mkEp0xLJcfemS2XXXs16usCeIz4v/AcTMzKF4FPoobJQQn8Cuo+VFcEFyaEDzJxVvFlWcAUawV6lWQ==</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>l2kRlsWQmDHWMh1io1s0ZVvvU7MAYMg/EQyqLlxvIDycyjV53sa7Oe/KLUIE1XbkzP0kS1GXaCcVe4jMTE0vNGP5ZPgPwkHA65EpLNj+4z5cs0gowjMMfGxc6CctMnnWE6eJIlvjqoPrxtVFO8Au2NAi0KiDxFJg/X67Bz/mKJBgD/Ns63ZOWuadEsspL14Q
pOBm/H6b5xnSxuXwTYMYZO7mO53HdBhv3GgStKW9SYYG3ov+pU60MCggQPkIQl3VpiB1W5m8nwPLRv3UFSyFWvOu0Zo4PZoMrrKgcPUG8PgljjSF9ZqhjO/uDlF/2fJJWV1dyekD1Qoq4o3tcTa57A==</ds:SignatureValue></ds:Signature></gpnp:GPnP-Profile>
2).$> --gpnptool lfind:查看运行于本地节点的 GPnP 守护进程(How to find GPnP Deamons are running on the local node)。
grid@racdb1:/oracle/app/19.3.0/grid/gpnp/racdb1/profiles/peer>gpnptool lfind
Success. Local gpnpd found.
3).$> --gpnptool find:查看基于 mDNS 协议可以探测到的所有 GPnP 守护进程(How to find all RD-discoverable resources of given type)。
grid@racdb1:/oracle/app/19.3.0/grid/gpnp/racdb1/profiles/peer>gpnptool find
Found 1 instances of service 'gpnp'.
mdns:service:gpnpc96a90429._tcp.local.://racdb1:63987/agent=gpnpd,cname=FweiCls,guid=58d19a20b77a7f3dff2c76fc96a90429,host=racdb1,pid=3479/gpnpd h:racdb1 c:FweiCls u:58d19a20b77a7f3dff2c76fc96a90429
4).$> --gpnptool getpval -<parameter_name>:查看 GPnP Profile 中对应参数的值,其中 <parameter_name> 为参数名称。
更多【oracle-Oracle-11g-R2 RAC 环境下 GPnP Profile 文件】相关视频教程:www.yxfzedu.com