博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dblink
阅读量:2427 次
发布时间:2019-05-10

本文共 2671 字,大约阅读时间需要 8 分钟。

http://blog.csdn.net/zwhfyy/archive/2009/07/14/4348286.aspx

一、dblink创建 (两种方式): 1、已经配置本地服务 create public database   link toBeJing connect to scott   identified by tiger using 'BEJING' 数据库连接字符串'BEJING'是当前客户端数据库中TNSNAMES.ORA文件里定义的别名名称.可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义. 2、直接建立链接 create database link toBeJing    connect to scott identified by tiger    using '(DESCRIPTION =    (ADDRESS_LIST =    (ADDRESS = (PROTOCOL = TCP)(HOST = X.X.X.X )(PORT = 1521))    )    (CONNECT_DATA =    (SERVICE_NAME = BJORCL)    )    )'; host=数据库的ip地址,service_name=数据库的ssid。   其实两种方法配置dblink是差不多的,我个人感觉还是第二种方法比较好,这样不受本地服务的影响。 注意: 假如创建全局dblink,则必须使用systm或sys用户,在database前加public。 1.先创建PUBLIC DATABASE LINK,不用指定用户和密码  scott@TEST>conn system/test    Connected. system@TEST>CREATE PUBLIC DATABASE LINK orcl USING 'BEJING';   Database link created.   2.再在各个用户下创建私有DATABASE LINK(同PUBLIC DATABASE LINK名称相同),指定用户和密码 system@TEST>conn scott/tiger    Connected.    scott@TEST>CREATE DATABASE LINK orcl CONNECT TO scott IDENTIFIED BY tiger;    Database link created.   实际上相当于:   CREATE DATABASE LINK orcl USING 'BEJING' CONNECT TO scott IDENTIFIED BY tiger; db link 有3种类型,我这里只讨论其中两种,connected user和fixed user。 connected user,简单来说,连接方数据库以connected的用户来连接远程数据库。 fixed user,简单来说,连接方数据库以fixed(指定的)用户来连接远程数据库。 看看创建db link语法,你对这两种类型就比较清楚了。 创建connected user的db link语法: create databas link foo connect to scott identified by tiger using 'BEJING' ; 创建fixed user的db link语法: create databas link foo using 'BEJING' ; db link 的命名和global_names有关,global_name是数据库全局名称,global_name在你所管理的数据库中要保证唯一。数据库名称是db_name。数据库名称一般都取得比较短,我的习惯一般取长度4个字符,重名概率高。 所以,oracle模仿域名搞出一个global_name,global_name=db_name+db_domain。 有了global_name,就可以实现数据库命名的全局唯一。例:ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM 数据库全局名称可以用以下命令查出 SELECT * FROM GLOBAL_NAME; 如果global_names=true,那么db link的命名要和远程数据库的global_name相同; 如果global_names=false,那么你可以随便命名db link。 查询global_names是true还是false,在pl/sql中的命令窗口(不是sql窗口)执行:show parameter global_names 二、dblink查询: 查看所有的数据库链接,进入系统管理员SQL>操作符下,运行命令:      SQL>select owner,object_name from dba_objects where object_type='DATABASE LINK'; 三、dblink删除: DROP PUBLIC DATABASE LINK toBeJing 四、dblink使用: SELECT……FROM表名@数据库链接名;   查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已。 例:查询北京数据库中emp表数据 select * from emp@toBeJing; 五、同义词配合: 第四点中from emp@toBeJing可以创建同义词来替代: CREATE SYNONYM同义词名FOR 表名; CREATE SYNONYM同义词名FOR 表名@数据库链接名; 如:create synonym bj_scott_emp for emp@toBeJing; 于是就可以用bj_scott_emp来替代带@符号的分布式链接操作emp@toBeJing DB LINK是独立于创建用户(USER_DB_LINKS的USERNAME)起作用的,其他用户无法使用这个连接,无权限也不能删除它。

[@more@]

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

转载于:http://blog.itpub.net/7916042/viewspace-1033777/

你可能感兴趣的文章
VMware虚拟机启动后出现黑屏,不能显示界面,无论安装的是ubuntu还是centos
查看>>
osi七层模型,什么是tcp/ip协议,tcp与http,UDP的区别,tcp三次握手过程和特点
查看>>
第二章,ubuntu系统的查看防火墙,切换root用户,设置固定ip、系统时间等
查看>>
hash原理总结
查看>>
mongodb的优缺点
查看>>
如何在cmd下,查找指定一个TXT文件的内容,把这个文本里包含关键字的所有行复制到一个新的文本中
查看>>
线程池和队列学习,队列在线程池中的使用,什么是队列阻塞,什么是有界队列
查看>>
复制集让mongodb的secondary支持读操作,因为存在读写延迟所以是否需要读写分离
查看>>
svn小乌龟怎么断开链接,怎么查看电脑中的隐藏文件,svn复制包或修改包名应注意什么
查看>>
DDR内存基础知识
查看>>
uboot结构之BL0、BL1、BL2、BL3区别于关系
查看>>
Linux模块传参
查看>>
文件系统
查看>>
Linux驱动之总线
查看>>
App 穷途末路?
查看>>
IoT 时代,你要么被颠覆,要么成为颠覆者!
查看>>
漫画:什么是囚徒困境?
查看>>
如何用 160 行代码,实现动态炫酷的可视化图表?
查看>>
山东到底有没有互联网?
查看>>
10 步教你接手同事的代码!
查看>>