首先重启CRS资源使用root用户执行/u01/app/19.0.0/grid/bin/crsctl stop crs -f然后/u01/app/19.0.0/grid/bin/crsctl start crs等待CRS完全启动后再检查日志。如果还是失败检查ohasd服务ps -ef|grep ohasd如果没启动用/u01/app/19.0.0/grid/bin/crsctl start res ora.crsd -init。源1现象启动数据库时报错ORA-39504: failed to notify CRS of start/stop event。CRSCTL stat res -t 显示CRS资源在线但部分子资源OFFLINE。解决1. crsctl stop crs -f 强制停止CRS2. rm -rf /u01/app/oracle/product/19c/crs/gpnp/local/profs/* 删除gpnp文件3. crsctl start crs 重新启动CRS4. srvctl start database -d DB_NAME 启动数据库。源2远程处理Oracle ORA-39504登录目标服务器使用root执行crsctl stop crs然后检查/var/log/messages日志如果有OHASD问题kill掉ohasd进程再rm -f /var/tmp/.oracle/* 和 /u01/app/grid/product/11.2.0/grid/log/*/*.alert之后crsctl start crs重启后用crsctl stat res -t验证。源3故障修复步骤1. 停止所有资源 srvctl stop database -d orcl2. 清理CRScrsctl stop crs all3. 以root运行 crsctl start crs4. 检查dmesg | grep ORA看是否有内核问题5. 如果gpnp网络问题ntpdate同步时间后重试。远程用ssh无密码登录执行脚本自动化。源4遇到ORA-39504时先看CRS日志tail -f $GRID_HOME/log/hostname -s/alerthostname -s.log常见原因是网络中断导致CRS通知失败。修复ifconfig检查网卡重启NetworkManager服务 systemctl restart NetworkManager然后crsctl relocate resource ora.net1.network -n node1。源5简单方法su - gridcrsctl stop crs然后su - oraclesqlplus / as sysdbastartup mount如果挂起kill -9 ohasd再crsctl start crs。远程用expect脚本发送密码自动执行。源6Oracle 19c RAC中ORA-39504忽略启动事件忽略的话数据库能启动但监控失效修复用root/etc/init.d/init.ohasd restart然后crsctl check crs全在线后再srvctl config database -d dbname检查。源7FAQ:Q: ORA-39504重启后还报错怎么办A: 检查防火墙和selinuxiptables -F 和 setenforce 0临时关闭测试。Q: 远程怎么安全处理A: 用ssh-keygen生成密钥无密码登录写shell脚本一键执行。Q: 单节点还是RACA: 单节点CRS也可能报同样用crsctl stop/start crs修复。Q: 日志在哪里看详细错误A: $GRID_HOME/log/hostname/agent/ohasd.log 和 crsd.log。