1、由于Private IP错误,在启动CRS时会报如下错误。
2、故障处理
由于通过oifcfg正常修改Private IP的前提是两个节点CRS必须启动,因此这条路已经变为死循环。
另一条路是通过gpnptool进行极端情况下恢复
GPNPD(Greater Pittsburgh Nonprofit Partnership)
进程的主要的作用是在集群各个节点中同步GPnP profile文件,在Clusterware中,CSS、GPnP
等服务的启动都需要依赖于GPnP profile文件。而GPnP profile文件是一个xml文件,它存
储 的 位 置 是 在 : $GRID_HOME/gpnp/<hostname>/profile/peer/profile.xml ,
$GRID_HOME/gpnp/profile/peer/profile.xml(全局备份,最原始的配置信息)。GPnPD进程写
的trace文件会存放在$GRID_HOME/log/<hostname>/gpnpd/gpnpd.log。
有几个重要的信息存储在GPnP profile文件:
a、网络接口和IP地址(公网和私网)
b、ASM diskstring和spfile信息
GPnP profile保存的是RAC的配置信息,包括集群名称、网络类型信息(public/private)、
ASM和CSS的存储信息、安全的数字签名,以及ASM实例的SPFILE文件位置。当集群配置
发生变化时,所有节点的该文件会被自动更新。在安装、系统引导或者当使用标准的集群工
具更新期间,这些活动包括:oifcfg 改变网络信息、crsctl 改变css设备、ASM额外的存储
等,会通过gpdpd进程复制GPnP profile到所有的其他节点。
2.1先强制关闭所有节点的CRS
# crsctl stop crs -f
2.2 以排他模式和不启动crsd进程的方式启动crs
# crsctl start crs -excl -nocrs
2.3备份gpnp配置信息
# mkdir /u01/gpnp
# gpnptool get -o=/u01/gpnp/profile.xml
#more /u01/gpnp/profile.xml 注意标红的地方就是琨哥修改错误的Private IP信息
<?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-p
np.org/2005/11/gpnp-profile gpnp-profile.xsd" ProfileSequence="6" ClusterUId="7c7d4290ac6c6f8ebf8f594b3523d464" ClusterName="hlesdb2-cluster" PALocation=""><gpnp:Netwo
rk-Profile><gpnp:HostNetwork id="gen" HostName="*"><gpnp:Network id="net2" IP="10.135.17.0" Adapter="bond0" Use="public"/><gpnp:Network id="net3" Adapter="eth3" IP="17
2.16.17.130" Use="cluster_interconnect"/></gpnp:HostNetwork></gpnp:Network-Profile><orcl:CSS-Profile id="css" DiscoveryString="+asm" LeaseDuration="400"/><orcl:ASM-Pro
file id="asm" DiscoveryString="/dev/mapper/*" SPFile="+OCR_VOTE/hlesdb2-cluster/asmparameterfile/registry.253.857395487"/><ds:Signature xmlns:ds="http://www.w3.org/200
0/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>C4s+NZHYprAYsjH4XFfuAH7H+XE=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:Signa
tureValue>MlmlDcPhXkY2vmzaYUe8CWumsgbMfu64uKRL6om595IYTwAwrsJ02jNr455SNM/DLD8uIyPXJ9kNKxnaaU8LJXmt7CWzXX8Z+IvWlvHx7eHJPQ0kWmsy+xjVvUMmBAkxkorvow6LjJkMkfHEWW/oe9U6uPnXw
IyKzTQWGJcl71Y=</ds:SignatureValue></ds:Signature></gpnp:GPnP-Profile>
2.4查看gpnp配置信息
# gpnptool get
次步骤查出的信息和备份出配置文件应该一模一样。
2.5修改备份的gpnp配置信息
a.备份配置文件:
# cp /u01/gpnp/profile.xml /u01/gpnp/p.xml
b.获取当前的序列号(每次修改并写回gpnp中会有一个序列号作为标识)
# gpnptool getpval -p=/u01/gpnp/p.xml -prf_sq -o-
6
c.获取共有网络和私有网络标识id
# gpnptool getpval -p=/u01/gpnp/p.xml -net -o-
net2 net3
d.修改配置文件中的序列号(原序列号值加1)和私网的实际网段(subnet)信息:
# gpnptool edit -p=/u01/gpnp/p.xml -o=/u01/gpnp/p.xml -ovr -prf_sq=7
-net3:net_ip=192.168.100.0
Resulting profile written to "/u01/gpnp/p.xml".
Success.
e. 查看配置文件是否修改成功
# more /u01/gpnp/p.xml
f. 验证序列号是否修改完成
# gpnptool getpval -p=/u01/gpnp/p.xml -prf_sq -o-
7
g. 用私钥重新标识配置文件
# gpnptool sign -p=/u01/gpnp/p.xml -o=/u01/gpnp/p.xml -ovr -w=cw-fs:peer
Resulting profile written to "/u01/gpnp/p.xml".
Success.
h. 回写配置文件信息到gpnp profile
# gpnptool put -p=/u01/gpnp/p.xml
i.启动crsd进程
# crsctl start res ora.crsd -init
CRS-2672: Attempting to start 'ora.crsd' on 'hlesdb01'
CRS-2676: Start of 'ora.crsd' on 'hlesdb01' succeeded
# crs_stat -t
CRS-0184: Cannot communicate with the CRS daemon.
j. 查看和修改私有网络配置
# oifcfg getif
bond0 10.135.17.0 global public
eth3 192.168.100.0 global cluster_interconnect
PRIF-30: Network information in OCR profile needs to be synced with GPnP profile.
注意此时标红的信息,这是因为我们手工修改了GPNP profile,但是OCR中的信息还是错误的,所以不一致。
下一步就是要恢复OCR。
2.5恢复OCR
a.查看OCR自动备份信息
$ocrconfig –showbackup
hlesdb01 2014/09/12 14:35:51 /u01/app/11.2.0/grid/cdata/hlesdb2-cluster/backup00.ocr
hlesdb01 2014/09/12 08:35:50 /u01/app/11.2.0/grid/cdata/hlesdb2-cluster/backup01.ocr
hlesdb01 2014/09/12 02:35:50 /u01/app/11.2.0/grid/cdata/hlesdb2-cluster/day.ocr
hlesdb01 2014/09/12 02:35:50 /u01/app/11.2.0/grid/cdata/hlesdb2-cluster/week.ocr
b.停CRS,并启动到排他模式
#crsctl stop crs -f
#crsctl start crs -excl -nocrs
c.从备份恢复OCR信息
# ocrconfig -restore /u01/app/11.2.0/grid/cdata/hlesdb2-cluster/backup00.ocr
d.恢复完后检查OCR信息
#ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 3
Total space (kbytes) : 262120
Used space (kbytes) : 3160
Available space (kbytes) : 258960
ID : 878197920
Device/File Name : +OCR_VOTE
Device/File integrity check succeeded
Device/File not configured
Device/File not configured
Device/File not configured
Device/File not configured
Cluster registry integrity check succeeded
e. 查看和修改私有网络配置
# oifcfg getif
bond0 10.135.17.0 global public
eth3 192.168.100.0 global cluster_interconnect
这次没有再出现错误信息
f.正常重启CRS
#crsctl stop crs
#crsctl start crs
OK,大功告成,CRS和数据库都已经正常启动!




