Oracle 服务名/实例名,Service_name 和Sid的区别

Service_name 和Sid的区别
Service_name:该参数是由oracle8i引进的。
在8i以前,使用SID来表示标识数据库的一个实例,但是在Oracle的并行环境中,一个数据库对应多个实例,这样就需要多个网络服务名,设置繁琐。为了方便并行环境中的设置,引进了Service_name参数,该参数对应一个数据库,而不是一个实例,而且该参数有许多其它的好处。
该参数的缺省值为Db_name. Db_domain,即等于Global_name。一个数据库可以对应多个Service_name,以便实现更灵活的配置。该参数与SID没有直接关系,即不必Service name 必须与SID一样。Sid是数据库实例的名字,每个实例各不相同。

可以简单的这样理解:
一个公司比喻成一台服务器,数据库是这个公司中的一个部门。
SID:一个数据库可以有多个实例(如RAC),SID是用来标识这个数据库内部每个实例的名字,就好像一个部门里,每个人都有一个自己的名字。
SERVICE_NAME:是这个数据库对外宣称的名字,外面的人要想连接我这个数据库,你就在客户端的连接串里写上service_name。它就像一个部门的名字,这个部门的名称在看门大爷(listener)那里有登记,
看门大爷一看你是要找SERVICE_NAME这个部门,就告诉你我们公司确实有这个部门,于是你就找到了,连接就建立了。

一句话来说就是:SID是对内的,是实例级别的一个名字,用来内部之间称呼用。SERVICE_name是对外的,是数据库级别的一个名字,用来告诉外面的人,我数据库叫"SERVICE_NAME"。

Java JDBC Thin Driver 连接 Oracle有三种方法:

格式一: Oracle JDBC Thin using a ServiceName:
jdbc:oracle:thin:@//<host>:<port>/<service_name>
Example: jdbc:oracle:thin:@//192.168.2.1:1521/XE
注意这里的格式,@后面有//, 这是与使用SID的主要区别。
这种格式是Oracle 推荐的格式,因为对于集群来说,每个节点的SID 是不一样的,
但是SERVICE_NAME 确可以包含所有节点。 

格式二: Oracle JDBC Thin using an SID:
jdbc:oracle:thin:@<host>:<port>:<SID>
Example: jdbc:oracle:thin:@192.168.2.1:1521:X01A
Note:
Support for SID is being phased out. Oracle recommends that users switch over to usingservice names. 

格式三:Oracle JDBC Thin using a TNSName:
jdbc:oracle:thin:@<TNSName>
Example: jdbc:oracle:thin:@GL
Note:
Support for TNSNames was added in the driver release 10.2.0.1``

原文地址:https://www.cnblogs.com/matd/p/11051884.html

时间: 2024-10-05 12:13:12

Oracle 服务名/实例名,Service_name 和Sid的区别的相关文章

Windows下服务中的Oracle服务是数据库名还是SID

今天上头问Windows下服务中的Oracle服务是数据库名还是SID呢?我猜是SID,但是还是测试一下,看看我猜的对不对呢?搞起! SQL> show parameter db_name NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_name string orclgdn SQL> show parameter instance_name N

oracle怎么查看实例名

在mac命令窗口中,使用sqlplus命令登录数据库,输入如下命令 1.select name from v$database; 或 2.show parameter instance

oracle实例名,数据库名,服务名等概念差别与联系

数据库名.实例名.数据库域名.全局数据库名.服务名 这是几个令非常多刚開始学习的人easy混淆的概念.相信非常多刚開始学习的人都与我一样被标题上这些个概念搞得一头雾水.我们如今就来把它们弄个明确. 一.数据库名 什么是数据库名?数据库名就是一个数据库的标识,就像人的身份证号一样.他用參数DB_NAME表示,如果一台机器上装了多全数据库,那么每个数据库都有一个数据库名.在数据库安装或创建完毕之后,參数DB_NAME被写入參数文件之中.格式例如以下:DB_NAME=myorcl...在 创建数据库时

创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解)

目录 目录 软件环境 前言 安装Oracle监听程序 启动停止监听程序 创建数据库 数据库名db_name 数据库实例名instance_name 数据库名与实例名的关系 操作系统环境变量ORACLE_SID 软件环境 操作系统 RHEL 6.1 软件环境 Oracle10gr2 前言 在上一篇RHEL6.1 安装 Oracle10gr2 (图文.解析)中记录了如何成功的在RHEL6.1安装Oracle10gr2,但是在安装的过程中没有创建数据库,本篇主要记录了如果创建数据库和监听程序. 安装O

Oracle 数据库名、实例名、Oracle_SID

本文参考自ORACLE 数据库名.实例名.ORACLE_SID的区别,纯属读书笔记,加深记忆 在ORACLE7.8数据库中只有数据库名(db_name)和数据库实例名(instance_name).在ORACLE8i.9i中出现了新的参数,即数据库域名(db_domain).服务名(service_name).以及操作系统环境变量(ORACLE_SID).这些都存在于同一个数据库中的标识,用于区分不同数据库的参数. 1.数据库名 数据库名是用于区分数据的标识,是以二进制形式存储于数据库控制文件中

【转】详解:oracle10G 数据库名、实例名、ORACLE_SID

[转载] 数据库名.实例名.数据库域名.全局数据库名.服务名 ,这是几个令很多初学者容易混淆的概念.相信很多初学者都与我一样被标题上这些个概念搞得一头雾水.我们现在就来把它们弄个明白. 一.数据库名什么是数据库名?数据库名就是一个数据库的标识,就像人的身份证号一样.他用参数DB_NAME表示,如果一台机器上装了多全数据库,那么每一个数据库都有一个数据库名.在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中.格式如下:DB_NAME=myorcl...在创建数据库时就应考虑好数据库名

数据库名(DB_NAME)、实例名(Instance_name)、以及操作系统环境变量(ORACLE_SID)

数据库名(DB_NAME).实例名(Instance_name).以及操作系统环境变量(ORACLE_SID) 在ORACLE7.8数据库中只有数据库名(db_name)和数据库实例名(instance_name).在ORACLE8i.9i中出现了新的参数,即数据库域名(db_domain).服务名(service_name).以及操作系统环境变量(ORACLE_SID).这些都存在于同一个数据库中的标识,用于区分不同数据库的参数. 一.什么是数据库名(db_name)? 数据库名是用于区分数据

service name和SID的区别

数据库名(DB_NAME).实例名(Instance_name).以及操作系统环境变量(ORACLE_SID) 在ORACLE7.8数据库中只有数据库名(db_name)和数据库实例名(instance_name).在ORACLE8i.9i中出现了新的参数,即数据库域名(db_domain).服务名(service_name).以及操作系统环境变量(ORACLE_SID).这些都存在于同一个数据库中的标识,用于区分不同数据库的参数. 一.什么是数据库名(db_name)? 数据库名是用于区分数据

oracle 数据库、实例、服务名、SID

参考:http://www.zhetao.com/content240 在实际的开发应用中,关于Oracle数据库,经常听见有人说建立一个数据库,建立一个Instance,启动一个Instance之类的话. 其实问他们什么是数据库,什么是Instance,很可能他们给的答案就是数据库就是Instance,Instance就是数据库啊,没有什么区别. 在这里,只能说虽然他们Oracle用了可能有了一定的经验,不过基础的概念还是不太清楚.(我目前就是这个状态) 一.什么是数据库,其实很简单,数据库就