请教oracle全局数据库名和SID区别

请教oracle全局数据库名和SID区别,第1张

一、数据库

就是在你安装oracle软件过程中创建的数据库,或者是安装完后,自己再创建的数据名称。主要用于一个oracle中安装了多个库,

他们之间的区分。一个库会在windows的服务中生成一个oracle_service.数据库名是在安装数据库、创建新的数据库、创建数据库控

制文件、修改数据结构、备份与恢复数据库时都需要使用到的。

查询当前数据名

方法一:select name from v$database

方法二:show parameter db

二、数据库实例名[SID]

数据库实例名是用于和 *** 作系统进行联系的标识,就是说数据库和 *** 作系统之间的交互用的是数据库实例名。实例名也被写入参数文件

中,该参数为instance_name,在winnt平台中,实例名同时也被写入注册表。数据库名和实例名可以相同也可以不同。在一般情况下,

数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。

(就是一个oracle中创建多个库的时候,每个库和 *** 作系统之间通信的身份标示,和我们用户没有关系嘀!)

查询当前数据库实例名

方法一:select instance_name from v$instance

方法二:show parameter instance

三、数据库域名

在分布工数据库系统中,不同版本的数据库服务器之间,不论运行的 *** 作系统是unix或是windows,各服务器之间都可以通过数据库

链路进行远程复制,数据库域名主要用于oracle分布式环境中的复制。

举例说明如:

全国交通运政系统的分布式数据库,其中:

福建节点: fj.jtyz

福建厦门节点: xm.fj.jtyz

江西: jx.jtyz

江西上饶:sr.jx.jtyz

这就是数据库域名。

数据库域名在存在于参数文件中,他的参数是db_domain

查询数据库域名

方法一:select value from v$parameter where name = 'db_domain'

方法二:show parameter domain

四、全局数据库名

全局数据库名=数据库名+数据库域名,如前述福建节点的全局数据库名是:oradb.fj.jtyz

五、数据库服务名

从oracle9i版本开始,引入了一个新的参数,即数据库服务名。参数名是SERVICE_NAME。该名称主要是oracle客户端和oracle建立服务的

时候使用,好像没有多么有用的价值!

查询数据库服务名

方法一:select value from v$parameter where name = 'service_name'

方法二:show parameter service_name

(注释:一般情况下我们开发中用到的数据库是单数据库实例,就是oracle中只有一个库。这个时候大部分都有:

数据库服务名 = 全局数据库名 = 数据库名[+ 数据库域名] = SID)

1、ORACLE_SID:是数据库在 *** 作系统内部的环境变量名,其值是正要启动的Oracle数据库实例名。 *** 作系统通过SID找到要启动的Oracle实例的初始化参数文件,根据初始化文件启动Oracle实例,配置内存和创建数据库进程。

2、Global_name:是全局数据库名,对一个数据库(实例)的唯一标识,oracle建议用此种方法命名数据库。该值是在创建数据库时决定的,构造方式=数据库名(Db_name)+数据库域名(Db_domain)。

当域名缺省时,数据库名=全局数据库名。作用是找到对应的数据库安装(mount)、打开(open)。

例:若创建数据库时输入orcl,则全局数据库=orcl;若输入了orcl.R2.11g.win,则数据库名=orcl,数据库域名=R2.11g.win。

1。什么是数据库实例名?

数据库实例名是用于和 *** 作系统进行联系的标识,就是说数据库和 *** 作系统之间的交互用的是数据库实例名。实例名也被写入参数文件中,该参数为instance_name,在winnt平台中,实例名同时也被写入注册表。

数据库名和实例名可以相同也可以不同。

在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。

2 查询当前数据库实例名

方法一:select instance_name from v$instance

方法二:show parameter instance_name

方法三:在参数文件中查询。

3数据库实例名与ORACLE_SID

虽然两者都表是oracle实例,但两者是有区别的。instance_name是oracle数据库参数。而ORACLE_SID是 *** 作系统的环境变量。 ORACLD_SID用于与 *** 作系统交互,也就是说,从 *** 作系统的角度访问实例名,必须通过ORACLE_SID。在winnt平台,ORACLE_SID还需存在于注册表中。

且ORACLE_SID必须与instance_name的值一致,否则,你将会收到一个错误:在unix平台,是“ORACLE not available”,在winnt平台,是“TNS:协议适配器错误”。

4数据库实例名与网络连接

数据库实例名除了与 *** 作系统交互外,还用于网络连接的oracle服务器标识。当你配置oracle主机连接串的时候,就需要指定实例名。当然8i以后版本的网络组件要求使用的是服务名SERVICE_NAME。这个概念接下来说明。

一般单机服务器上,实例名和sid相同。你可以看看集群的相关文档,就更好理解了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10056248.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存