谈 数据库链路 方法
作者:Java伴侣 日期:2006-10-22
试想如果把DB1上的表数据放入DB2中,常用的应该有几种方法:
1. 做备份,用EXP、IMP。(提前数据库必须都是oracle,且版本需要统一)
2. 用spool工具,把DB2的表转换成文本,然后导入DB1.
3. sqlloader工具来实现。
4. 就是orcale本身带的DBlink功能,也就是数据库链路。这种方法操作简易,且跨版本。
首要需给DB1上的tnsnames.ora文件配置好net8协议,前面的文章中有提到过配置方法。主要需要配置的地方,一是本地服务名,此例中为AA,链接对方机器可用SQL>CONN SCOTT/TIGER @ AAA。二是DB2的IP地址。
分析数据库链路关系图.
指令步骤:
链接DB1,在system下授权:
SQL>GRANT Create DATABASE LINK TO SCOTT;
SQL>GRANT Create PUBLIC DATABASE LINK TO SCOTT;
SQL>CONN SCOTT/TIGER //切换用户
SQL>CREAT PUBLIC DATEBASE LINK aaa CONNECT TO SCOTT IDENTIFIED BY TIGER USING 'AAA';
这句是建立链路,SCOTT和TIGER是对方的用户名、密码。AAA是net8协议的设置。aaa是给链路起的名称。
测试链路是否成功:
SQL>Select * FROM SCOTT.EMP@ aaa;
SQL>Insert INTO SCOTT.XYZ@ aaa VALUES('进入成功');
SQL>CREAT TABLE ABCD AS Select * FROM EMP @ aaa;
取消链路:
SQL>Drop DATA LINK aaa;
最后值得一提的是,开启链路的同时就开启了RECO进程(分布式进程),此进程用户把断开的网络自动重连。