[orcle]远程连接数据库错误分析

本文介绍了解决Oracle数据库监听器配置中常见的三个错误:TNS-12535操作超时、TNS-12541无监听程序及ORA-12514无法解析连接标识符的方法。通过修改listener.ora文件并添加正确的SID_LIST内容来确保远程连接正常。

服务器listener.ora文件内容如下,安装好之后的默认内容:

# listener.ora Network Configuration File: E:\devsoft\oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = E:\devsoft\oracle\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:E:\devsoft\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = E:\devsoft\oracle

远程连接错误:

一、TNS-12535:TNS:操作超时

原因之一:若lsnrctl status状态正常,有可能远程主机开启了防火墙


二、TNS-12541:TNS:无监听程序

原因之一:若lsnrctl status状态正常,将LISTENER中localhost改为真实的IP地址或域名


三、ORA-12514:TNS:无法解析指定的连接标识符

查看lsnrctl status显示内容,没有期望的SID名称dbjw

服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功

将SID_LIST_LISTENER中的SID_LIST添加(也可替换)如下内容:

	(SID_DESC = 
	  (GLOBAL_DBNAME = dbjw)
	  (ORACLE_HOME = E:\devsoft\oracle\product\11.2.0\dbhome_1)
	  (SID_NAME = dbjw)	
	)

GLOBAL_DBNAME对外提供的服务名

SID_NAME待监听实例名

重启监听器,再次查看监听器状态,已包含SID:dbjw

服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "dbjw" 包含 1 个实例。
  实例 "dbjw", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
### 如何连接到 Oracle 数据库 要成功连接到 Oracle 数据库,可以使用多种工具和方法。以下是基于 Navicat 和 PL/SQL 的具体配置说明。 #### 使用 Navicat 连接到 Oracle 数据库 打开 Navicat 软件后,可以通过以下方式创建一个新的 Oracle 连接1. 在工具栏中点击“连接”,并从下拉菜单中选择“Oracle”选项[^1]。 2. 如果本地未安装 Oracle 客户端,则可能需要手动配置 OCI 文件路径。OCI 文件可以从官方或其他可信资源下载,并按照教程中的指引完成设置[^3]。 #### 配置 PL/SQL 开发者客户端以远程访问 Oracle 数据库 对于 PL/SQL Developer 用户来说,确保所使用的 Instant Client 版本与目标数据库的位数一致非常重要。例如,查询目标服务器上的 Oracle 数据库版本信息之后,应下载对应的 Instant Client 包[^2]。接着执行如下操作: - 将解压后的 Instant Client 库目录加入系统的环境变量 PATH 中; - 启动 PL/SQL Developer 并输入正确的主机名、SID(通常为 `ORCL`)、用户名以及密码来建立会话[^4]。 #### IDEA 工具下的 JDBC 方式接入 Oracle DBMS 当采用 IntelliJ IDEA 来管理项目并与后台 Oracle 数据源交互时,需注意调整驱动程序的相关参数。默认情况下可以选择内置支持或者自定义加载外部 JAR 包作为适配器。其中 SID 字段代表服务实例名称,默认可能是 'orcl';而 Driver 设置项则指向具体的类全限定名如 `oracle.jdbc.driver.OracleDriver`[^5]。 ```java // Java 示例代码展示如何通过JDBC API初始化Connection对象 import java.sql.Connection; import java.sql.DriverManager; public class Main { public static void main(String[] args){ String url = "jdbc:oracle:thin:@localhost:1521:orcl"; try{ Connection conn = DriverManager.getConnection(url, "your_username", "your_password"); System.out.println("Connected successfully!"); }catch(Exception e){ e.printStackTrace(); } } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值