查看原文
其他

数据库链:Database Link与GLOBAL_NAMES参数的关系

2016-07-15 熊军 Oracle

(题图授权来自Oracle VP , Sally Piao的摄影佳作)

编辑手记:最近大讲堂中很多朋友在讨论DB Link的问题,我们精选一些文章与大家分享这方面的知识。


当GLOBAL_NAMES参数设置为TRUE时,使用DATABASE LINK时,DATABASE LINK的名称必须与被连接库的GLOBAL_NAME一致。

下面做一个测试,在测试中,创建数据库链接的库为XJ(WINDOWS 2003 ORACLE 10g 10.2.0.1),被链接的库为DMDB(LINUX AS5 ORACLE 10g 10.2.0.1 RAC)


首先查看DMDB的相关配置:


可以看到这个被链接的库其global_names参数为FALSE。


要创建数据库链接的库的配置:




可以看到数据库链接工作正常。


在DMDB库上将global_names设为TRUE:




在XJ库上再次查询,并新建一个DATABASE LINK再进行查询:




此时可以看数据库链接工作正常。我们再将XJ库的global_names参数设置为TRUE:




而再次将XJ库的global_names设为FALSE,则数据库链接又可用了。




再将DMDB库的global_names设为FALSE,数据库链接仍然可用:


在DMDB库上:



可以看到,链接仍然可以用。


如果在DMDB库上创建链接到XJ库上,可以观察到同样的结果。


可以得出一个结论:

global_names参数设置为TRUE(感谢Robert.Li指出的此前的错误),影响的是创建数据库链接的那个库对数据库链接的使用。也就是说,如果一个库(实例)的global_names参数设值为TRUE,则该库连接其他库的数据库链接,其名称必须要与被连接的库的global_name相同:


在XJ库上




如果在GLOBAL_NAMES设置为TRUE的情况下,如果要建多个数据库链接到同一个库,怎么办呢?因为数据库链接的名称必须与目标库的GLOBAL_NAME相同。


可以按如下的方法:



也就是在GLOBAL_NAME后面加上@再加上一个标识。这样就能够创建多个数据库链接到同一目标库上了。


另外在创建数据库链接时,不能给其他SCHEMA创建链接,这是因为数据库链接(database link)其名称可以含有'.'即点号。比如A用户想给B用户创建一个DBLINK名叫LINKB,CREATE DATABASE LINK B.LINKB ......这个语句将会实际创建一个A用户下的名为B.LINKB的数据库链接。


设置 global_names 初始化参数为 true 后,本地的数据库链接名称必须与远程数据库的 global_name 相同,才能正常使用数据库链接。那么怎么查询数据库的global_name 呢?




那么怎么样修改 global_name?




注意不要直接用 update global_name set global_name=''将global_name 设置为空,否则数据库不能启动,会报 ORA-00600[18061]  或 ORA-00600[18062] 这样的错误。 只有用备份进行恢复后才能打开。(参见metalink note 743676.1)。


那么 global_name 到底是个什么对象呢?


可以看到 global_name 实际上是一个视图,来源于 sys.props$ 表,而这个表是非常重要的一个关于数据库属性的表,不要随意更改此表的内容,否则将引起无可预料的、无法挽回的损失。


在用 alert database rename global_name 时,如果设置了 global_name类似于"dmdb.com"这样的名称,则以后更改名称,则没有常规的办法去掉"."分隔符了。




要去掉点分隔符,只有用 update:


郑重提示:除非万不得已,不要去更新 global_name 视图,即使更新,也不要去更新 global_name 的基表 props$,更不要将 global_name 更新为空,否则数据库可能无法启动。


如何加入"云和恩墨大讲堂"微信群

搜索 盖国强(Eygle)微信号:eeygle,或者扫描下面二维码,备注:云和恩墨大讲堂,即可入群。每周与千人共享免费技术分享,与讲师在线讨论。

近期文章

七月盛放:云和恩墨大讲堂电子期刊第七期

风云再起:美500强Oracle利润率IT类第一

Oracle 12.2:Sharding 新特性揭秘

用SQL解一道数学题:Gauss和Poincare

Oracle 12c ASM 防火防盗新特性揭秘

DBA入门之路:学习与进阶之经验谈

资源下载

关注本微信(OraNews)回复关键字获取

2016DTCC, 2016数据库大会PPT;

DBALife,"DBA的一天"精品海报大图;

12cArch,“Oracle 12c体系结构”精品海报;

DBA01,《Oracle DBA手记》第一本下载;

YunHe“云和恩墨大讲堂”案例文档下载;

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存