ORA-28547的解决

昨天不知道怎么的(可能是由于更改了系统日期也可能是其他的),突然在pl/sql中不能执行SQL语句,但是能连上。上网查了些资料,终于:

1. 修改oracle的网络配置文件,具体做法是:在oracle安装目录下搜索sqlnet.ora文件,一般在$\NETWORK\ADMIN目录下,
用记事本打开把文件中的一行:
SQLNET_AUTHENTICATION_SERVICES= (NTS)
修改为:
SQLNET_AUTHENTICATION_SERVICES= (NONE)


2. 同时修改监听器配置文件,具体做法是:  在oracle安装目录下搜索listener.ora文件,一般在$\NETWORK\ADMIN目录下,把主机名用ip地址代替,例如(ADDRESS = (PROTOCOL = TCP)(HOST = HBONLINE1)(PORT = 1523))改为(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1523))。

<think>1. 问题分析:用户询问ORA-28547错误的解决方法,并在之前的对话中提供了三条引用信息。 - 引用[1]:描述了用户遇到ORA-28547错误的情况,并提到在网络上找到了解决方法。但没有提供具体步骤。 - 引用[2]:关于ORA-2063错误,与当前问题无关。 - 引用[3]:关于ORA-00257错误,与当前问题无关。 2. 虽然引用[1]没有给出具体步骤,但根据错误代码ORA-28547,可以总结出这个错误通常与Oracle网络配置有关。 - 标准解决方案:这个错误的常见原因包括监听器配置问题、TNS配置错误或权限问题。建议以下步骤: a. 检查监听器状态:确保监听器已启动。 b. 检查TNS配置文件:验证tnsnames.ora和listener.ora中的配置是否正确。 c. 检查网络连接:确保客户端和服务器之间的网络连通性。 d. 检查权限:确认用户是否有权限连接数据库。 3. 由于用户提到在网络上找到解决方法(引用[1]),可以参考Oracle官方文档或常见解决方案: - Oracle官方文档将该错误描述为“连接到服务器的尝试失败,可能是由于Oracle Net管理错误”。 - 典型步骤包括: 1. 检查并启动监听器:使用命令`lsnrctl status`和`lsnrctl start`。 2. 检查客户端和服务器端的TNS配置:确保服务名、主机名和端口正确。 3. 检测网络:使用`tnsping`测试连接。 4. 检查防火墙设置:确保端口没有被防火墙阻止。 4. 由于引用[2]和[3]不相关,可以忽略。 5. 回答要结构化、清晰,并用中文表述,同时生成相关问题。 6. 根据问题生成3个相关问题。 最终回答结构: - 先解释错误原因。 - 分步骤说明解决方法。 - 注意事项。 - 结尾处自然添加引用标识(引用[1])。 - 最后生成相关问题。 </think> ### ORA-28547 错误解决方法 该错误表明**客户端无法连接到 Oracle 服务器**,通常由以下原因导致: 1. **监听器未启动或配置错误** 通过命令检查监听器状态: ```bash lsnrctl status ``` 若未运行,使用管理员权限执行: ```bash lsnrctl start ``` 2. **TNS 配置文件错误** 检查 `$ORACLE_HOME/network/admin/tnsnames.ora` 和 `listener.ora`: ```bash cat $ORACLE_HOME/network/admin/tnsnames.ora cat $ORACLE_HOME/network/admin/listener.ora ``` - ✅ 确认 `HOST` 为正确的服务器 IP/域名 - ✅ 确认 `PORT` 与监听器配置一致(默认 1521) - ✅ 检查服务名 `SERVICE_NAME` 是否匹配数据库实例名 3. **网络问题** - 使用 `tnsping` 测试连接: ```bash tnsping <TNS条目名称> ``` 若超时则需检查: - 防火墙是否开放 1521 端口 - 服务器与客户端的网络连通性(`ping`/`telnet`) 4. **权限或环境问题** - 服务器运行 `lsnrctl services` 验证服务状态 - 客户端检查环境变量 `ORACLE_HOME` 和 `PATH` 是否正确 - 重启监听器(需管理员权限): ```bash lsnrctl stop lsnrctl start ``` 5. **其他修复方案** - 在 `sqlnet.ora` 中添加: ``` SQLNET.AUTHENTICATION_SERVICES = (NTS) ``` - 重新配置监听器:运行 Oracle 自带的 `netca`(网络配置助手) > 💡 **关键提示**:需确保客户端/服务器使用的 Oracle 版本兼容,且配置文件中禁止出现中文符号[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值