1
ORACLE 建立DB-LINK
测试条件:
假设有两台服务器,一台远程服务器IP为:192.168.1.248,其中SID:BKSVR 用户名:slarms,密码:oracle
本地服务器IP:192.168.1.29,其中SID:JSJN,用户名:slarms,密码:oracle
现要通过本地数据库JSJN访问远程数据库BKSVR。
测试环境:
远程服务器248为AIX,本地服务器29为WINDOWS,ORACLE版本均为oracle9i
参数设置:
1.
查看数据库中的GLOBAL_NAME?
执行SELECT * FROM GLOBAL_NAME;
远程数据库248返回:BKSVR
本地数据库29返回:JSJN.REGRESS.RDBMS.DEV.US.ORACLE.COM
2.
查看GLOBAL_NAME参数?
SQL> show PARAMETER global_name;
NAME TYPE VALUE
-------------------------- -----------
global_names boolean FALSE
该参数为true时,本地建立的DBLINK的名称必须和远程的GLOBAL_NAME名称一致。
3.
查看是否支持高级复制功能?
查看v$option视图,如果Advanced replication为true,则支持高级复制功能,否则不支持
SELECT * FROM v$option WHERE parameter LIKE 'Advanced replication%';
建立步骤:
1.
在本地建立远程数据库248的客户端连接BKSVR_248;
2.
在本地建立本地数据库29的客户端连接SLARMS_29;
3.
PLSQL用SLARMS_29登录本地数据库,执行建立DB-LINK连接:
CREATE DATABASE LINK BKSVR CONNECT TO slarms IDENTIFIED BY oracle USING 'BKSVR_248'--创建DB-LINK 注意本地服务名必须是单引号
其中BKSVR是远程的数据库248的GLOBAL_NAME,slarms是远程数据库248的用户名,oracle是远程数据库248的密码。BKSVR_248是本地建立的连接的数据库的服务名。
4.
测试连接是否成功:
SELECT * FROM dual@bksvr;
DUMMY
--------
X
如果返回结果则表示连接成功。
5.
在本地数据库29中查询已经建立远程连接的数据库。
SELECT owner,object_name FROM dba_objects WHERE bject_type='DATABASE LINK';
OWNER OBJECT_NAME
------------------------------
SLARMS BKSVR.REGRESS.RDBMS.DEV.US.ORACLE.COM
6.
本地已经建立了DBLINK用于连接到远程数据库上,在本地数据29上可以查询得到远程数据库248的数据。
SELECT * FROM ccy@bksvr;
其中ccy是表名。