数据库名(db_name) 实例名(instance_name) 服务名(service_name)
- 数据库名(db_name)
数据库的标识,就像人的身份证号一样,数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢复数据库时都需要使用到的.
select name from v$database;--查询当前数据名
- 数据库实例名(instance_name)
数据库实例名是用于和操作系统进行联系的标识,就是说数据库和操作系统之间的交互用的是数据库实例名.
在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。
select instance_name from v$instance;--查询当前数据库实例名
数据库实例名与ORACLE_SID
- 虽然两者都表是oracle实例,但两者是有区别的。
- instance_name是oracle数据库参数,而ORACLE_SID是操作系统的环境变量。
- ORACLD_SID用于与操作系统交互,从操作系统的角度访问实例名,必须通过ORACLE_SID。
- ORACLE_SID必须与instance_name的值一致.
数据库实例名与网络连接
- 数据库实例名除了与操作系统交互外,还用于网络连接的oracle服务器标识。
- 当你配置oracle主机连接串的时候,就需要指定实例名,当然8i以后版本的网络组件要求使用的是服务名SERVICE_NAME。
- 数据库域名(db_domain)
使用在分布式环境
select value from v$parameter where name = 'db_domain';--查询数据库域名
全局数据库名 全局数据库名=数据库名.数据库域名
- 数据库服务名(service_name)
- 从oracle9i版本开始,引入了一个新的参数,即数据库服务名。参数名是SERVICE_NAME。
- 如果数据库有域名,则数据库服务名就是全局数据库名;否则,数据库服务名与数据库名相同。
- 从8i以后版本使用服务名进行连接。
select value from v$parameter where name = 'service_name';--查询数据库服务名