Oracle建立DB-LINK

2014-11-24 18:47:59 · 作者: · 浏览: 0

测试条件


两台服务器


远程:IP:192.168.0.18,SID: usertest,用户名:usertest,密码:123456


本地:IP: 192.168.8.90,SID: wjn,用户名:userwjn,密码:mosquito0


参数设置


1. 查看数据库global_name


执行select * from global_name;


远程数据库18返回: USERTEST.US.ORACLE.COM


本地数据库90返回: DB_WJN.REGRESS.RDBMS.DEV.US.ORACLE.COM


2. 查看global_name参数


SQL>show parameterglobal_name;


NAME TYPE VALUE


----------------------------------------------- ------------------------------


global_names boolean FALSE


该参数为TRUE时,本地连接的DBLINK的名称必须和远程的global_name一致.


3. 查看是否支持高级复制功能


查看v$option视图, Advanced replication为true则支持,否则不支持


select * from v$option t wheret.PARAMETER like 'Advanced replication%';


建立方法


1.创建dblink的第一种方式,是在本地数据库tnsnames.ora文件中配置了要远程访问的数据库。


create database link USERTEST_18connect to USERTEST identified by xxxx using 'USERTEST_192.168.0.18';


  其中USERTEST_18是你创建的dblink名字,usertest是远程数据库的实例名,USERTEST/xxxx是登录到远程数据库的用户/密码。然后在本地数据库中通过dblink访问远程数据库18中dual表,sql语句如下所示


  select * from dual@ USERTEST_18;


2.创建dblink的第二种方式,是在本地数据库tnsnames.ora文件中没有配置要访问的远程数据库


create public database link USERTEST_18


connect to USERTEST


identified by 123456 using


'(DESCRIPTION =


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.18)(PORT = 1521))


)


(CONNECT_DATA =


(SID = usertest)


(SERVER = DEDICATED)


)


)';


  第二种是把第一种配置在tnsnames.ora文件中的信息,直接放在创建dblink语句后面。第一种情况tnsnames.ora文件中信息如下:


USERTEST_192.168.0.18 =


(DESCRIPTION =


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.18)(PORT = 1521))


)


(CONNECT_DATA =


(SID = usertest)


(SERVER = DEDICATED)


)


)