Oracle中SID INSTANCE_NAME Service_Name DB_Name等的介绍

在Oracle数据库中有SID、Service_Name、TNS_Name、DBName等名称,估计很多人也分不清它们之间到底有什么区别,在使用过程中也不清楚到底要使用哪个,结合网上的一些查询,在此做个简单的记录

Oracle_SID & SID & INSTANCE_NAME

Oracle中SID的作用类似于一个“开关变量”—引导Oracle在实例启动时如何去默认位置下读取适当的参数文件并加载,以正确启动实例,通过SID来命名后台进程。

操作系统也必须通过SID来和Oracle实例打交道,操作系统并不知道什么INSTANCE_NAME,只知道Oracle_SID,在Oracle内部由Oracle自己根据这个SID去识别不同的实例。所以ORACLE_SID更多的是Oracle和外部操作系统沟通的一个窗口。

OS(Oracle_SID) <--------> ORACLE 数据库 <----- (instance_name(实例名))

上图表示实例名instance_name、Oracle_SID与数据库及操作系统之间的关系

虽然这里两个参数都是数据库实例名,但 instance_name参数是Oracle数据库的参数,此参数可以在参数文件中查询到;而Oracle_SID参数则是操作系统环境变量,与 Oracle_BASE、Oracle_HOME等用法相同,用于和操作系统交互。

也就是说,在操作系统中要想得到实例名,就必须使用 Oracle_SID。且Oracle_SID必须与instance_name的值一致,否则,你将会收到一个错误,在unix平台,是“Oracle not available”,在winnt平台,是“TNS:协议适配器错误”。

简单来说就是: Oracle_SID = SID = INSTANCE_NAME

-- 查询当前数据库实例名
-- 方法一:
select instance_name from v$instance;
-- 方法二:
show parameter instance

Service_Name

Service_Name是Oracle实例提供的服务名。是从oracle 9i,10g开始引入的参数。用Service_names表示。数据库服务名与全局数据库名相同。它隔离了Oracle实例,客户端仅仅需要知道Service_Name就可以访问实例。而不需要知道实例的SID。更不需要知道DB_NAME等信息。

Service_names为实例定义一个或多个Service_name,这样可以通过多个Service_name将不同的用户连接区分开来。

Service_Name似乎应该分为两种,一种是实例服务名 instance service name,一种是网络服务名 net service name (也叫TNSName),如下tnsnames.ora所示:

net_service_name =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 199.188.166.110)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = instance_service_name))
)
-- 查询数据库服务名
-- 方法一:
select value from v$parameter where name = 'service_name';
-- 方法二:
show parameter service_name

DB_NAME

是用于区分一个数据的内部标示,即Oracle数据库的内部表示。是以二进制方式存储于数据库的控制文件的参数。在数据库安装或创建之后不得修改。

DB_NAME唯一性地标识了 oracle database,与数据库物理文件相关;而SID唯一性地标识了oracle instance,与所有进程相关。而oracle database和oracle instance一起组成了oracle server。

SID和DB_NAME在非RAC环境默认是相等的。但是二者相等与否,无关紧要。在RAC环境,因为一个DB_NAME对应多个SID,所以不可能相等了。

-- 查询参数文件db_name的数值
-- 方法1
select name from v$database
-- 方法2
show parameter db_name

数据库域名

在Oracle10g中db_domain表示域名。与数据库名,数据库实例名一样数据库域名在安装数据库时候已经确定。abc.xxx.com.cn。后面的xxx.com.cn则表示域名。

-- 查询数据库域名
-- 方法一:
select value from v$parameter where name = 'db_domain';
-- 方法二:
show parameter domain
-- 方法三:
在参数文件中查询

全局数据库名

则表示数据库名和域名的总和。如果没有域名,全局数据库名就与数据库名相同。

JDBC连接ORACLE

# 格式一:
jdbc:oracle:thin:@//<host>:<port>/<service_name>
# 格式二:
jdbc:oracle:thin:@<host>:<port>:<SID>
# 格式三:
jdbc:oracle:thin:@<TNSName>
# 格式四:
jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = <host>)(PORT = <port>)))(CONNECT_DATA =(SERVICE_NAME = <service_name>)))

