1.gpnp
gpnp 全称为 grid plug and play,是oracle11gr2 版本集群管理软件新增的组件,
该组件的功能由 gpnpd.bin 守护进程实现。Oracle 设计 gpnp 的目的有:
将集群的基本配置信息保存在本地,以便在启动集群时能够从本地文件中
获得足够的信息,而不再需要完全依赖于OCR;
通过和 mdnsd 进行通信,能够更加灵活的识别集群张红的节点,使集群结构
更加灵活,而不再需要从OCR中获取节点列表。
gpnp 组件由两部分构成:gpnp wallet和gpnp profile;
2.gpnp wallet
gpnp wallet 的功能是保存需要访问 gpnp profile 文件的客户签名信息,
当客户访问 gpnp profile 时通过 wallet 中的签名信息进行验证,
以确保只有指定的客户能够访问profile文件。这部分内容不需要用户配置,
在安装GI时,Oracle会自动完成签名信息的初始化。
gpnp 的wallet 文件在 ${GI_HOME}/gpnp/wallets/peer 下。
cwallet.sso
3.gpnp profile
gpnpd 是一个多线程的进程,主要的线程包括:
gpnp 主线程:该线程负责完成主要的工作,如 访问 gpnp profile ,对该文件进行读取。
push线程:当本地的gpnp profile 发生改变或者需要向远程节点推送 gpnp profile时,
该线程负责传输 gpnp profile;
派遣线程:该线程负责接收 gpnpd 收到的各种消息并分派给对应的线程。
OCR 线程:该线程在发现OCR 中相关的信息发生改变时通知派遣线程。
当集群的重要配置信息发生改变时,首先,本地 gpnpd 的派遣线程通知
所有远程节点的派遣线程发生了配置改变;然后本地gpnpd 的push线程
将新版本的gpnp profile 发送给所有远程节点;接着,远程节点
的派遣线程在收到该消息之后开始接收新版本的 gpnp profile;