Oracle 实例名/服务名 请问SID和Service_Name有什么区别
可以简单的这样理解:一个公司比喻成一台服务器,数据库是这个公司中的一个部门。
1.SID:一个数据库可以有多个实例(如RAC),SID是用来标识这个数据库内部每个实例的名字,
就好像一个部门里,每个人都有一个自己的名字。
2.SERVICE_NAME:是这个数据库对外宣称的名字,外面的人要想连接我这个数据库,
你就在客户端的连接串里写上service_name。它就像一个部门的名字,这个部门的名称在看门大爷(listener)那里有登记,
看门大爷一看你是要找SERVICE_NAME这个部门,就告诉你我们公司确实有这个部门,于是你就找到了,连接就建立了。
一句话来说就是:SID是对内的,是实例级别的一个名字,用来内部之间称呼用。SERVICE_name是对外的,
是数据库级别的一个名字,用来告诉外面的人,我数据库叫"SERVICE_NAME"。
你可以通过service_name参数指定这个名字是什么,可以有多个名字,名字随便起,叫狗蛋,翠花都没关系。
如果你不指定,默认的是Db_name. Db_domain,也就是global_name。
数据库里,还有ORACLE_SID,是告诉OS系统,我这个实例叫做什么。这些易混淆的名字,你要记住,
他们不是指数据库,就是指实例,就这两个东西,别无其它。他们具体用哪个名字,是要看对谁而言,
是什么场合。是对数据库,还是对操作系统,还是对外部链接。就像你对父母而言,你有小名叫幺儿;
对同学而言,你有外号叫灯泡;对办事机构,你有正规的名字叫王小明。但归根到底,是一回事。分清楚这点,就不容易混了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?