关于DBLink

database link概述
     databaselink是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序。在任何分布式环境里,database都是必要的。另外要注意的是database link是单向的连接。在创建database link的时候,Oracle再数据字典中保存相关的database link的信息,在使用database link的时候,Oracle通过Oracle Net用用户预先定义好的连接信息访问相应的远程数据库以完成相应的工作。

建立database link之前需要确认的事项:确认从local databaseremote database的网络连接是正常的,tnsping要能成功。确认在remote database上面有相应的访问权限。


database link分类


创建dblink所需的权限


database link的使用

CREATE [SHARED][PUBLIC] database link link_name

     [CONNECT TO [user][current_user] IDENTIFIED BY password]
      [AUTHENTICATED BY user IDENTIFIED BY password]
[USING 'connect_string']


如下是我创建dblink的实例

CREATE DATABASE LINK yc_hslink CONNECT TO zjjz IDENTIFIED BY zjjz USING 'orcl';

以下是一个实例:

测试条件:

假设有两台服务器,

一台远程服务器IP为:192.168.1.248,其中SID:BKSVR 用户名:slarms,密码:oracle

本地服务器IP:192.168.1.29,其中SID:JSJN,用户名:slarms,密码:oracle

现要通过本地数据库JSJN访问远程数据库BKSVR。
测试环境:
远程服务器248为AIX,本地服务器29为WINDOWS,ORACLE版本均为oracle9i
参数设置:
1.
查看数据库中的GLOBAL_NAME?
执行SELECT * FROM GLOBAL_NAME;
远程数据库248返回:BKSVR
本地数据库29返回:JSJN.REGRESS.RDBMS.DEV.US.ORACLE.COM
2.
查看GLOBAL_NAME参数?
SQL> show PARAMETER global_name;
NAME TYPE VALUE
-------------------------- -----------
lobal_names boolean FALSE
该参数为true时,本地建立的DBLINK的名称必须和远程的GLOBAL_NAME名称一致。
3.
查看是否支持高级复制功能?
查看v$option视图,如果Advanced replication为true,则支持高级复制功能,否则不支持

SELECT * FROM v$option WHERE parameter LIKE 'Advanced replication%';

建立步骤:
1.
在本地建立远程数据库248的客户端连接BKSVR_248;
2.
在本地建立本地数据库29的客户端连接SLARMS_29;
3.
PLSQL用SLARMS_29登录本地数据库,执行建立DB-LINK连接:
CREATE DATABASE LINK BKSVR CONNECT TO slarms IDENTIFIED BY oracle USING 'BKSVR_248'--创建DB-LINK 注意本地服务名必须是单引号
其中BKSVR是远程的数据库248的GLOBAL_NAME,slarms是远程数据库248的用户名,oracle是远程数据库248的密码。BKSVR_248是本地建立的连接的数据库的服务 名。
4.
测试连接是否成功:
SELECT * FROM dual@bksvr;
DUMMY
--------
X
如果返回结果则表示连接成功。
5.
在本地数据库29中查询已经建立远程连接的数据库。
SELECT owner,object_name FROM dba_objects WHERE bject_type='DATABASE LINK';
OWNER OBJECT_NAME

------------------------------
SLARMS BKSVR.REGRESS.RDBMS.DEV.US.ORACLE.COM


6.

       本地已经建立了DBLINK用于连接到远程数据库上,在本地数据29上可以查询得到远程数据库248的数据。
SELECT * FROM ccy@bksvr;
其中ccy是表名。















评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值