文档章节

ORACLE中的db_name,service_name,instance_name,oracle_sid,global_dbname

rootliu
 rootliu
发布于 2017/09/04 16:03
字数 1447
阅读 7
收藏 0
点赞 0
评论 0

ORACLE中的db_name,service_name,instance_name,oracle_sid,global_dbname

2016-04-14 21:28 802人阅读 评论(0) 收藏 举报

分类:

Oracle-Concepts(2)

版权声明:本文为博主原创文章,未经博主允许不得转载。

目录(?)[+]

init.ora中有db_name,instance_name,service_name
在操作系统中需要配置oracle_sid
在listener.ora中有sid_name,global_dbname(静态注册的情况下)
在tnsnames.ora中有service_name,sid

db_name:

对一个数据库(oracle database)的唯一标识,这种表示对于单个数据库时足够的,但是对于分布

式数据库,可能存在各个数据库的名字可能一样,db_domian也就是为了解决这一问题,这样数据库的 标识

是由db_name和db_domain两个参数共同决定。类似于互联网上的机器名管理,用db_name.db_domain

来表示一个数据库,并将该数据库的名称称为global_name。db_name只能由字母/数字,'_','#','$'组成,而且

最多8个字符

db_domain:

定义一个数据库所在的域,该域的命名是为了数据库管理员为了更好的管理分布式数据库而视情况决定划分的。

与互联网的‘域’并没有关系

glocal_name:

对一个数据库的唯一标识,在创建数据库的时候决定,缺省值为db_name.db_domain。在之后对参数文件中

db_name和db_domain参数的任何修改都不影响global_name的值,如果要修改glocal_name,只能alter database

 rename global_name to <db_name,db_domain>来进行修改,然后修改相应的参数

service_names:

在oracle的并行环境中,一个数据库对应多个实例,就需要多个网络服务名,设置比较繁琐。service_names参数

就是为了解决这个问题,该参数对应一个数据库,而不是一个实例,缺省值为db_name.db_domain,即等于global_name。

一个数据库可以对应多个service_names.

 

net service name:

网络服务名,又可以成为数据库别名。是客户端程序访问数据库时所需要,屏蔽了客户端连接服务器端的

细节,实现了数据库的位置透明特性。

 

 

总结起来:

实例就是管理相关库的内存结构的名字,数据库就是实际的磁盘文件,负责保存数据,但由对应的实例来操作他的数据

服务名就是对外公布的名称,为网络监听服务

else:

oracle_sid这个参数是操作系统中用到的,他是描述默认连接的数据库实例.instance_name是数据库参数。而oracle_sid是

操作系统的环境变量,oracle_sid必须与instance_name的值一致。

 

1.ORACLE_SID:(ORACLE SYSTEM IDENTIFIER)

     以环境变量的形式出现的。
     Oracle实例是由SGA和一组后台进程组成的,实例的创建和启动需要一个参数文件,而参数文件的名称就是由ORACLE_SID决定的。对于init文件,缺省的文件名称是init<ORACLE_SID>.ora,对于spfile文件,缺省的文件名称是spfile<ORACLE_SID>.ora
     设置不同的ORACLE_SID值,就可以默认使用不同的参数文件启动不同的数据库实例。
     另外,ORACLE_SID的作用远远不是作为一个实例入口这么简单的,在实例启动后,实例名称INSTANCE_NAME也是从ORACLE_SID得到的。
2.INSTANCE_NAME:

     实例名称,这是Oracle实例的名字,用来区分不通的实例。在Oracle9i之前,该名字存储在两个地方:参数文件和数据库的内部试图(V$INSTANCE).
     而在Oracle10g之后的版本中,该名字不再出现在参数文件中,而是动态从系统中获得,默认是取自ORACLE_SID。
     INSTANCE_NAME的作用除了区别不同实例之外,在监听器动态注册时,还会用于向监听器注册。比如instance_name=kanon,监听中将动态注册Instance "kanon",status READY信息。
3.DB_NAME:    

     DB_NAME概念相比于INSTANCE_NAME要重要的多,它决定实例将挂在的数据文件。它出现在数据文件,控制文件,日志文件中。在参数文件中也出现,且必须出现。这个参数涉及到系统的物理文件。
4.SERVICE_NAME和GLOBAL_DBNAME:
     这两个参数之所以放在一起讲,是因为他们往往是成对出现的。SERVICE_NAME出现在Tnsnames.ora文件中,是客户端要请求的服务名。
     GLOBAL_DBNAME出现在Listener.ora文件中,是服务器提供的服务名,可以通过show paramerer service_names查看,并可以通过alter system set service_name='servicename' scope=both来修改。
     二者对应,实现了Listerner.ora/Tnsnames.ora的重要功能----监听、请求与验证。

