SQL Developer 连接类型 (Connection Type) :SID 和 Service Name的区别

SQL Developer连接Oracle数据库时,Basic连接类型最常用,需区分SID和服务名。


SID是数据库实例的唯一标识(1对1),适合单机数据库;


服务名是逻辑入口(1对多),适合RAC集群和云数据库。


建议优先尝试服务名,若失败再改用SID。


其他连接类型如TNS用于复杂生产环境,CloudWallet用于云数据库,Advanced用于定制化场景。


掌握Basic连接及SID/服务名区别可解决90%的连接问题。


连接方式有哪些?SID 和 Service Name的区别是什么


在 SQL Developer 中新建连接时,连接类型 (Connection Type) 的下拉菜单决定了你用哪种方式"找到"数据库。


对于最常用的几种场景,我的建议是:

  • 访问开发/测试环境的单机数据库 :选 Basic

  • 连接复杂的RAC集群或云数据库 :选 TNSCloud Wallet

  • 有特定的JDBC连接串要求 :选 Advanced


下面这张表帮你理清它们的区别:

连接类型 一句话解释 (给前端的你) 使用场景 需要填什么
Basic 直连 就像用IP地址访问一个具体的"工位" 连接本地、开发或测试环境的单机数据库,最常用也最直观 主机名端口 (1521)、服务名SID
TNS 通过通讯录连接 从本地 tnsnames.ora 文件里找"花名" 连接复杂的生产环境,尤其是RAC集群或配置了负载均衡的数据库 选择本地 TNS 网络别名
Cloud Wallet 用钥匙和地址证明连接 通过官方授权的钱包文件进行高安全连接 连接 Oracle Autonomous Database (云端自治数据库) 下载好的 钱包文件 (ZIP)服务名
Advanced 使用JDBC精确串连接 直接用精确格式的地址连接 连接串格式特殊或Basic/TNS方式无法满足的定制化场景 完整的 JDBC URL
LDAP 通过公司黄页连接 去中心化的目录服务里找数据库地址 大型企业统一管理数据库地址的场景 目录服务器地址等

🔍 核心问题:SID vs Service Name 到底该怎么填?

当你使用最常用的 Basic 连接类型时,会发现需要选择用 SID 还是 服务名 (Service Name)


这是Oracle新手最容易困惑的地方。

用一个比喻就能理解:

  • SID :相当于数据库实例的"身份证号"。它是唯一的,一个萝卜一个坑,指向某一个具体的数据库实例。

  • 服务名 (Service Name) :相当于数据库的"前台总机"。你打给这个总机,后台可能会安排一个或多个实例来接听你的请求。

特性 SID 服务名 (Service Name)
核心关系 1 对 1 : 一个SID只对应一个特定的数据库实例 1 对 N : 一个服务名可以对应多个数据库实例(常用于RAC集群)
主要用途 连接单机、非集群的传统Oracle数据库 连接RAC集群、备用数据库或需要负载均衡的环境
连接串格式 host:port:SID (冒号后直接跟SID) host:port/service_name (斜杠后跟服务名)
谁在用它 数据库管理员(DBA)内部管理 应用程序、终端用户的日常连接
获取方法 SELECT INSTANCE_NAME FROM V$INSTANCE; SELECT NAME FROM V$ACTIVE_SERVICES;

💡 实际填表时怎么选?

  1. 如果你不确定,首选填"服务名" :现在大部分新装的Oracle数据库(尤其是12c以后的版本)默认都推荐使用服务名。许多云数据库和现代应用也主要基于服务名来连接。

  2. 如果服务名连不上,再试试SID:一些老系统或特殊配置的单机数据库,DBA可能只给你配置了SID。

小技巧 :当你连接一个你完全不了解的新数据库时,可以两个都试一下。哪个能通就用哪个。或者直接问给你分配数据库账号的DBA:"请问是用SID连接还是服务名?具体的值是多少?"

💎 给前端转大数据的你

在SQL Developer里,填写正确的连接信息就是你进入数据库世界的"钥匙"。它的底层逻辑其实和你用VSCode的Remote-SSH插件连接一台远程服务器(需要IP、端口、密码)是完全一样的,只不过现在把"连接服务器"换成了"连接数据库"。

搞懂 Basic 连接(最常用)和 SID vs 服务名 的区别,足以应对日常工作90%的场景。当需要连接复杂的集群时,再深入了解 TNS 方式即可。

相关推荐
2501_901006471 小时前
c++如何利用C++23 std--print加速大量格式化数据的文件IO性能【进阶】
jvm·数据库·python
ljz20162 小时前
递归CTE查询优化方案
数据库
IT果果日记2 小时前
人大金仓使用Flink-CDC
大数据·数据库·后端
2301_782040452 小时前
JavaScript中Map在频繁增删键值对场景下的稳定性
jvm·数据库·python
a7963lin2 小时前
Golang怎么用GitLab CI构建_Golang如何编写.gitlab-ci.yml自动化构建流程【教程】
jvm·数据库·python
熊文豪2 小时前
国产数据库的中流砥柱:KingbaseES 高可用集群架构深度解析
数据库·架构
草莓熊Lotso3 小时前
Linux Socket 编程筑基:从底层本质到核心 API,一文吃透 Socket 预备知识
linux·运维·服务器·数据库·c++
字节高级特工3 小时前
MySQL数据库基础与实战指南
数据库·c++·人工智能·后端·mysql·adb