首页 » ORACLE 9i-23ai » Troubleshooting ORA-29783:GPnP Attribute SET Failed With Error [CLSGPNP_NOT_FOUND]

Troubleshooting ORA-29783:GPnP Attribute SET Failed With Error [CLSGPNP_NOT_FOUND]

在oracle RAC 环境中节点的信息配置文件有些记录在gpnp profile,如asm_diskstring, 当修改其中的参数时需要在节点间同步,在root.sh时也需要校验,CSS守护进程在启动期间使用GPNP profile来发现 voting files(参数“DiscoveryString”)。发现字符串的不正确值将阻止CSS守护进程(最终阻止整个CRS堆栈)启动。相关的服务有gpnp.bin\mdns.bin。 如果因为一些原因无法push到远程节点时会提示如下错误, 这里记录几个分析方法:

ORA-29783:GPnP Attribute SET Failed With Error [CLSGPNP_NOT_FOUND]

今天同事在增加ASM DISK新路径时遇到了这个问题。

 SQL>alter system set asm_diskstring='<string_1>', '<string_2>', '<string_3>', '<string_4>';

ERROR at line 1:
 ORA-29783: GPnP attribute SET failed with error [CLSGPNP_NOT_FOUND]

oracle@ora19c1:/home/oracle $oerr ora  29783
29783, 00000, "GPnP attribute SET failed with error [%s]"
// *Cause:   An attempt to set the Grid Plug and Play (GPnP) attribute failed.
//           See the brackets for the reason.
// *Action:  Resolve the problem in the included message and retry the request.

注意这里提示的是gpnp 修改配置文件或同步错误, 此时show parameter确认内存中的asm_diskstring并且是修改生效的。

排查方法

1,  确认spfile 是否同步

SQL> show parameter asm_diskstring;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring string  <string_1>, <string_2>, <string_3>, <string_4>

SQL> show spparameter asm_diskstring;

确认spfile与memory中diskstring值一致,防止增加磁盘后,下次重启文件读取错误。

2, 检查gpnp file是否正常

[grid@ora19c1 ~]$ gpnptool lfind
Success. Local gpnpd found.

# gpnptool get
...
Success.

[grid@ora19c1 ~]$ gpnptool rget
Warning: some command line parameters were defaulted. Resulting command line:
 /u01/app/19.3.0.0/grid/bin/gpnptool.bin rget -o-
..
Found 2 gpnp service instance(s) to rget profile from.
...

[grid@ora19c1 ~]$ gpnptool find -t=7
Found 2 instances of service 'gpnp'.
 mdns:service:gpnp99fc885f9._tcp.local.://ora19c1:38921/agent=gpnpd,cname=rac19c-cluster,guid=13148db89fdd4fd3bfc9c1399fc885f9,host=ora19c1,pid=28240/gpnpd h:ora19c1 c:rac19c-cluster u:13148db89fdd4fd3bfc9c1399fc8
 mdns:service:gpnp99fc885f9._tcp.local.://ora19c2:32684/agent=gpnpd,cname=rac19c-cluster,guid=13148db89fdd4fd3bfc9c1399fc885f9,host=ora19c2,pid=7463/gpnpd h:ora19c2 c:rac19c-cluster u:13148db89fdd4fd3bfc9c1399fc8

3, 检查操作系统限制

# systemctl status firewalld
-- stop 

# cat /etc/sysconfig/selinux
SELINUX=enforcing    --  change to permissive

-- Disable NetwokManager and Avahi daemon.
 #systemctl status NetworkManager.service
 #systemctl mask NetworkManager.service
 #systemctl stop NetworkManager.service
 #systemctl disable NetworkManager.service

如果无法发现其它节点,检查是否网络受阻,同样不建议interconnect network加任何port限制。

4, 尝试kill gpnpd.bin

ps -ef|grep gpnpd.bin
kill -9 xxxxpid 
ps -ef|grep gpnpd.bin

不健康的gpnpd.bin进程同样会导致无法通信,尝试kill 所有节点 gpnpd.bin, 也可以通过重启gpnpd.服务

# crsctl stop res ora.gpnpd -init
# crsctl start res ora.gpnpd -init

5, 开启实例19783 errorstack

SQL> alter system set events '29783 TRACE NAME ERRORSTACK level 3';
System altered.

SQL> alter system set asm_diskstring='<string_1>', '<string_2>', '<string_3>', '<string_4>';
alter system set asm_diskstring='<string_1>', '<string_2>', '<string_3>', '<string_4>'
*
ERROR at line 1:
ORA-29783: GPnP attribute SET failed with error [CLSGPNP_NOT_FOUND]

检查trace file, 像Mos Doc ID 2998044.1 记录显示是部分实例的mDNS服务异常。

6, 重启mDNS服务

crsctl stop res ora.mdnsd -init
crsctl start res ora.mdnsd -init

不会影响实例重启。

— enjoy —

打赏

, ,

对不起,这篇文章暂时关闭评论。