oracle9i 和10g安装在同一系统下的TNS: 协议适配器错误的解决方法

本文介绍了解决在Windows环境下使用Oracle 9i时遇到的ORA-12560:TNS协议适配器错误的方法。通过正确设置环境变量ORACLE_SID,解决了SQL Plus连接时出现的问题。

系统环境:WINDOS XP PRO

刚开始机器上装的是ORACLE9i,今年3月到客户那边做项目用到是10G,所以就装了个.最近回到公司要用到以前的数据库就启动了ORACLE9的服务程序.开始用的真接用的EM没有什么问题.但是用SQLPLUS联接时总是提示ORA-12560: TNS: 协议适配器错误,就执行了lsnrctl看了下正常的.我想是不是装两ORACLE的问题,就到网上找找了.结果和我相同问题的还很多吗.有人说监听文件错了.有人说要改注册表,有人说环境变量要改等等,可能是针的问题所以解决这道不同.前两是不用考虑了,我的监听和注册表都没有问题的.所以就看环境变量吧.有两种:一种是在系统高级那的设置环境变理.一种是在CMD应用前SET下.

环境变量我是不会改的,改完之后不知道又出什么新问题.就选择了在应用前SET环境变量,这也是没办法的解决之法了.

执行结果:

WINDOWS下:

SET ORACLE_SID=xxxxx(SID名称)

UNIS之类的系统下:

export  ORACLE_SID=xxxx(sid名称)

 

在执行SQLPLUS命令就没有ORA-12560提示了.

 

留记以备查.

 

 

by ddv

 

 图1

### Oracle 19c 安装 ORA-12560 TNS 协议适配器错误解决方案 当遇到TNS-12560TNS-00530错误时,这通常意味着监听程序未能成功启动或客户端无法连接到数据库实例。可能的原因包括但不限于网络配置不正确、环境变量设置不当以及监听文件配置有误。 #### 检查并修正`listener.ora` `tnsnames.ora` 确保这两个重要配置文件位于 `$ORACLE_HOME/network/admin` 目录下,并且其内容无语法错误。对于`listener.ora`, 需要确认其中定义的服务名服务地址是否准确[^1]: ```plaintext LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orclpdb) (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1) (SID_NAME = orclpdb) ) ) ``` 同样地,在`tnsnames.ora` 文件里也要保证目标数据库描述符被正确定义: ```plaintext ORCLPDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orclpdb) ) ) ``` #### 设置必要的环境变量 为了使Oracle软件能够正常工作,必须适当设定一些操作系统级别的环境变量,比如`$ORACLE_HOME` `$PATH`. 这些可以通过编辑用户的shell profile脚本实现, 如 `.bash_profile` 或者 `.bashrc`. ```bash export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 export PATH=$ORACLE_HOME/bin:$PATH ``` 之后重新加载该profile文件以应用更改. ```bash source ~/.bash_profile ``` #### 启动Listener服务 尝试通过命令行工具来手动启动监听进程,并观察是否有任何异常提示信息输出至终端窗口中。 ```bash lsnrctl start ``` 如果一切顺利的话,则应该可以看到类似于下面的信息显示出来表示监听已经成功开启: ```text Starting /u01/app/oracle/product/19.0.0/dbhome_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 19.0.0.0.0 - Production Log messages written to /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date ... Uptime ... Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))) The listener supports no services The command completed successfully ``` #### 使用Net Manager图形界面调整配置 除了上述方法外还可以考虑利用Oracle自带的Net Configuration Assistant (`netca`) 工具来进行更直观便捷的操作;或者是采用 Net Manager GUI 应用来修改相应的参数选项。 #### 测试连接 最后一步就是验证能否建立有效的数据库会话链接了。可以借助SQL*Plus或其他第三方应用程序完成这项测试作业。 ```sql sqlplus system/password@orclpdb ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值