使用PLSQL Developer时,“ORA-12154: TNS:无法解析指定的连接标识符”问题的一个解决办法

使用PLSQL Developer时,“ORA-12154: TNS:无法解析指定的连接标识符”问题的一个解决办法
PLSQL Developer 版本 7.1
今天突然需要改一个很久以前的项目,那个项目使用的是Oracle9i
启动PLSQL Developer,提示输入用户名密码以及数据库,输入后,回车,提示:ORA-12154: TNS : 无法解析指定的连接标识符
从开始菜单中启动Oracle9i的Net Configuration Assistant,重新配置本地Net服务,测试可以连接目标数据库。但在PLSQL Developer中就是连接不上数据库。
从网上也查了一下,说的解决办法也五花八门。
重新安装了PLSQL Developer也还是连接不上,怪了。研究了一阵子,浪费了若干分钟。
无意中查看PLSQL Developer的一些选项设置,突然发现原来有个Oracle Home设置,设置好之后,连接正常。
原来我的机器中安装了Oracle9i的完整服务器端,并且同时还安装了一个Oracle10g的客户端,这样在我的机器上相当于同时有两个Oracle Home。之前连接的时候,PLSQL Developer默认使用了10g的Home
所以连接不上。
PLSQL Developer中修改Oracle Home设置方法:
提示输入用户名密码是,取消,这样进入PLSQL Developer主界面,菜单Tools-Preferences,在设置窗口中,选择Oracle-Connection,对应设置窗口中,找到Oracle Home,选择OraHome92,保存设置,
然后重新启动PLSQL Developer,这时就可以正常登录了。
当然如果需要重新使用10g的数据库的本地Net服务,就需要再重新改回来OraClient10g_home。


无意中的发现,所以记录一下,也希望对看到的人有点帮助。 

### 解析 ORA-12154 错误 ORA-12154Oracle 数据库常见的错误之一,表示 TNS 无法解析指定连接标识符。这通常意味着客户端尝试通过名称访问数据库实例遇到了问题。 #### 可能的原因分析 未能成功解析连接标识符可能由以下几个原因引起: - **TNS 配置文件路径不正确**:如果 `TNS_ADMIN` 环境变量未设置或指向了错误的位置,则可能导致找不到必要的配置文件[^3]。 - **tnsnames.ora 文件中的条目有误**:此文件用于定义本地命名方法的服务名映射到网络地址的方式;任何拼写错误都会阻止匹配过程正常工作[^1]。 - **环境变量缺失**:当缺少某些必需的环境变量(如 `ORACLE_HOME`, `PATH`),也可能引发此类异常情况[^2]。 #### 排查步骤建议 为了有效处理上述提到的各种可能性,可采取如下措施来排查并解决问题: ##### 检查 tnsnames.ora 的位置和内容 确认 `TNS_ADMIN` 已经被设定成实际存储 `tnsnames.ora` 文件所在的目录,并且该文件内含有正确的服务描述信息。例如,在 Windows 上可以通过命令提示符查看当前用户的环境变量设置: ```batch echo %TNS_ADMIN% ``` 对于 Linux 或 macOS 用户来说则是使用 echo 命令加上 `$TNS_ADMIN` 来获取其值。 确保 `tnsnames.ora` 中存在对应的目标数据库别名记录,格式应类似于下面这样: ```plaintext CHENHAO01 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_host_name_or_ip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = chenhao01) ) ) ``` 请注意替换其中的具体参数以适应实际情况。 ##### 测试其他工具能否正常使用相同的连接字符串 利用像 SQL*Plus 这样的官方命令行实用程序之外的方法验证是否能够建立成功的会话也很重要。比如借助第三方图形界面应用程序(DBeaver/PLSQL Developer测试同样的连接串是否会抛出相同类型的错误消息。这样做有助于区分问题是特定于某个应用还是更广泛的影响到了整个系统的连通性。 ##### 使用 tnsping 实用程序检验基本功能 运行简单的 `tnsping` 测试可以帮助快速判断基础架构层面是否存在障碍。假设要检查名为 CHENHAO01 的目标端点状态,可以在命令行中执行以下指令: ```bash tnsping chenhao01 ``` 理想情况下应该返回一系列关于延迟间和响应次数的信息而不是失败报告。如果这里也出现问题则说明很可能是在更低级别的网络层面上出现了状况需要进一步调查。 ---
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值