日期:2014-05-16 浏览次数:20333 次
最近对oracle使用比较频繁,在多个服务器之间操作数据库时候使用到了DB_LINK和sysnonym(同义词),觉得有必要做个笔记同时与大家分享下:
??? 情景假设:
????????? 1.有服务器A、B两台,分别安装了oracle10g服务器;
??????????2.客户端笔记本1台C安装oracle服务端,3台机器在同一网络;
????????? 3.A服务器上用户testa/password有A01商品类别表(类别编号,类别名称),B服务器上testb/password有B01商品信息表(商品编号,商品名????????? 称,类别编号,……);
????????? 4.现在要查询所有商品的商品名称、类别名称。
???? 实现功能:
??????????? 首先,我们需要2台不同服务器上的数据,就需要在DBMS层建立起链路,即DB-link。建立dblink的前提是两台服务器可以连通,我们可以在服务器A上通过oracle自带的net manager?(配置和移植工具下)工具配置oracle连接:网络服务名填写 ‘orcl_linkB’?其他按提示填写;
??????????? 然后,选择在A服务器上实现远程访问到B服务器上读取商品信息表的数据,则需要创建DB_link,代码如下:
??????????? create database link?dblinkname
??????????? connect to?testb identified by password
??????????? using 'orcl_linkB';
??????????? 配置完成!
?????使用db_link完成情景假设中的任务:
???????????? 1.在A服务器上以用户testa/password登陆
?????????????2.代码如下:
??????????????? select 商品信息表.商品名称,商品类别表.类别名称?????
??????????????? from?testb.商品信息表@dblinkname,商品类别表
??????????????? where 商品类别表.类别编号=testb.商品信息表.类别编号@dblinkname;
?????????? ??????????