全局数据库名?数据库名?实例名?

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

哎呀,你可能回想这些都是什么啊,怎么这么麻烦了。我的数据库明明都是一个名字啊。一个名字是被允许。

不要被他们吓到。今天我们看看他到底是怎么回事。

数据库名(DB_NAME ):是用于区分一个数据的内部标示,即Oracle数据库的内部表示。它是以二进制方式存储存储于数据库的控制文件的参数。在数据库安装或创建之后不得修改(其实是可以修改的,以后我会有介绍),这个参数被写入PFILE中

###########################################
# Database Identification
###########################################
db_domain=""
db_name=yuyu

数据库实例名(INSTANCE_NAME):实例名用于和操作系统关联,在操作系统中要取得与数据库之间的交互必须使用数据库实例名。(这里要知道什么是实例,简单的说就是内存和一些后台进程。所以啊,就知道为什么和操作系统联系了吧!)

数据库名一般与实例名是一一对应的。但在Oracle的并行服务结构中却不是,数据库与实例是一对多的关系。

SQL> select instance_name from v$instance;

INSTANCE_NAME
--------------------------------
yuyu

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

数据库域名(DB_DOMAIN):在Oracle10g中db_domain表示域名

那么数据库域名是什么时候确定的呢?与数据库名,数据库实例名一样数据库域名在安装数据库时候已经确定。在确定数据库名时如果输入yuyu则表示该数据库 。如果输入yuyu.yuhongping.com.cn。后面的yuhongping.com.cn则表示域名。

看我的:

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                 yuyu

SQL> select value from v$parameter
2 where name = 'service_names';

阅读更多
个人分类: oracle
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