Oracle数据库无法正常连接的解决方案
本文包含以下几个问题的解决方案:Oracle 数据库的服务和监听程序消失、网络状态变动后,Oracle 数据库无法连接、Oracle 数据库监听程序的配置。
Oracle 数据库的服务和监听程序消失
问题描述
- Oracle SQL Develper,数据库连接不上,报路径不存在
- 监听服务 Listener 消失, OracleService 存在;
- SQLPlus 可运行,却无法连接到数据库。
- 服务中的所有有关 Oracle 的服务消失。
- 在 CMD 中使用
lsnrctl status
查询监听状态及lsnrctl start
启动监听服务均报错。例如输出
1 |
|
原因推测
报错原因应该是注册表中丢失了oracle实例的配置信息,导致丢失的原因多样,杀毒软件、木马病毒、其他恶意流氓软件等等。
解决方案
检查Oracle服务是否存在。
新增数据库ORCL实例服务的命令:
oradim -new -sid ORCL
。新增之后,服务列表中就会出现 OracleVssWriterORCL 和 OracleServiceOrcl 。使用Oracle Net Configuration Assistant 重新配置监听程序,之后服务列表中就会出现OracleOraDB21Home1TNSListener。如果服务中未出现,则以管理员身份在控制台输入
lsnrctl start
手动启动监听程序后即可出现。重新启动所有三个Oracle服务。
手动启动数据库,打开控制台,输入如下命令:
1 |
|
如果想故障重现,在服务中删除有关Oracle的服务。
网络状态变动后,Oracle 数据库无法连接
问题描述
PC 上安装有 Docker Desktop 应用程序,切换 Wifi 或在同一 Wifi 中 ip 地址发生变化后,Oracle 数据库无法连接
原因推测
Oracle 数据库配置文件的默认设置受到 Docker Desktop 应用程序的影响,使得网络状态变化后, Oracle 无法正常找到监听程序的 ip 地址。
解决方案
在稳定的网络环境下,重新启动 Docker Desktop.exe。
Oracle 数据库监听程序的配置
背景资料
- 监听程序是驻留在Oracle 数据库服务器上的一种进程,其职责是监听客户机连接请求和管理服务器的通行量。
- 每次客户机请求与服务器进行会话时,监听程序就接收到实际请求。
- 如果客户机的信息与监听程序的信息相匹配,监听程序就授权连接服务器。
- 客户机上建立与服务器的连接过程实际上就是建立和服务器上的监听程序连接的过程。
- 客户机必须配置有与服务器协议地址相同的连接描述方才能像监听程序发送连接请求。
配置过程
- 启动Net Configuration Assistant.exe程序,出现[Oracle Net Configuration Assistant :欢迎使用]对话框。
- 选择[监听程序配置],单击[下一步]
- 如果需要添加监听程序,选择[添加],单击[下一步];如果需要添加监听程序,选择[重新配置监听程序],单击[下一步]。
- 之后按提示进行操作,一般不需要额外更改默认设置。
参考
- Oracle 12c 数据库监听程序消失解决方法: https://blog.csdn.net/u014351755/article/details/76419725
- oracle监听程序的配置:https://blog.csdn.net/ITxiaobaibai/article/details/81302490