1)数据库名 DB_NAME
Oracle数据库的内部标记。同时存在于二进制控制文件和参数文件pfile中,因此在数据库安装完成后,无法修改。
在pfile中,可以见到它。
DB_NAME = ora9i # ora9i可以是任何名字
它的作用:安装数据库后,数据库的物理结构文件目录中要使用到DB_NAME。如pfile文件放在:
/home/app/oracle/admin/DB_NAME/pfile/init$ORACLE_SID.ora
数据库后台进程跟踪文件存储目录:
/home/app/oracle/admin/DB_NAME/bdump
注意,在安装Oracle企业版数据库时,往往要求同时指定数据库名(db_name)和域名(db_domain)。如:ora9i.nic.hqzy.com.cn中,db_domain等于nic.hqzy.com.cn。
查询数据库名的方法:
1.a) SQL> select name from v$database
ORA9I
1.b) SQL> show parameter db
...
db_name string ora9i
1.c) 在参数文件pfile中查找
2) 数据库实例名 INSTANCE_NAME
数据库实例名用于数据库和操作系统之间的联系,也就是在对外连接时使用。它是允许修改的。
数据库名与数据库实例名一般是一一对应的关系。
查询数据库实例名的方法:
2.a) SQL> select instance_name from v$instance;
ora9i
2.b) show parameter instance
...
instance_name string ora9i
2.c) 在pfile中查找
...
instance_name=ora9i
3) ORACLE_SID
其实它就是数据库实例名。只是INSTANCE_NAME是Oracle数据库参数,而ORACLE_SID是操作系统的环境变量。
在数据库的参数文件命名中,使用到ORACLE_SID,如:
/home/app/oracle/admin/DB_NAME/pfile/init$ORACLE_SID.ora
重要的是,如果你通过sqlplus连接数据库,它默认连接的是实例名为$ORACLE_SID的数据库。
$ ORACLE_SID=ora9i
$ export ORACLE_SID
$ sqlplus "/sysdba" --> 链接到实例名为ora9i的数据库
当然可以通过更改ORACLE_SID来连接到其他数据库。
$ ORACLE_SID=ora9ia
$ export ORACLE_SID
$ sqlplus "/sysdba" --> 链接到实例名为ora9ia的数据库
当然这里又涉及到了一个操作系统认证的问题,以后再讨论。
4)数据库域名
前面已经提到过数据库域名,它经常在分布式数据库环境中使用,两个数据库之间要通过数据库链路进行数据的远程传输,且在同一网络环境下,两个数据库的数据名字相同,而它们的域名不同,同样可以唯一性地标识出它们。如:prod1.nic.hgzy和prod1.cic.hgzy。
查询数据库域名:
4.a) SQL> select value from v$parameter
2> where name = 'db_domain'
value
------------------
nic.hqzy.com.cn
4.b) SQL> show parameter domain
4.c) 查询参数文件
...
db_domain = nic.hqzy.com.cn
5)全局数据库名
全局数据库名 = 数据库名+域名。
6) 数据库服务名
如果数据库有域名,数据库服务名就是全局数据库名;如果数据库没有域名,数据库服务名就是数据库名。
查询数据库服务名
6.a) SQL> select value from v$parameter
2> where name = 'sevice_names'
6.b) SQL> show paramter service_names
6.c) 查询参数文件
......
service_names = ora9i.nic.hqzy.com.cn