我也是看着各位大婶的博客然后一点点的来学习,不求全会,留个印象
数据库名
数据库名就是一个数据库的标识,用参数DB_NAME表示。
如果一台机器上安装了多个数据库,那么每一个数据库都有一个数据库名。
查看当前数据库名
select name from v$database;
show parameter db;
查看参数文件
数据库名在一开始准备建库的时候就应该考虑好,不要等到后面才来该数据库名,这样会很麻烦。也容易出问题。
数据库实例名
数据库实例名是操作系统和数据库进行交互时所用到的名称。
数据库实例名也被写入参数文件中,用instance_name表示,如果在windows下也会被写入注册表中。
一般来说实例名和数据库名是一对一的关系,但是如果实在oracle集群中,数据库名和实例名是一对多的关系。
数据库实例名与ORACLE_SID
instance_name是oracle数据库参数,而ORACLE_SID是操作系统的环境变量。
在数据库连接过程中,ORACLE_SID必须与instance_name的值一致,否则报错:
unix下:oracle not available
win下:TNS:协议适配器错误
数据库实例名还是网络连接的oracle服务器标识。
当配置oracle主机连接串的时候,就需要指定实例名,当然8i以后版本的网络组件要求使用的是服务名SERVICE_NAME。
数据库域名
在分布式数据库系统中,不同版本的数据库服务器之间,不论运行的操作系统是unix还是windows,各服务器之间都可以通过数据库链路进行远程复制,数据库域名主要用于oracle分布式环境中的复制。
比如全国交通运政系统的分布式数据库,其中
福建节点:fj.jtyz
福建厦门节点:xm.fj.jtyz
这就是数据库域名。
数据库域名存在于参数文件中,其参数是db_domain
select value from v$parameter where name='db_domain';
show parameter domain
在参数文件中查看
全局数据库名
全局数据库名=数据库名+数据库域名
如前所述福建节点的全局数据库名是:oradb.fj.jtyz
数据库服务名
从oracle9i开始,引入了一个新的参数,即数据库服务名,参数为SERVICE_NAME。
如果数据库有域名,则数据库服务名就是全局数据库名;否则,数据服务名与数据库名相同。
select value from v$parameter where name = 'service_name';
show parameter service_name;
在参数文件中查询
数据库服务名与网络连接
从oracle8i开始的oracle网络组件,数据库与客户端的连接主机串使用数据库服务名。之前用的是ORACLE_SID,即数据库实例名。