2013年(1)
分类: Oracle
2013-05-31 15:00:25
对于新手 ,数据库名(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';
VALUE
------------------------------------------
yuyu
呵呵,都介绍完了,你是否明白了。