Oracle中SID INSTANCE_NAME Service_Name DB_Name等的介绍相关推荐

  1. Oracle中sid是实例名吗,ORACLE_SID、实例名(SID) 、数据库名区别

    ORACLE_SID.实例名(SID) .数据库名区别 ORACLE_SID---> 实例名(SID)------> 数据库名 eg: spfilePLMS.ora中的 db_name=' ...

  2. oracle中sid是什么意思,1.3.4 ORACLE_SID的含义(1)

    1.3.4  ORACLE_SID的含义(1) 注意到在ORADIM创建服务之前,首先设置了ORACLE_SID: setORACLE_SID=eygle 在Linux/UNIX系统的创建中,同样要设 ...

  3. 【转】ORACLE_SID、INSTANCE_NAME、DB_NAME

    文章转自:http://www.blogjava.net/herongxin/archive/2011/05/31/351414.html [一]对ORACLE_SID的理解 Oracle中SID的作 ...

  4. oracle中having作用,oracle中having与where的区别

    1.where 不能放在group by 的后面 2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE 3.WHERE 后面的条件中不能有聚集函 ...

  5. oracle中totimestamp,oracle中to_timestamp和to_date什么区别

    date类型是Oracle常用的日期型变量,时间间隔是秒.两个日期型相减得到是两个时间的间隔,注意单位是"天". timestamp是DATE类型的扩展,可以精确到小数秒(frac ...

  6. oracle 正则表达式拆分字符串,oracle中通过正则表达式函数处理逗号分隔的字段...

    这个题目的确不大好写,其实际含义基于一个场景: 比如在oracle的某张表中,有两个字段 A1          B1 1         A,B,C,D, 2         E,F 假如现在的需求 ...

  7. oracle中spool命令的使用,Oracle中Spool命令的使用方法实例

    Oracle中Spool命令的使用方法实例 前言 对于Oracle中的Spool命令,其实还可以换一种问法为,如何将sqlplus中的结果输出到指定的文件夹中. 近期在进行Oracle数据库备份的时候 ...

  8. oracle中的service_name,instance_name,db_name,oracle_sid,sid_name的用法及区别(转)

    在init.ora中有db_name,instance_name,service_name. 在操作系统中需要配置oracle_sid. 在listener.ora中有SID_NAME,GLOBAL_ ...

  9. 《深入解析ORACLE》学习笔记(3)---ORACLE中的DB_NAME,SERVICE_NAME,INSTANCE_NAME,ORACLE_SID,GLOBAL_DBNAME介绍

    [声明:本文是学习著名ORACLE DBA盖国强先生的大作<深入解析ORACLE--DBA 入门 进阶与诊断案例>的学习笔记与心得体会.在此声明,文中摘录了书中部分内容,非是出于抄袭目的, ...

最新文章

  1. 基于OpenCV的焊件缺陷检测
  2. “僵尸病毒”入侵全球电脑,7.5万部电脑中招(来源:广州日报)
  3. 职场新人成功修炼五诀 迅速在职场占一席之地
  4. 20145202、20145225、20145234 《信息安全系统设计基础》实验五 简单嵌入式WEB 服务器实验...
  5. TCP模拟QQ聊天案例
  6. leetcode518. 零钱兑换 II
  7. C++ String类写时拷贝 4
  8. 【译】Node.js 日志打印指南
  9. 苹果WWDC2021终极剧透!新款Macbook Pro外观大改 iOS 15将发布
  10. 为什么手机用久了,就不那么流畅了,啥原因?
  11. informix mysql,Informix相当于mysql的SHOW CREATE TABLE
  12. r 语言初学者指南_阻止自然语言处理的初学者指南
  13. 两分钟,帮你搞懂光纤接头
  14. NTFS与FAT 32的区别
  15. iOS各种设备识别码IDFA、UDID、UUID、MAC、OpenUDID、IDFV
  16. 为一个理想而奋斗一生
  17. MT940银行对账单怎么解析呢
  18. Photoshop CS5初学者必读(23)——应用色彩平衡
  19. 一流在线课程申报表公共计算机,衡阳财经业职业技术学院精品课程建设申报表.doc...
  20. 用Visio绘制深度模型结构图的基本单元_斜立方体

热门文章

  1. SpringBoot中文件下载、拦截器、war包部署、jar包部署
  2. Java项目:springboot访客管理系统
  3. CANoe操作介绍系列 ———— Analysi功能区中Trace的介绍与使用
  4. Paint 全面解析
  5. C# HalconDotNet 工业视觉处理
  6. Android截屏截图方法汇总(Activity、View、ScrollView、ListView、RecycleView、WebView截屏截图)
  7. 女生适合做开发还是oracle数据管理?
  8. grep 正则表达式搜索
  9. python fork_Python 中fork()理解
  10. 视觉slam爬坑——高翔深蓝学院——第一讲