oracle数据库各种名字的区别

http://wenku.baidu.com/view/cd4234d028ea81c758f578ce.html,配置详解
数据库名(DB_NAME)、数据库实例名(INSTANCE_NAME)、操作系统环境变量ORACLE_SID、数据库服务名(SERVICE_NAME)、数据库域名(DB_DOMAIN)以及全局数据库名(GLOBAL_DB_NAME)
INSTANCE_NAME一般和DB_NAME相同
INSTANCE_NAME=ORACLE_SID
SERVICE_NAMES=全局数据库名=db_name+db_domain
数据库名(DB_NAME)、数据库实例名(INSTANCE_NAME)、操作系统环境变量(ORACLE_SID)、数据库服务名(SERVICE_NAME)、数据库域名(DB_DOMAIN)以及全局数据库名(GLOBAL_DB_NAME)是几个使用Oracle数据库容易混淆的概念。
1、数据库名与实例名
数据库名(DB_NAME):是区分数据的内部标识(即是给Oracle数据库内部使用的),因为其在数据库多处保存,并且控制文件中保存是二进制的,所以很难改变其名字。
在pfile和spfile中有db_name参数就是它,或者查v$database视图
数据库名作用:内部标记,在数据库安装、创建、创建控制文件、修改数据库结构、使用数据库备份与恢复时都使用数据库名(注意这些时候不是用什么sid。。。),如alter database时都是使用该数值
实例名(Instance_name):实例是计算机中oracle数据库的一组进程和内存区域的集合,实例名用于和操作系统间联系(对外连接使用),数据库名与实例名之间的关系一般是一一对应关系,有一个数据库名就有一个实例名,在8i、9i的并行服务器结构中,一个数据库可以有多个实例(并行服务,一对多关系,一个数据库对应多个实例,同一时间内用户只一个实例相联系,当某一实例出现故障,其它实例自动服务,以保证数据库安全运行。)。要和一个数据库服务器相连,必须知道其实例名,光知道数据库名是没用的。
在spfile中有instance_name参数,其实一般设置与数据库名称是相同的(不相同是自找麻烦),可以较容易改变该参数
INSTANCE_NAME与ORACLE_SID区别:
都是指数据库实例名,但ORACLE_SID是操作系统的环境变量设置,用于和操作系统交互,其取值必须与INSTANCE_NAME相同,
也就是说,在操作系统中要想得到实例名,就必须使用ORACLE_SID。此参数与ORACLE_BASE、ORACLE_HOME等用法相同。在数据库安装之后,ORACLE_SID被用于定义数据库参数文件的名称。通过切换不同的ORACLE_SID来通过操作系统来启动不同的实例(instance)
而INSTANCE_NAME可在参数文件中查到,windows下需要到注册表中定义修改相关参数即ORACLE_SID
在网络服务配置中(旧的协议不说了),net8i里面有一个选项就是sid配置就是指ORALCE_SID名称!(9i的新的服务配置后面有说明)
2、数据库域名与服务名(8i以后版本引入的名称)
数据库域名:类似网络域名的概念,(所以一个数据库名db_name在不同的域里可以相同)在安装时确定(全局数据库名中填写),定义规则也相似于网络定义。参数文件中db_domain,没有该项则全局数据库名和数据库名相同,该数据库没有使用域名
全局数据库名:=db_name+db_domain
数据库服务名(SERVICE_NAMES);这可不是你在客户端配置的网络服务的概念(要分清!!!),这是数据库本身的概念!!!
SERVICE_NAMES=全局数据库名(GLOBAL_DB_NAME)=db_name+db_domain
在参数文件中service_names可以查到
在9i新提供的Net Services网络服务中,推荐使用该种方式连接(Net8i也可配)域名可以容易修改(改参数重起实例可)
监听程序:服务端等客户端连接的程序。简单地说,要和数据库服务器通讯,必须要和服务器连接,建立连接是,服务器要知道有客户端连接进来了,而监听器就是干这个活的。客户端配置的网络服务用于和监听程序连接起来。
SERVICE_NAME:是oracle8i新引进的。在8i以前,我们用SID来表示标识数据库的一个实例,但是在Oracle的并行环境中,一个数据库对应多个实例,这样就需要多个网络服务名,设置繁琐。为了方便并行环境中的设置,引进了Service_name参数,该参数对应一个数据库,而不是一个实例,而且该参数有许多其它的好处。该参数的缺省值为Db_name. Db_domain,即等于Global_name。一个数据库可以对应多个Service_name,以便实现更灵活的配置。该参数与SID没有直接关系,即不必Service name 必须与SID一样。
在tnsnames.ora中,既可以用service_name, 也可以用sid
数据库服务名(SERVICE_NAMES)----------------
数据库的逻辑表示,它是数据库呈现给客户机的方式。缺省为全局数据库名,即在安装
或数据库创建期间输入的由数据库和域名组成的一种名称,如不存在数据域名时即为数据库名。
在参数文件PFILE中由SERVICE_NAMES指定: SERVICE_NAMES = testDB.ChinaMobile.com
Tags: 

延伸阅读

最新评论

发表评论