总结:一条startup命令,究竟是如何启动庞大的oracle数据库的呢?下面我们来贯穿起来整个启动流程,一探究竟:
      首先,系统接收到startup命令,立刻采取行动,取得环境变量ORACLE_SID的值,启动第一阶段--实例创建。系统根据找到的参数文件启动ORACLE数据库实例,实例启动后,一切由实例接管:注册INSTANCE_NAME,往往INSTANCE_NAME就是来自ORACLE_SID,接着向监听器动态注册实例自己,并将INSTANCE_NAME写入系统数据字典表,
      接下来,实例进一步读取参数文件,取得DB_NAME、控制文件、检查点等信息,进入第二阶段--挂载数据库。实例从控制文件中取得DB_NAME,并取得数据文件、日志文件等信息,进行DB_NAME的一致性检验、文件的存在性判断等工作之后,实例将挂载数据库,挂载的数据库就是DB_NAME指定的数据库。
      最后,实例进入第三阶段--启动数据库。这一阶段,实例进行了两项检查:检查点和更改点检查,之后启动数据库。

 

本文转载自:http://blog.csdn.net/gumengkai/article/details/51154996

共有 人打赏支持
rootliu
粉丝 2
博文 225
码字总数 2796
作品 0
海淀
数据库管理员
oracle中几个概念

ORACLE中DBNAME,DBDOMAIN,GLOBALDBNAME,SERVICENAME,ORACLESID,INSTANCENAME,SCHAME概念。之前对这些概念有接触,但一直没有彻底理解,今天整理下。 DBNAME:数据库名称,数据库的唯一...

FlySalmon ⋅ 2016/11/10 ⋅ 0

oracle监听器动态注册于静态注册的区别

1, oracle 10g 用netca方式建立的都默认为动态注册方式 2,如果想改为静态注册的方式则在listener.ora 中加入如下内容即可 SIDLISTLISTENER = (SIDLIST = (SIDDESC = (SIDNAME = PLSExtProc)...

SANSOM ⋅ 2013/11/18 ⋅ 0

Oracle Listener 动态注册 与 静态注册

Oracle Listener 动态注册 与 静态注册 一.什么是注册 注册就是将数据库作为一个服务注册到监听程序。客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接...

yl497103815 ⋅ 2014/08/22 ⋅ 0

一个节点rac+单节点dg网络配置(listener.ora与tnsnames.ora)

环境说明: 实验环境是 一个节点的 rac + 单机dg (主备全部用asm存储) tnsnames.ora 文件 (oracle用户) node 1 : node1-> pwd /u01/app/oracle/product/11.2.0/db_1/network/admin node1->......

技术小美 ⋅ 2017/11/12 ⋅ 0

DGMGR-TO PHYSICAL STANDBY Failed (ORA12514 )解决方法

TO PHYSICAL STANDBY Failed (ORA-12514: )解决方法: ==========DG 环境: DGMGRL> SHOW CONFIGURATION; Configuration - DRSolution Protection Mode: MaxAvailability Databases: PROD1 -......

snowofsummer ⋅ 2016/12/10 ⋅ 0

oracle 创建辅助库

辅助数据库是为了某种测试目的,来创建的和某一个时刻的目标数据库完全一样的数据库; 1.目标数据库和辅助数据库的环境描述 一般来说,目标数据库和辅助数据库应该分别存放在不同的服务器上;...

潘麟 ⋅ 2013/12/28 ⋅ 0

oracle listener总结

一、动态注册 监听的动态注册就是实例启动的时候PMON进程根据初始化参数文件中的instancename,servicenames两个参数来动态注册监听。 注意,如果在RAC中配置,必须将集群中每个实例的instanc...

zxf261 ⋅ 2012/06/03 ⋅ 0

Oracle中Service Name、Database name、Instance Name的区别

1,数据库名是Oracle数据库的内部标识,一般在安装完后不应该改变,数据库的很多物理存储目录都用到了数据库名。 2,InstanceName,ORACLESID,数据库实例名,是数据库和操作系统交互时用到的名...

晨曦之光 ⋅ 2012/04/25 ⋅ 0

Java JDBC Thin Driver 连接 Oracle 三种方法说明

一.JDBC 连接Oracle 说明 JDBC 的应用连接Oracle 遇到问题,错误如下: ORA-12505,TNS:listener does not currently know of SID given in connect descriptor TheConnection descriptor use......

大漠过客 ⋅ 2014/04/22 ⋅ 0

Oracle ORA-12514:TNS 监听程序当前无法识别连接描述符中请求服务

文件路径 # listener.ora Network Configuration File: D:oracleproduct10.2.0db1NETWORKADMINlistener.ora # Generated by Oracle configuration tools. SIDLISTLISTENER = (SIDLIST = (SID......

AnyLiem ⋅ 2015/05/17 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring | IOC AOP 注解 简单使用

写在前面的话 很久没更新笔记了,有人会抱怨:小冯啊,你是不是在偷懒啊,没有学习了。老哥,真的冤枉:我觉得我自己很菜,还在努力学习呢,正在学习Vue.js做管理系统呢。即便这样,我还是不...

Wenyi_Feng ⋅ 今天 ⋅ 0

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 今天 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部