一. 环境
两台win7机器,使用本地机器连接IP为192.168.1.102的机器上的oracle
oracle版本为11gR2 64位。
本次测试为局域网互通的情况下。
二. 步骤
1. 查询102上数据库的GLOBAL_NAME
102上查询结果为:ORCL
2.查看global_name参数是true还是false
SQL> show parameter global_name;
返回结果false。结果为true时,在本地建立的dblink的名称必须和远程的global_name一致。
3.查看远程数据库是否支持高级复制功能
select * from v$option where PARAMETER='Advanced replication'
如何返回值为True,那么就是支持,否则就是不支持。需要两个数据库中都支持。
4.本地建立Oracle客户端连接dblink_102,用于连接到102数据库
步骤如下:
1) 打开oracle网络管理工具
2) 点击新建数据库连接
3) 配置服务名
4) 选择协议为默认
5) 配置远程数据库的IP、端口等信息
6) 配置远程数据库的SID
7) 测试是否成功
8) 保存配置
5.本地建立dblink
create public database link dblink102 connect to user_name identified by "1" using 'dblink_102';
说明:
创建dblink时,以数字开头的的项,比如密码为:1,此时需要将密码用双引号包围,否则创建不成功,提示sql命令未正确结束。
其中的用户名与密码均为102上的用户与密码。
6.测试dblink
如下:
或如下
select * from ppp_t_proj@dblink102
格式为:
select xxx FROM 表名@数据库链接名;
三. 其他
1. 查看所有dblink信息
select owner,object_name from dba_objects where object_type='DATABASE LINK';
或
select * from dba_db_links;
2. 删除dblink
drop public database link dblink102;
3. 创建和删除同义词
使用表名@数据库链接名 的方式名称太长,可使用同义词或者视图的方式来替代。
create or replace synonym 同义词名 for 表名;
create or replace synonym 同义词名 for 用户.表名;
create or replace synonym 同义词名 for 表名@数据库链接名;
drop synonym 同义词名;