当前位置: 首页 > news >正文

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连接(最常用)和SIDvs服务名的区别,足以应对日常工作90%的场景。当需要连接复杂的集群时,再深入了解TNS方式即可。

http://www.jsqmd.com/news/768377/

相关文章:

  • 大语言模型幻觉问题解析与抗幻觉技术实践
  • Windows WSL环境搭建OpenClaw机器人开发环境全攻略
  • 终极英雄联盟回放分析工具:5步掌握ROFL播放器的完整使用指南
  • 别再让GPU内存浪费了!用vLLM的PagedAttention技术,让你的LLaMA推理吞吐量提升24倍
  • 自动化发布流程:使用skill-release-cop实现CI/CD版本管理
  • Python股票诊断工具:基于开源库构建自动化基本面分析框架
  • 梦笔记20260507
  • Vue3项目实战:Element Plus表格拖拽排序的‘坑’我都帮你踩完了(SortableJS集成指南)
  • 智能体输入编译器:将自然语言转化为结构化指令的工程实践
  • 手把手教你用ArduPilot飞控,让DIY的F450四轴在无GPS下也能稳如老狗(Kakute F7 AIO实战)
  • 5分钟掌握Windows风扇控制:Fan Control终极免费散热优化指南
  • 基于Matplotlib的学术论文图表标准化绘制与自动化工作流实践
  • LLM智能体调试框架AgentDebug核心技术解析
  • VoiceClaw开源项目:为本地AI模型构建安全语音交互接口
  • 后端开发中的安全防护策略:防范常见攻击
  • android使用C++交叉编译opencv转换图片示例
  • MIMIGenRec:基于GAN与VAE的数据生成与识别重建框架实战
  • 初次使用 Taotoken 从注册到发出第一个 API 请求的全流程
  • Ruby 运算符
  • Stencil计算在Tensor Cores上的性能优化实践
  • 别再被‘must have the same language type’报错卡住!详解Uniapp中<script>与<script setup>共存的正确姿势
  • 不止于消失:深入挖掘Unity Dissolve特效在技能、场景过渡中的高级应用
  • 树莓派AI开发套件Ubo Pod:开源智能助手全解析
  • AI智能体技能库构建指南:从模块化设计到工程实践
  • Windows Defender完全移除指南:3种模式深度解析与实战教程
  • 告别手动解析:用cantools一键生成DBC的C/C++代码,快速集成ROS2 Humble
  • 别再手动算比例了!用ABAP BAPI批量维护物料单位转换率(附完整代码)
  • 内容生产,正在进入“工业化时代”
  • 谷歌为Gemini开发AI助理Remy,可自主执行任务革新用户交互模式
  • 用Matlab复现FMCW雷达测距测速:从原理到代码的保姆级仿真指南