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系统,我这个实例叫做什么。这些易混淆的名字,你要记住,
他们不是指数据库,就是指实例,就这两个东西,别无其它。他们具体用哪个名字,是要看对谁而言,
是什么场合。是对数据库,还是对操作系统,还是对外部链接。就像你对父母而言,你有小名叫幺儿;
对同学而言,你有外号叫灯泡;对办事机构,你有正规的名字叫王小明。但归根到底,是一回事。分清楚这点,就不容易混了。

转载自:http://blog.csdn.net/z69183787/article/details/25706269

时间: 2024-10-12 13:02:01

Oracle 的SID 与 Service_Name 区别的相关文章

ORACLE中SID和SERVICE_NAME的区别

先来讲一个小故事,2015年6月份,有个客户迁移了数据库,由单实例数据库变成了RAC.JAVA应用程序出现了无法连接数据库的情况,但是PL/SQL能连接上数据库.由于项目比较庞大,虽然在半夜切换的,但是也不能接受长时间的业务停顿.当时,我对ORACLE技术也只是略知皮毛.在咨询过公司研发后,他们给我的建议是:参考PL/SQL的连接参数,将spring中jdbc连接的url由jdbc:oracle:thin:@10.2.0.2:1521:orcl改为jdbc:oracle:thin:@(DESCR

Oracle里SID、SERVICE_NAME

本文仅用作备忘,无实际指导意义,逻辑略混乱. 1.命令show parameter name; SQL> show parameter name; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_file_name_convert string db_name string orcl db_unique_name string orcl globa

jdbc连接数据库使用sid和service_name的区别 oracle

jdbc连接数据库使用sid和service_name的区别 最近使用jdbc连接oracle时报错: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was: 10.12.162.84:1521:xxxx 登陆oracle数据发现在network/admin/文件夹下的tnsnames.o

jdbc连接数据库使用sid和service_name的区别

最近使用jdbc连接oracle时报错: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was: 10.12.162.84:1521:xxxx 登陆oracle数据发现在network/admin/文件夹下的tnsnames.ora中配置的是:SERVICE_NAME =xxxx.经过查询

jdbc连接数据库使用sid和service_name的区别(转)

jdbc连接数据库使用sid和service_name的区别 博客分类: oracle 最近使用jdbc连接oracle时报错: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was: 10.12.162.84:1521:xxxx 登陆oracle数据发现在network/admin/文件

oracle的oci和thin区别

我是今天看到tomcat数据源的配置时,想起来这个问题,刚开始还不晓得thin是什么东西! database.url=jdbc:oracle:thin:angel/[email protected]:1530:monitordb 经过上网查询,得到如下结果: jdbc:oracle连接的是oracle数据库 thin是一种方法 angel/oracle那个angel是用户名,oracle是密码 192.168.55.11是你要连的电脑ip 1530是oracle的连端口(1521貌似是默认端口)

oracle的oci和thin区别(数据源)

我是今天看到tomcat数据源的配置时,想起来这个问题,刚开始还不晓得thin是什么东西! database.url=jdbc:oracle:thin:angel/[email protected]:1530:monitordb 经过上网查询,得到如下结果: jdbc:oracle连接的是oracle数据库 thin是一种方法 angel/oracle那个angel是用户名,oracle是密码 192.168.55.11是你要连的电脑ip 1530是oracle的连端口(1521貌似是默认端口)

解决java连接oracle报sid错误

上次使用jdbC连接oracle数据库报了一个关于sid的错误.无法连接至sid.解决方法是使用如下格式一方法连接 格式一: : jdbc:oracle:thin:@//<host>:<port>/<service_name> Example: jdbc:oracle:thin:@//192.168.2.1:1521/XE 注意这里的格式,@后面有//, 这是与使用SID的主要区别. 这种格式是Oracle 推荐的格式,因为对于集群来说,每个节点的SID 是不一样的,但

JDBC中Oracle的SID和ServiceName两种方式的连接字符串格式

SID格式: jdbc:oracle:thin:@<host>:<port>:<SID> 如: jdbc:oracle:thin:@192.168.1.1:1521:orcl ServiceName格式: jdbc:oracle:thin:@//<host>:<port>/<service_name> 如: jdbc:oracle:thin:@//192.168.1.1:1521/orcl 错误信息: 原文地址:https://www