您的位置:首页 > 数据库 > Oracle

关于Oracle数据库的几个概念

2018-01-27 14:16 375 查看
Oracle数据库中有这么几个概念:

数据库名(DB_NAME ),数据库实例名(INSTANCE_NAME),操作系统环境变量(ORACLE_SID),数据库服务名(SERVICE_NAME),数据库域名(DB_DOMAIN),全局数据库名(GLOBAL_NAME)。

你也许认为为什么会有这么多个名字呢,多麻烦啊,别着急,下面就来看看他们到底是怎么一回事:

数据库名(DB_NAME):是用于区分一个数据的内部标示,即Oracle数据库的内部表示。它是以二进制方式存储存储于数据库的控制文件的参数。在数据库安装或创建之后不得修改(其实是可以修改的,不过麻烦点),这个参数被写入pfile中 。
可以从形如 “D:\app\Carlos\admin\orcl\pfile”的文件夹中找到:
###########################################

# Database Identification

###########################################

db_domain=""

db_name=orcl

数据库实例名(INSTANCE_NAME):实例名用于和操作系统关联,在操作系统中要取得与数据库之间的交互必须使用数据库实例名。数据库名一般与实例名是一一对应的。但在Oracle的并行服务结构中却不是,数据库与实例是一对多的关系。

SQL> select instance_name from v$instance;

INSTANCE_NAME

----------------
orcl

操作系统环境变量(ORACLE_SID):操作系统环境变量(ORACLE_SID)与instance_name的关系:instance_name是Oracle的数据库参数,而oracle_sid则是操作系统的环境变量,用户和操作系统交互,也就是说要得到实例名,必须使用sid。在数据库安装结束时,oracle_sid已经是一个确定的字符串了,其值必须与数据库实例名相同。

数据库域名(DB_DOMAIN):在Oracle10g中db_domain表示域名,那么数据库域名是什么时候确定的呢?与数据库名,数据库实例名一样数据库域名在安装数据库时候已经确定。在确定数据库名时如果输入orcl则表示该数据库。如果输入orcl.carlos.net。后面的carlos.net则表示域名。

SQL> select value from v$parameter

  2  where name = 'db_domain';

VALUE

--------------------------------------------------------------------------------

SQL> show parameter domain;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_domain                            string

没有值,表示我没有域名。

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

数据库服务名:它是从9I,10G开始引入的参数。用service_names表示。数据库服务名与全局数据库名相同。

SQL> show parameter service_name;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

service_names                        string      orcl

总结:数据库实例名(INSTANCE_NAME),操作系统环境变量(ORACLE_SID)相同且与操作系统服务相关,

数据库名(DB_NAME)加上

数据库域名(DB_DOMAIN)就是 
全局数据库名,也是 数据库服务名。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 数据库概念