ORACLE网络的几个重点概念

 数据库名(DB_NAME)、数据库实例名(INSTANCE_NAME)、操作系统环境变量ORACLE_SID、数据库服务名(SERVICE_NAME)、数据库域名(DB_DOMAIN)以及全局数据库名(GLOBAL_DB_NAME)是几个使用Oracle数据库容易混淆的概念。

1、数据库名与实例名

×数据库名(DB_NAME):是区分数据的内部标识(即是给Oracle数据库内部使用的),因为其在数据库多处保存,并且控制文件中保存是二进制的,所以很难改变其名字(是难不是不可以,当初设计好数据库了还改它干嘛)
在pfile中有db_name参数就是它。
数据库名作用:内部标记,在数据库安装、创建、创建控制文件、修改数据库结构、使用数据库备份与恢复时都使用数据库名(注意这些时候不是用什么sid。。。)
如alter database时都是使用该数值
查看:可以看参数(多种方法,show parameter db_name等)或者查v$database视图
修改数据库名:略,坛子里有

×实例名
实例名(Instance_name):用于和操作系统间联系(对外连接使用),一个数据库可以有多个实例(并行服务)。要和一个数据库服务器相连,必须知道其实例名,光知道数据库名是没用的。
在pfile中有instance_name参数,其实一般设置与数据库名称是相同的(不相同是自找麻烦),可以较容易改变该参数
查看:看参数
INSTANCE_NAME与ORALCE_SID区别:
都是指数据库实例名,但ORACLE_SID是操作系统的环境变量设置,用于和操作系统交互,其取值必须与INSTANCE_NAME相同,而INSTANCE_NAME可在参数文件中查到(说明白了吗)
(2000下需要注意到注册表中定义修改相关参数即ORACLE_SID)
在网络服务配置中(旧的协议不说了),net8i里面有一个选项就是sid配置就是指ORALCE_SID名称!(9i的新的服务配置后面有说明)

2、数据库域名与服务名(8i以后版本引入的名称)

×数据库域名:类似网络域名的概念,(所以一个数据库名db_name在不同的域里可以相同)
在安装时确定(全局数据库名中填写),定义规则也相似于网络定义。
参数文件中db_domain,没有该项则全局数据库名和数据库名相同,该数据库没有使用域名
查询:

×全局数据库名:=db_name+db_domain,若没有db_domain,则...

×数据库服务名(SERVICE_NAMES);这可不是你在客户端配置的网络服务的概念(要分清!!!),这是数据库本身的概念!!!
定义为=全局数据库名(参照全局数据库名的定义,则有分支,如果有域名,则服务名=...,无域名则。。。)
参数文件中service_names
在9i新提供的Net Services网络服务中,推荐使用该种方式连接(Net8i也可配)
域名可以容易修改(改参数重起实例可)

你可能感兴趣的:(Oracle管理,Oracle开发,oracle,网络,数据库,domain,service,database)