日期:2014-05-16  浏览次数:20484 次

oracle一些概念总结
数据库名,数据库实例名,数据库域名,操作系统环境变量

数据库名 

    数据库名是用于区分数据库的一个内部标识,是以二进制方式存储在数据库控制文件中的参数。数据库创建之后不能再修改这个参数。数据库创建后,它被写入数据库参数文件pfile或Spfile中。格式如下:

...

db_name="orcl"

db_domain=dbcenter.toys.com

instance_name=orcl

service_names=orcl.dbcenter.toys.com

...


数据库实例名

    数据库实例是操作数据库的实体,用户通过实例与数据库交互。实例名用来标识这个数据库实例。数据库创建后,实例名可以被修改。也在数据库参数文件pfile或Spfile中。格式如下:

...

instance_name=orcl

service_names=orcl.dbcenter.toys.com

...

    数据库名与实例名可以相同。一个数据库对应一个实例的情况下设置成相同的便于标识数据库。但是在8i,9i的并行服务器中,数据库与实例不存在一一对应关系,而是一对多关系,一个数据库对应多个实例。不过一个用户只能与一个实例相连。(这里才让人恍然大悟,实例名与数据库名的区别就很容易理解了)


数据库域名

    在分布式数据库系统中,不同版本的数据库服务器之间,不论运行的操作系统是unix或是windows,各服务器之间都可以通过数据库链路进行远程复制,数据库域名主要用于oracle分布式环境中的复制。举例说明如:
全国交通运政系统的分布式数据库,其中:
福建节点: fj.jtyz
福建厦门节点: xm.fj.jtyz
江西: jx.jtyz
江西上饶:sr.jx.jtyz
这就是数据库域名。
数据库域名在存在于参数文件中,他的参数是db_domain.

操作系统环境变量(ORACLE_SID)

    数据库实例名有时使用实例名(Instance_name),有时使用ORACLE_SID。这两个都是数据库实例名,不易区分。实际上,instance_name参数是ORACLE数据库的参数,可以再初始化参数文件中查询到,而ORACLE_SID参数则是操作系统的环境变量。

    在多个实例的服务器中,ORACLE通过ORACLE_SID决定启动哪个实例。一般,如果服务器只有一个实例,ORACLE_SID的值和实例的名称以及数据库名称相同。


举例:在CMD中输入sqlplus/nolog

          再输入connect / as sysdba;

那么:有2个数据库实例,它怎么知道选择哪一个呢?

其中就是我设置的环境变量起了作用。