DB_LINK、同义词的概念和使用

一、概念:

利用DB_LINK和同义词,可以从一个数据库访问另一个数据库的对象,就象访问自己数据库的对象一样方便。

DB_LINK实现了从一个数据库到另一个数据库的数据通路。例如:

数据库A和B,A想访问B的数据。在A数据库内建立一个到B服务器的DB_LINK,命名为o806。

如果访问B库的tax用户的USER表,用如下语句即可:

select * from tax.user@o806;

tax.user@o806就表示了B库上tax用户的user表。

 

象tax.user@o806这样表示B库的表使用起来很不方便,也不便于移植。通过同义词技术可以解决这个问题。我们可以创建一个同义词:user,使它等于tax.user@o806,从此访问B库tax用户的user表就可以这样写了:

select * fromuser;

跟操作本地表一样。

 

二、使用方法(以DBA STUDIO为例):

背景:

同一台主机上有2个库:10库、18库,想从10库访问18库invoice用户的表temp。

步骤:

1、 在主机上创建一个网络服务名,指向18库的实例,假设命名为18。

2、 创建DB_LINK

在10库上创建DB_LINK,指向18库,命名为o806。注意,DB_LINK的命名必须和目标数据库的名称相同(18库的名称是o806)。

a)        在DBA STUIDIO上,打开左边的10数据库à方案,在“数据库链路”上点右键à创建。

b)       填入信息:

名称:DB_LINK的名称

连接详细资料,选“固定用户”

用户名:invoice

密码:*****

服务名:18

另外,选上“共用”

c)        点“创建”按钮,如出现“数据库链路创建成功”的字样,则创建完毕。

3、 创建同义词

a)        在DBA STUIDIO上,打开左边的10数据库à方案,在“同义词”上点右键à创建。

b)       填写信息:

名称:同义词名,假设为temp。

方案:可以选一个用户,也可以选PUBLIC(共用)。

别名代表:选“远程数据库”

DB链路:选刚建好的“o806.world(PUBLIC)”

方案:选目标库的用户:invoice

对象:temp

c)        点“创建”按钮,如出现“同义词创建成功”的字样,则创建完毕。

4、 使用:

a)        打开sqlplus,连接到10库,运行如下语句:

SQL> select count(*) from temp;

 

 COUNT(*)

----------

   163842

说明可以通过同义词访问18库上的temp表。

凡是用到18库上temp表的地方,都可以直接用同义词temp来访问,就好像temp在自己的库上一样。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值