文档章节

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

rootliu
 rootliu
发布于 2017/09/04 16:03
字数 1447
阅读 8
收藏 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
博文 252
码字总数 2796
作品 0
海淀
数据库管理员
oracle中几个概念

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

FlySalmon
2016/11/10
15
0
oracle监听器动态注册于静态注册的区别

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

SANSOM
2013/11/18
0
0
Oracle Listener 动态注册 与 静态注册

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

yl497103815
07/02
0
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
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
0

没有更多内容

加载失败,请刷新页面

加载更多

Hbase Schema 模型设计注意事项及示例

一、Hbase 数据模型概述 HBase的数据模型也是由表组成,每一张表里也有数据行和列,但是在HBase数据库中的行和列又和关系型数据库的稍有不同。 表(Table): HBase会将数据组织成一张表,表名必...

PeakFang-BOK
40分钟前
1
0
Blockathon(2018)上海竞赛项目成果今天揭晓

开幕式现场 10月19日,Blockathon(2018)上海在黄浦区P2联合创业办公社举行,本次活动由50名区块链开发者组成9支参赛队伍,来自国内外优秀区块链开发团队的20名技术专家担任导师及裁判。9支队...

HiBlock
43分钟前
0
0
微信小程序开发系列六:微信框架API的调用

微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发...

JerryWang_SAP
今天
4
0
5 个用 Python 编写 web 爬虫的方法

大家在读爬虫系列的帖子时常常问我怎样写出不阻塞的爬虫,这很难,但可行。通过实现一些小策略可以让你的网页爬虫活得更久。那么今天我就将和大家讨论这方面的话题。 我刚整理了一套2018最新...

糖宝lsh
今天
6
0
docker安装redis、mongodb、mysql等

一、启动docker服务,设置镜像: systemctl start dockervi /etc/docker/daemon.json{ "registry-mirrors": ["https://registry.docker-cn.com"]} 二、下拉镜像: 在镜像中心h...

狼王黄师傅
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部