总部有一个数据库,SID为SIDBJ,帐号为:userbj/bj123,IP为192.168.1.101,
要求:在本地数据库SIDXJ能够访问远程数据库SIDBJ。
即,在sidxj数据库中,用户userxj需要建立dblink,以userbj身份访问sidbj数据库。
步骤:
1.首先关闭两台计算机的防火墙
获得global_name,执行如下操作:
select * from global_name;
远程数据库的global_name为:sidbj.oracle.com
本地的global_name为:sidxj
查看初始化参数global_name
whow parameter global_name;
如果结果为true,则dblink名称与远程数据库的global_name要一致。
查看两个数据库是否都支持高级复制功能
select * from v$option where parameter='Advanced replication';
如果为true,则支持。
在本地数据库sidxj的tnsnames.ora中添加链接字符串dblink_sidbj
2. 创建dblink,用于连接本地数据库sidxj,以userxj/xj123登录
create database link sidbj.oracle.com connect to userbj identified by bj123 using 'dblink_sidbj';
其中,sidbj.oracle.com是远程数据库的global_name,userbj/bj123是远程数据库的帐号,dblink_sidbj是本地建立的连接字符串,用于访问远程数据库sidbj。
3.测试连接是否成功
select * from dual@sidbj.oracle.com
如果返回如下所示表示成功。
dummy
------
X
在本地数据库中查询dblink信息
select owner,object_name from dba_objects where object_type='DATABASE LINK';
4. 访问dblink
select * from test@sidbj.oracle.com;
--test是userbj方案下的一个表