在Oracle中,什么是GPnP?
网格即插即用(Grid Plug and Play,GPnP)是Oracle 11gR2 RAC提供的新组件,该组件的功能由gpnpd.bin守护进程实现。GPnP可以提供一个动态的GI环境,能随着负载的增加而动态改变GI环境。GPnP能非常容易地添加、替换或者移除集群中的节点,就像电源插头一样即插即用。
GPnP主要由GPNPD、mDNS、SCAN和GNS组成。mDNS(Multicast Domain Name Service)负责在节点内部进行IP的解析,在添加节点的时候不需要手动修改每个节点的/etc/hosts文件。GPNPD服务提供的是集群配置信息管理,新的节点添加进来会根据现有的GPnP profile配置信息来配置新的节点,同时更新所有节点的GPnP profile文件。一旦新添加的节点加入到集群,SCAN机制动态地将连接分配给该节点,所有的客户端都不需要进行任何配置的变更,就能实现节点的负载均衡。GNS(Grid Naming Service)能动态地为新添加的节点分配VIP地址,利用DHCP管理公共网络中的IP地址。这些服务共同构成了“网格即插即用”的特性。
GPnP profile存储了整个集群的配置信息,它是一个XML文件,该文件中包括了集群名称、网络类型(public/private)、ASM和CSS的存储信息、数字签名,以及ASM实例的SPFILE文件位置等。在集群中,CSS、GPnP等服务的启动都依赖于GPnP profile文件,该文件引导节点加入集群。如果GPnP profile文件被破坏或丢失,那么集群将无法正常启动。在集群启动期间,CSS守护进程将使用GPnP profile文件中的DiscoveryString参数发现表决磁盘文件,所以,若DiscoveryString参数配置不正确,则CSS守护进程无法启动,进而导致整个CRS无法启动。
GPnP profile文件默认的保存位置是:
1$GRID_HOME/gpnp/$HOSTNAME/profile/peer/profile.xml
2$GRID_HOME/gpnp/profiles/peer/profile.xml --全局备份
不能手动修改profile.xml文件,否则可能导致集群不能正常运行,可以使用命令gpnptool来修改该文件,使用命令“gpnptool get”可以获取profile.xml文件的内容。当集群配置发生变化时(例如,oifcfg改变网络信息、ASM添加存储等),所有节点的该文件会被自动更新(通过gpnpd.bin进程复制GPnP profile到所有的其它节点。注意:gpnpd是一个多线程的进程)。
profile.xml文件的内容如下所示(注意,这些内容其实只有1行):
1<?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="12" ClusterUId="3eed96ebd74fef99bf93e7032daeee32" ClusterName="node-cluster" PALocation=""><gpnp:Network-Profile><gpnp:HostNetwork id="gen" HostName="*"><gpnp:Network id="net1" IP="192.168.1.0" Adapter="eth0" Use="public"/><gpnp:Network id="net2" IP="9.9.9.0" Adapter="eth1" Use="cluster_interconnect"/></gpnp:HostNetwork></gpnp:Network-Profile><orcl:CSS-Profile id="css" DiscoveryString="+asm" LeaseDuration="400"/><orcl:ASM-Profile id="asm" DiscoveryString="/dev/asm*,ORCL:ARCHDISK,ORCL:DATADISK,ORCL:OVDISK" SPFile="+OCR/node-cluster/ASMPARAMETERFILE/REGISTRY.253.936729105"/><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>zKokirQPReHpvj1wK31zrSOnwKE=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>NU+AVQ8RtyvhVqGi1sdsBdtRqia29V3ES6F6BSymX0uRkrpMQR7ooTNHDX6gAaxUhFv1D5lf6e2+W/08oQuBwlwXg7j5MwJT5/WkZO8NFKkzNbmwW7zzVoV9izCQJ//DQoqb/YObwvykuvnhGtqivZ95g3imfOMeAo5Fzpq1FS8=</ds:SignatureValue></ds:Signature></gpnp:GPnP-Profile>
如果GPnP出现问题,那么可以使用cluvfy comp gpnp组件验证命令检查在集群中所有节点网格即插即用的完整性。
1cluvfy comp gpnp [-n node_list] [-verbose]
& 说明:
有关GPnP的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2141232/
本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗

---------------优质麦课------------
详细内容可以添加麦老师微信或QQ私聊。
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:618766405
● 提供OCP、OCM和高可用部分最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。
