Oracle的DB Link

数据库之间的链接建立在DATABASE LINK上。要创建一个DB LINK,必须先在每个数据库服务器上设置链接字符串。

1、 配置TNS , $ORACLE_HOME/NETWORK/ADMIN/tnsname.ora

10gstandby =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = HFCC-KF-3068)(PORT = 1522))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = 10gstandby)

2、创建数据库链接,

create public database link DB_LINK_NAME connect to TargetDatabaseUserName identified by TargetDatabasePassword using 'TargetDatabaseSIDName';

注:TargetDatabaseSIDName为该Oracle数据库所在的主机上的tnsnames.ora文件里边定义的数据库连接串。

SQL>create public database link dvd connect to system identified by system using 'orcl10g';

或者使用:

create PUBLIC database link LINK_NAME

connect to USER identified by PWD

using '(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))

(CONNECT_DATA =

(SERVICE_NAME = orcl)

)';

本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

则创建了一个以system用户和orcl10g数据库的链接dvd,我们查询dvd数据:

SQL>select * from all_users@dvd;

这样就可以把本地和远程的数据做成一个整体来处理。

3、建立同义词,为了使有关分布式操作更透明,ORACLE数据库里有同义词的对象synonym

SQL>create synonym synTest for all_users@dvd;

于是就可以用synTest来替代带@符号的分布式链接操作all_users@dvd;

4、查看所有的数据库链接:

SQL>select owner,object_name from dba_objects where object_type='DATABASE LINK';

5、查看数据库连接

sql> select owner, db_link from dba_db_links;

ower    db_link

public   DVD.REGRESS.RDBMS.DEV.US.ORACLE.COM

6、删除数据库连接

先从第5步中查看数据库连接,取得其db_link的名称

sql>drop public database link DVD.REGRESS.RDBMS.DEV.US.ORACLE.COM

数据库连接巳丢弃

51cto博客 Oracle小混子

时间: 2025-01-30 13:16:53

Oracle的DB Link的相关文章

Oracle global database name与db link的纠缠关系

  ORACLE数据库中Global Database Name与DB LINKS的关系还真是有点纠缠不清,在说清楚这个关系前,我们先来了解一下Global Database Name的概念   Global DataBase Name 概念 1. What is a global database name? ------------------------------------------------------------------------------- The global da

[20130701]db link与事务.txt

[20130701]db link与事务.txt 昨天帮别人修复数据库,安全起见,我先启动read only模式,叫他们检查一些相关数据是否正常,但是在程序界面上出现:ORA-16000: database open for read-only access. 我跟踪发现执行的实际上通过db_link访问远程数据库的语句,不是dml语句(注:实际上执行dml,发生的事务也在远端,不在本地).按照这个道理如果数据库在只读的情况下,是不能访问远端的数据库的. google 发现如下链接: 我回来后在

[20130415]数据泵与db link.txt

[20130415]数据泵与db link.txt 数据泵是10g以后采用的新特性,按照一些介绍速度比exp/imp快.以前我总是成对的使用它,也就是先expdp导出数据,然后再传输到新的服务器,然后在impdp导入数据,这样的过程明显不是很快,特别是导出文件很大的情况下,速度并没有感觉快到哪里,如果数据泵加上db link,这样仅仅使用impdp导入就可以,省去了前面的步骤. 自己做一个测试: 测试数据从10g服务器到11g的测试机的导入情况: 1.测试环境与配置如下: --测试机器A(11g

[20140408]db link 口令安全问题.txt

[20140408]db link 口令安全问题.txt 测试在11GR2 ,如果以sys用户登录,查询sys.link$基表,通过简单的函数很容易知道db link的口令. 例子: SYS@test> @ver BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.3

关于db link权限分配的苦旅(二)

在几天前说过关于db link分配权限的问题,当时也折磨了我好一会儿 http://blog.itpub.net/23718752/viewspace-1869425/ 大体的情况还是在118的服务器中去访问128中的某个表的时候存在一些访问的问题,最后是重建了一个public的db link得以修复,当时对于这个问题的临时处理也是一波三折,还触发了一个oracle的bug,也算是有惊无险. 但是对于之前操作中的疑问在解释之后统一进行解答. 第二天的时候,开发的同事反馈说线上进行测试提dblin

Oracle Berkeley DB Java v4.0.92发布 嵌入式数据库系统

Oracle Berkeley DB Java 版是一个开源的.可嵌入的事务存储引擎,是完全用 Java 编写的.与 Oracle Berkeley DB 类似,Oracle Berkeley DB Java 版在应用程序的地址空间中执行,没有客户端/服务器通信的开销,从而使开发人员能够快速.方便.可靠地存储和检索信息.Oracle Berkeley DB Java 版是完全用 Java 设计的.它充分利用 Java 环境来简化开发和部署.Oracle Berkeley DB Java 版的体系

Oracle创建Database Link的两种方式详解_oracle

创建一个dblink,命名为dblink_name,从A数据库连到B数据库,B数据库的IP为192.168.1.73,端口为1521,实例名为oracle,登录名为tast,密码为test. 一菜单方式: 打开plsql,点击[File]-[New]-[Database link],打开如下图所示窗口 填好各项信息后,点击[Apply]即可完成Database Link的创建. 二SQL方式 -- Drop existing database link drop public database

[20150907]关于db link.txt

[20150907]关于db link.txt --有时候学习的需要,要测试db link的sql语句,需要使用到db link,而实际的情况仅仅1台机器,1个数据库. --即使你什么都不建立.也可以使用global_name作为db link. SCOTT@test> select global_name c10 from global_name; C10 ---------- TEST.COM --另外说明以下实际上访问的是sys.props$ 表.现在执行计划就可以知道. SCOTT@te

关于db link权限分配的苦旅(一)

昨天接到一个开发的需求,内容看起来非常简单. 申请数据库192.168.1.118:1522:TEST下用户APP_TE_FLOW_128赋予对表testore_log的查询权限... 貌似这个语句也就几秒钟就可以搞定,直接赋予对象权限,或者角色都可以, 类似grant select on test.testore_log to APP_TE_FLOW_128; 但是这个看似简单的案例,我想用两篇日志来总结,因为里面有许多的内容量,中间的过程也是异常曲折,而且最开始的推论很可能是错误的,然后还可