« Streams散记之一-如何清除流配置 | Blog首页 | 装修日记-地板我选安信实木地板 »
Global_name从何处来?
作者:eygle |【转载时请务必以超链接形式标明文章原始出处和作者信息及本声明】链接:http://www.eygle.com/archives/2007/11/howto_change_global_name.html
我们应该都很熟悉global_name这个词,在进行db link的创建时,通常都需要关注一下global_name.
注意,我这里说的不是初始化参数global_names。
通过视图global_name可以获得当前参数的设置:
SQL> select * from global_name;
GLOBAL_NAME
--------------------------------------------------
WAPDB.REGRESS.RDBMS.DEV.US.ORACLE.COM
那么这个global_name视图的数据来自何处呢?
通过global_name视图的创建语句我们可以获得如下信息:
create or replace view global_name
(global_name)
as
select value$ from sys.props$ where name = 'GLOBAL_DB_NAME'
我们看到global_name中的信息实际上是来自props$内部表的,取得的信息是其中的global_db_name字段。
SQL> select value$ from sys.props$ where name = 'GLOBAL_DB_NAME';
VALUE$
--------------------------------------------------
WAPDB.REGRESS.RDBMS.DEV.US.ORACLE.COM
SQL> select * from global_name;
GLOBAL_NAME
--------------------------------------------------
WAPDB.REGRESS.RDBMS.DEV.US.ORACLE.COM
这里得到的是通常数据库创建的缺省设置,在生产环境中,我们可以通过如下命令来修改Global_name:
SQL> alter database rename global_name to WAPDB.EYGLE.COM;
Database altered
SQL> select * from global_name;
GLOBAL_NAME
--------------------------------------------------
WAPDB.EYGLE.COM
这个global_name为什么很重要呢?
因为在创建db link的时候,db Link的最终格式与此相关,实际上global_name由两部分组成,DB_NAME和DB_DOMAIN。在创建db link的时候,Oracle会自动将db_domain作为后缀添加上去。而且一旦加入就很难变更。
所以在进行高级复制、Streams复制等配置时,最好首先将多个节点的global_name规划好。
-The End-
By eygle on 2007-11-01 11:45 | Comments (1) | Posted to Advanced | FAQ | Edit |Pageviews:
留言 (1)
一直疑惑,global_names的作用是什么呢?
我发现如果global_names=true的时候,建立的db link是不能正常使用的。
global_names和global_name之间的关系是什么?
谢谢!
Posted by: 小花猫 at November 9, 2007 10:04 AM
