- 浏览: 265149 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (116)
- 开发工具 (21)
- Spring (5)
- Java (12)
- 面试题 (7)
- Hibernate (3)
- JavaScript (9)
- Jquery控件 (2)
- 自定义标签 (1)
- 错误总结 (3)
- Struts2+Juqery_qtip2 Form标签验证扩展 (1)
- Struts+Spring+MyBates (0)
- Oracle (37)
- Oracle错误总结 (5)
- J2EE (2)
- 研发管理 (1)
- MyBatis (1)
- Struts (1)
- Struts2 (1)
- PostgreSQL (1)
- weblogic (1)
- PL/SQL Developer (3)
- JSP (1)
- HTML (1)
- XHTML (1)
- JQuery (1)
最新评论
-
kyoldj:
select t.*, rownum rn
4. ...
oracle分页所遇到的rownum问题:要增加order by的唯一性 -
tanghuan:
不错不错
开发者如何提升和推销自己
Oracle数据库GLOBAL_NAMES参数的相关知识是本文我们主要要介绍的内容,当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的相关配置:
以下是代码片段:
SQL> show parameter global_names
NAME TYPE VALUE
------------------------------------ ----------- ---------
global_names boolean FALSE
SQL> select * from global_name;;
GLOBAL_NAME
----------------------------------------------------------
DMDB
可以看到这个被链接的库其global_names参数为FALSE。
要创建数据库链接的库的配置:
以下是代码片段:
SQL> show parameter global_names
NAME TYPE VALUE
------------------------------------ ----------- -------
global_names boolean FALSE
SQL> select * from global_name;
GLOBAL_NAME
--------------------------------------------------------
XJ
然后做下面的操作:
以下是代码片段:
SQL> create database link test_link connect to test identified by test using 'DMDB';
数据库链接已创建。
SQL> select * from dual@test_link ;
D
-
X
可以看到数据库链接工作正常。
在DMDB库上将global_names设为TRUE:
SQL> alter system set global_names=true;
系统已更改。
在XJ库上再次查询,并新建一个DATABASE LINK再进行查询:
以下是代码片段:
SQL> select * from dual@test_link ;
D
-
X
SQL> create database link test_link2 connect to test identified by test using 'DMDB';
数据库链接已创建。
SQL> select * from dual@test_link2 ;
D
-
X
此时可以看数据库链接工作正常。我们再将XJ库的global_names参数设置为TRUE:
以下是代码片段:
SQL> alter system set global_names=true;
系统已更改。
SQL> select * from dual@test_link2 ;
select * from dual@test_link2
*第 1 行出现错误:
ORA-02085: 数据库链接 TEST_LINK2 连接到 DMDB
SQL> select * from dual@test_link
select * from dual@test_link
*第 1 行出现错误:
ORA-02085: 数据库链接 TEST_LINK 连接到 DMDB
而再次将XJ库的global_names设为FALSE,则数据库链接又可用了。
SQL> alter system set global_names=false;
系统已更改。
SQL> select * from dual@test_link ;
D
-
X
SQL> select * from dual@test_link2 ;
D
-
X
再将DMDB库的global_names设为FALSE,数据库链接仍然可用:
以下是代码片段:
在DMDB库上:
SQL> alter system set global_names=false;
系统已更改。
在XJ库上:
SQL> select * from dual@test_link ;
D
-
X
可以看到,链接仍然可以用。如果在DMDB库上创建链接到XJ库上,可以观察到同样的结果。可以得出一个结论:global_names参数设置为FALSE,影响的是创建数据库链接的那个库对数据库链接的使用。也就是说,如果一个库(实例)的global_names参数设值为TRUE,则该库连接其他库的数据库链接,其名称必须要与被连接的库的global_name相同:
以下是代码片段:
在XJ库上:
SQL> alter system set global_names=true;
系统已更改。
SQL> create database link dmdb connect to test identified by test using 'dmdb';
数据库链接已创建。
SQL> select * from dual@dmdb ;
D
-
X
SQL> select * from dual@test_link ;
select * from dual@test_link
*
第 1 行出现错误:
ORA-02085: 数据库链接 TEST_LINK 连接到 DMDB
SQL> select * from dual@test_link2 ;
select * from dual@test_link2
*第 1 行出现错误:
ORA-02085: 数据库链接 TEST_LINK2 连接到 DMDB
如果在GLOBAL_NAMES设置为TRUE的情况下,如果要建多个数据库链接到同一个库,怎么办呢?因为数据库链接的名称必须与目标库的GLOBAL_NAME相同。可以按如下的方法:
以下是代码片段:
SQL> create database linkdmdb@link1connect to test identified by test using 'dmdb';
数据库链接已创建。
SQL> create database linkdmdb@link2connect to test identified by test using 'dmdb';
数据库链接已创建。
SQL> select * fromdual@dmdb ;
D
-
X
SQL> select * fromdual@dmdb@link1 ;
D
-
X
SQL> select * fromdual@dmdb@link2 ;
D
-
X
也就是在GLOBAL_NAME后面加上@再加上一个标识。这样就能够创建多个数据库链接到同一目标库上了。
另外在创建数据库链接时,不能给其他SCHEMA创建链接,这是因为数据库链接(database link)其名称可以含有'.'即点号。比如A用户想给B用户创建一个DBLINK名叫LINKB,CREATE DATABASE LINK B.LINKB ......, 这个语句将会实际创建一个A用户下的名为B.LINKB的数据库链接。
关于Oracle数据库GLOBAL_NAMES参数的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!
发表评论
-
oracle分页所遇到的rownum问题:要增加order by的唯一性
2013-12-04 17:04 1120昨天做完项目后让测试测试了一把,测试说分页查询貌似不起作用 ... -
Oracle中GOTO的用法
2013-12-03 14:37 1710Oracle中没有continue关键字,在loop中可以用 ... -
Oracle左连接与右连接区别
2013-10-28 19:12 1741数据表的连接有: 1、内连接(自然连接): 只有两个表相匹配 ... -
Oracle sql语句执行顺序
2013-07-05 09:53 28501sql语法的分析是从右到 ... -
修改oracle11g存档模式
2013-07-01 13:39 01.archive log list命令用户查看数据库存档 ... -
Oracle11g 导出数据库
2013-07-01 13:37 1213在运行中输入exp.exe, ... -
Oracle 冷备份和冷恢复
2013-07-01 13:37 1178阅读说明 1.参数说明 COLD_BACK_DIR: 冷备 ... -
Oracle创建用户,授权
2013-07-01 09:56 10731.用system,sys账户登录 2.创建用户creat ... -
MySql,Mssql,Oracle三种数据库性能优缺点及异同
2013-07-01 09:48 7311MySql优点 MySql是一个快速、多线程、多用 ... -
ORACLE纯SQL实现多行合并一行
2013-06-08 16:06 1744项目中遇到一个需求,需要将多行合并为一行。表结构如下:NAM ... -
Oracle触发器总结
2013-06-05 10:34 26141.触发器定义:触发器 ... -
row_number() over()分析函数用法
2013-05-10 16:12 4177row_number()over(partition ... -
Oracle dblink远程调用序列时应注意的几点
2012-11-19 13:55 1869在一条语句中 ... -
Oracle dblink小结备忘
2012-11-16 10:48 16681.查看数据库的global_name ... -
Oracle dblink远程调用存储过程、函数、序列
2012-11-16 10:46 3933一、dblink远程调用procedure: 1、写了一个 ... -
Oracle job问题解决汇总
2012-11-13 10:42 1571一、job的运行频率设置 1.每天固定时间运行,比如 ... -
Oracle job操作注意事项
2012-11-13 10:40 1354创建一个简单的JOB实列 1、创建测试表 ... -
Oracle常用日期操作
2012-11-12 16:33 1159--Oracle trunc()函数的用法 /**** ... -
Oracle SQL性能优化
2012-11-06 16:12 1186(1) 选择最有效率的表名顺序(只在基于规则的 ... -
group by高级用法
2012-09-07 16:17 1640一、如何理解group by ...
相关推荐
连接oralce数据库 适用于win7 64bit的python2.7
oracle数据库基础_必备技能详解
Oracle 数据库重点_难点总结.doc
oracle数据库_实例_用户_表空间之间的关系
\Oracle8i_9i数据库基础\Oracle8i_9i数据库基础\Oracle8i_9i数据库基础\Oracle8i_9i数据库基础\Oracle8i_9i数据库基础\Oracle8i_9i数据库基础\Oracle8i_9i数据库基础\Oracle8i_9i数据库基础\Oracle8i_9i数据库基础\...
详解Oracle数据库的db_cache_size和granule_size 摘取了官方文档的描述,用中文进行了分析
达内 Oracle 数据库基础_扫描版_2.71M
Oracle数据库01_数据库起步.pptx
05_Oracle数据库基础_达内
第八讲:Oracle数据库参数文件管理 第九讲:oracle数据库启动和关闭管理 第十讲:oracle undo sapce管理 第十一讲:oracle tablespace管理 第十二讲:oracle table管理 第十三讲:oracle index管理 第十四讲:oracle...
Oracle数据库培训_2.pptx
Oracle数据库培训_4.pptx
创建oracle10g_asm数据库step_by_step[归纳].pdf
oracle数据库exp_imp命令详解[参考].pdf
在_Oracle_Enterprise_Linux_5_上从头安装_Oracle_数据库_11g
如题:Oracle数据库_实例_用户_表空间的简单介绍以及它们之间的关系图
数据库oracle rac 修改db_unique_name参数
华为_oracle数据库华为_oracle数据库华为_oracle数据库华为_oracle数据库华为_oracle数据库华为_oracle数据库华为_oracle数据库华为_oracle数据库华为_oracle数据库华为_oracle数据库
oracle数据库基础_必备技能详解,共4个解压包...
oracle数据库基础_必备技能详解,4个压缩包的最后一个部分...