Oracle数据库名与Oracle实例名的关系 (3)

全局数据库名(global_name):对一个数据库(Oracle database)的唯一标识,oracle建议用此种方法标识数据库。该值是在创建数据库时决定的,缺省值为db_name. db_domain。在以后对参数文件中db_name与db_domain参数的任何修改不影响global_name的值,如果要修改 Global_name,只能用alter database rename global_name to <db_name.db_domain>命令进行修改,然后修改相应参数。

4.2查询数据库域名

方法一:select value from v$parameter where name = \'db_domain\';(10g中不可行)
方法二:show parameter domain
方法三:在参数文件中查询,$ORACLE_HOME/admin/db_name/pfile/init.ora(或$ORACLE_BASE/admin/db_name/pfile/init.ora)

4.3 例子

全国交通GIS系统的分布式数据库,其中:
吉林节点: jl.jtgis
吉林长春节点: cc.jl.jtgis
河北节点: hb.jtgis
河北石家庄节点:sjz.hb.jtgis
这些就是数据库域名,数据库域名在存在于参数文件中,她的参数是db_domain.
全局数据库名=数据库名+数据库域名,如前述福建节点的全局数据库名是:orcl.jl.jtgis

5 数据库服务名(service_name)

该参数是oracle8i新引进的。在8i以前,我们用SID来表示数据库的一个实例,但是在Oracle的并行环境中,一个数据库对应多个实例,这样就需要多网络服务名,设置繁琐。为了方便并行环境中的设置,引进了service_name参数。该参数对应一个数据库,而不是一个实例,而且该参数有许多其它的好处。

该参数的缺省值为db_name.db_domain,即等于global_name。如果数据库有域名,则数据库服务名就是全局数据库名;否则,数据库服务名与数据库名相同。一个数据库可以对应多个service_name,以便实现更灵活的配置。该参数与SID没有直接关系,即 service_name 不必与SID一样。

从Oracle8i开始的oracle网络组件,数据库与客户端连接的主机字符串推荐使用的是数据库服务名。之前用的是SID,即数据库实例名。

SID = the unique name of your DB instance, ServiceName = the alias used when connecting。

如果database is registered with listener in this way,你就可以在tnsnames.ora文件中使用SERVICE_NAME parameter,否则就要用SID。

查询数据库服务名(方法二测试可行)

     方法一:select value from v$parameter where name = \'service_name\';(10g中不可行)

方法二:show parameter service_name

更多关于服务名的信息可以参考:

?uid-67294-action-viewspace-itemid-402633

6 网络服务名(net_service_name)

网络服务名(net_service_name),又可以称为数据库别名(database alias),是客户端程序访问数据库时所需要,屏蔽了客户端如何连接到服务器端的细节,实现了数据库的位置透明的特性。网络服务名被记录在 tnsnames.ora文件中

可以通过netmgr来新建网络服务名。

网络服务名是从客户端的角度出发,当客户端连接远程数据库或其他服务时,可以指定网络服务名。因此需要使用一个或多个命名方法将此Net服务名解析为连接数据库或其他服务的连接描述符,命名方法如下:

  [本地]——将存储在本地客户机的tnsnames.ora文件中的网络服务名解析为连接描述符。
  [Oracle Names]——由Oracle名字服务器提供为网络上的每个Oracle Net服务提供解析方法
  [主机名]——通过TCP/IP环境中的主机别名连接到Oracle数据库服务

  [Sun NIS]/[DCE CDS]——专用系统用的,在Windows 2000系统环境下不适用

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwzdyx.html