oracle中全局数据库名和SID的区别

oracle中全局数据库名和SID的区别,第1张

全局数据库名:是将数据库与任何其他数据库唯一标识出来的数据库全称。全局数据库名的格式为<database_name>.<database_domain>。例如,student.cs.hubu是一个典型的全局数据库名。数据库名部分(如student)是数据库的简单名称,数据库域部分(如cs.hubu)指定数据库所在的域,它通常和企业内的网络域相同。全局数据库名的数据库名部分不能超过8个字符,并且只能包含字母、数字字符和句点(.)字符。

SID(System Identifier,系统标识符):用来标识Oracle数据库的特定例程。对于任何一个数据库,都至少有一个引用数据库的例程。SID可以是未被此计算机上其他例程使用的任何名称。SID是Oracle数据库例程的唯一标识符,最多只能有8个字母、数字字符。每个数据库例程对应一个SID和一系列数据库文件。例如,当创建SID为XXX的数据库时,将同时创建数据库例程及其数据库文件(初始化参数文件、控制文件、重做日志文件和数据文件)。  

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/9932609.html

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

发表评论

登录后才能评论

评论列表(0条)

保存