Oracle监听服务“拒绝访问”是UAC权限拦截所致,须以管理员身份运行services.msc(Ctrl+Shift+Enter),并确认账户属Administrators组;若仍失败,改用启用的本地Administrator账户登录操作。
services.msc里Oracle监听服务显示“拒绝访问”
windows服务管理器(services.msc)中看到 oracleoradb11g_home1tnslistener 或类似名称的服务状态为“已停止”,右键启动却弹出“拒绝访问”——这不是监听配置问题,而是权限卡住了。普通用户账户(哪怕加了管理员组)在uac启用时,对oracle服务的启停操作常被拦截。
- 必须以**管理员身份运行**
services.msc:按 Win+R → 输入services.msc→ 不要直接回车,先按 Ctrl+Shift+Enter;若弹出UAC确认框,点“是” - 检查当前登录账户是否属于
Administrators组:命令行运行net user %username%,确认输出中包含Local Group Memberships *Administrators - 如果用的是域账户,且该账户在本地 Administrators 组中但依然失败,临时改用本地 Administrator 账户登录再试(注意:不是“Administrator”禁用账户,而是启用后的同名账户)
监听服务存在但无法启动,日志报错 TNS-12560 或 TNS-00530
启动时提示 TNS-12560: TNS:protocol adapter error 或 TNS-00530: Protocol adapter error,大概率是监听器找不到有效的 ORACLE_HOME 环境变量,或注册表中服务启动参数残留旧路径。
- 打开注册表编辑器(
regedit),定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraDb11g_home1TNSListener - 检查
ImagePath值:它应该指向类似"C:\app\oracle\product\11.2.0\dbhome_1\BIN\tnslsnr.exe" -inherit的完整路径,且路径中的目录必须真实存在、可读 - 对比系统环境变量
ORACLE_HOME是否与该路径一致;不一致就手动修正环境变量,并重启命令行或资源管理器 - 特别注意:如果曾卸载重装过Oracle,旧注册表项可能未清理干净,导致服务试图加载已删除路径下的
tnslsnr.exe
监听服务能启动但 lsnrctl status 报错 TNS-12541
服务状态显示“正在运行”,但命令行执行 lsnrctl status 仍返回 TNS-12541: TNS:no listener,说明监听进程虽被 Windows 托管启动,但实际未成功绑定端口或初始化完成。
- 先确认监听器真正运行:命令行运行
ps -ef | grep tnslsnr(Linux)或tasklist /fi "imagename eq tnslsnr.exe"(Windows),看是否有tnslsnr.exe进程 - 没有进程 → 服务只是“假启动”,需查
$ORACLE_HOME\network\log\listener.log,重点找TNS-01106(监听名冲突)、TNS-01155(参数文件错误)等早期错误 - 有进程但
lsnrctl连不上 → 检查listener.ora中HOST值是否写死为旧主机名或不可达IP;换成localhost或127.0.0.1后运行lsnrctl reload - 别忽略
sqlnet.ora中的NAMES.DIRECTORY_PATH设置,若误删(TNSNAMES),lsnrctl可能因解析不到监听名而失败
防火墙放行后仍连不上,tnsping 超时
tnsping ORCL 返回 TNS-12535: TNS:operation timed out,即使确认监听进程在跑、端口 1521 已开放,问题往往出在监听器绑定的网络接口上。
- 运行
lsnrctl status,看输出中Listening Endpoints Summary的HOST是什么:如果是服务器主机名,而客户端用 IP 连接,DNS 解析失败就会超时 - 临时把
listener.ora中的HOST = your-hostname改成HOST = 0.0.0.0(监听所有接口)或明确写成本机 IP,然后lsnrctl stop && lsnrctl start - Windows 防火墙的“入站规则”要同时放行 TCP 1521 和 UDP 1521(Oracle 11g 动态端口注册有时依赖 UDP)
- 企业环境中,某些安全策略会拦截非标准网卡(如 Hyper-V 虚拟网卡、Docker NAT 网卡)上的监听,建议只在物理网卡或主网卡上监听
关键点在于:Windows 服务权限和注册表路径是隐性瓶颈,lsnrctl 和 Windows 服务状态不一致是典型信号,而 tnsping 超时几乎总是 listener.ora 中 HOST 值与实际网络拓扑不匹配所致。


















