ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle数据库中让人容易混淆的“name”

oracle数据库中让人容易混淆的“name”

原创 Linux操作系统 作者:pingley 时间:2012-02-25 15:01:30 0 删除 编辑
oracle数据库中让人容易混淆的“name”
database name(数据库名):指的就是oracle数据库的名称,用来在一个域内唯一的标识一个数据库。数据库名由db_name初始化参数指定。数据库名最多可达8个字符(文字数字字符,下划线,#,$)组成,必须和create database中的指定的名字相同。在有多个数据库存在时,数据库名应该和实例名一致,以免混淆实例与数据库的对应关系。在RAC环境下所有的实例中的数据库名必须相同,备用数据库与主数据库的数据库名也应该相同。
SQL> show parameter db_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- --------
db_name                              string      oracl
数据库名是:oracl
instance name(实例名):oracle实例由SGA与oracle后台进程组成,实例名指的就是实例的名称。由初始化参数文件中的instance_name指定,唯一的标识实例。在单实例架构下,实例名一般和数据库名相同,在RAC环境下多个实例对应一个数据库。实例名也就是我们经常提高的SID.
SQL> show parameter instance_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- --------
instance_name                        string      oracl
实例名是:oracl
database domain(数据库域名):数据库域名就是网络域名。数据库创建以后,改变初始化参数db_domain的值不会影响到全局数据库名或者数据库链接名的解析。使用alter system 的方式是无法修改的。应该使用alter database修改,并且修改以后也不会 反映 在db_domian中,而是反映在global_name中。
SQL> show parameter db_domain
NAME                                 TYPE        VALUE
------------------------------------ ----------- --------
db_domain                            string
我没有设置数据库域名,因为我的数据库是本地学习测试用的。
global database name(全局数据库名):唯一的标识一个数据库,以database_name.database_domain的格式。因为不在同一个域内的数据库库名可能相同,但是同一个域内的数据库库名不可能相同,所以可以通过database_name.database_domain的方式唯一的标识一个数据库。查看数据字典视图global_name确定全局数据库名。
SQL> select * from global_name;

GLOBAL_NAME
-----------------------------------
ORACL
修改通过修改global_name的方式来修改db_domain
SQL> alter database rename global_name to oracl.zeng.com;
Database altered.
查看修改的情况
SQL> select * from global_name;
GLOBAL_NAME
-----------------------------------
ORACL.ZENG.COM
SQL> show parameter db_domain
NAME                                 TYPE        VALUE
------------------------------------ ----------- -----------
db_domain                            string
虽然db_domain的值是空的,但是全局数据库名确实已经更改了。
database service name(数据库服务名):对应客户端来说,数据库在逻辑上只是一个服务。一个数据库实例可以有多个数据库服务名,每个一个数据库服务名,为一组不同的客户端所使用。每个数据库服务名,也可以对应多个数据库实例。通过数据库服务名来标识每一个数据库,数据库服务名由初始化参数service_name确定。默认和全局数据库名相同。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26110315/viewspace-717141/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    169
  • 访问量
    741090