创建Oracle的DB Link实战

当有在一台数据库服务器上集合或者分类筛选位于其他数据库服务器上的数据时,如果从应用层面上来解决问题,可能需要占用大量内存并且很费事。
Oracle数据库本身提供了DB LINK的机制来达到这个目的,以下以具体步骤来实现这个操作。
 
1. 首先在管理数据库上创建到一个数据库的DB LINK.
-- Drop existing database link if needed
drop database link ctm_16;
-- Create database link
create database link ctm_16
  connect to CTM identified by odsctem
  using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 128.64.96.16)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = odsctlcs)
)
)';
 
2. 为这个DB LINK就要查询的表创建SYNONYM,方便查询。
CREATE SYNONYM ctm_ajf_16 FOR cmr_ajf@ctm_16;
 
3. 创建到另外一个数据库的DB LINK
-- Drop existing database link
drop database link ctm_48;
-- Create database link
create database link ctm_48
  connect to ctm identified by odsctm
  using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 128.64.96.48)(PORT = 1522))
)
(CONNECT_DATA =
(SERVICE_NAME = odsctem)
)
)';
 
4. 同样创建SYNONYM.
CREATE SYNONYM CMR_AJF_48 FOR CMR_AJF@CTM_48;
 
5. 这时候已经可以联合位于两个不同数据库的数据进行查询了。
Example:查询两个库都存在的jobname.
select a48.jobname from cmr_ajf_48 a48 join cmr_ajf_16 a16 on a48.jobname=a16.jobname;
 
另配置创建DB LINK的TNS部分,也可以在本地的TNSNAMES.ORA写入,然后在创建时候指定服务名,但个人觉得这样创建,灵活性更高一些:-)
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值