前因后果
win上配置oracle经常性会装server端+client端。
所以经常有运维人员说win上不能使用sqlplus / as sysdba。这个根本原因是使用的sqlplus是客户端的,但是ORACLE_HOME也是客户端的,本地认证登录,ORACLE_HOME要是server端的。只需要调整他的环境变量,将客户端的环境变量去掉即可。
然后在同事在处理这个事之后,出现了诡异的现象。
故障现象
sqlplus / as sysdba正常
通过监听连接数据库会卡住不动
监听可以通过服务启动,数据库服务也能正常注册到监听
监听打开trace功能,trace 2以上就会导致监听崩溃(2以上即是开启监听)
以下是trace 16的日志
Trace file D:\app\Administrator\diag\tnslsnr\WIN-DE1RJG8FCVN\listener\trace\ora_2860_6160.trc
2024-03-30 10:46:40.191000 : nsglrespond:entry
2024-03-30 10:46:40.191363 : nsdo:entry
2024-03-30 10:46:40.191383 : nsdo:cid=5, opcode=67, *bl=143, *what=1, uflgs=0x0, cflgs=0x3
2024-03-30 10:46:40.191398 : nsdo:rank=64, nsctxrnk=0
2024-03-30 10:46:40.191412 : nsdo:nsctx: state=8, flg=0x2100400c, mvd=0
2024-03-30 10:46:40.191431 : nsdo:gtn=206, gtc=206, ptn=10, ptc=8155
2024-03-30 10:46:40.191446 : nsdo:143 bytes to NS buffer
2024-03-30 10:46:40.191459 : nsdo:nsctxrnk=0
2024-03-30 10:46:40.191471 : nsiooverflow:entry
2024-03-30 10:46:40.191485 : nsdo:normal exit
2024-03-30 10:46:40.191500 : nsglrespond:exit
2024-03-30 10:46:40.191547 : nsgldissolve:entry
2024-03-30 10:46:40.191563 : nsdisc:entry
2024-03-30 10:46:40.191573 : nsclose:entry
2024-03-30 10:46:40.191583 : nsvntx_dei:entry
2024-03-30 10:46:40.191592 : nsvntx_dei:exit
2024-03-30 10:46:40.191601 : nstimarmed:entry
2024-03-30 10:46:40.191610 : nstimarmed:no timer allocated
2024-03-30 10:46:40.191620 : nstimarmed:normal exit
2024-03-30 10:46:40.191629 : nsfull_cls:entry
2024-03-30 10:46:40.191639 : nsfull_cls:cid=5, opcode=65, *bl=0, *what=0, uflgs=0x0, cflgs=0x0
2024-03-30 10:46:40.191649 : nsfull_cls:nsctx: state=8, flg=0x21004008, mvd=143
2024-03-30 10:46:40.191659 : nsevunreg:entry
2024-03-30 10:46:40.191669 : nsevunreg:cid=5, sgt=0, rdm=2
2024-03-30 10:46:40.191679 : nsevunreg:4 registered connection(s)
2024-03-30 10:46:40.191689 : nsevunreg:exit (0)
2024-03-30 10:46:40.191698 : nsdo:entry
2024-03-30 10:46:40.191707 : nsdo:cid=5, opcode=67, *bl=0, *what=1, uflgs=0x0, cflgs=0x1
2024-03-30 10:46:40.191718 : nsdo:nsctx: state=8, flg=0x1004008, mvd=143
2024-03-30 10:46:40.191727 : nsdo:gtn=206, gtc=206, ptn=153, ptc=8155
2024-03-30 10:46:40.191737 : nsdo:normal exit
2024-03-30 10:46:40.191746 : nsdofls:entry
2024-03-30 10:46:40.191759 : nsdofls:DATA flags: 0x40
2024-03-30 10:46:40.191768 : nsdofls:sending NSPTDA packet
2024-03-30
解决方法
问题出在WINDOWS的服务那里
监听服务的登录这里是本地服务,需要将本地服务修改成administrator
个人总结
故障现象很类似于linux系统下,/home/oracle路径没有权限。
但是从linux类比到windows是真的很麻烦,windows真是运维一生之敌