一、测试条件、环境
1、测试条件:
1号服务器(目标数据库)
SID:orcl 1 用户名:user1 密码:pwd1 IP地址:192.168.4.1
3号服务器(源数据库)
SID:orcl3 用户名:user3 密码:pwd3 IP地址:192.168.4.3
要将1号服务器orcl1数据库中访问到3号服务器的orcl3数据库中的数据。
也就是说,在1号服务器的数据库中,用户user1(192.168.4.1)需要建立DBLINK,以3号服务器的用户身份访问 192.168.4.3 中的数据。
2、测试环境
1号服务器(目标数据库),centos6+oracle11gR2
3号服务器(源数据库),windows2008+oracle
3、注意点
建立环境时,要注意关闭两台计算机上的Windows的防火墙,否则,会出现能ping通,但Oracle连接不通的情况。
二、DBLINK建立
假设1号服务器中用户已经建好
1、赋权并创建dblink
[oracle@dbserver ~]$ sqlplus / as sysdba
SQL>grant create database link to user1;
SQL> conn user1/
SQL> show user
USER is “USER1”
SQL> select tname from tab;
no rows selected
SQL>create database link testLink connect to user3 identified by pwd3 using ‘(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.4.3)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = ORCL3)))’;
其中:testLink是远程的数据库的global_name,user3是连接orcl3的用户名,pwd3是user3的密码,HOST:源数据库地址,service_name里的orcl3对应源库lsnrctl status 是显示的instance名字
3、测试连接是否成功:select * from dual@testLink;
如果返回结果如下则表示连接成功了。
DU
X
4、查询已经建立的远程连接名
SQL>select owner,object_name from dba_objects where object_type=’DATABASE LINK’;
三、查询数据
select * from user3.table@testLink;
四、导入,导出数据
1、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。
Sql>create directory dump_dir as ‘/home/dumpdir’;
6、给user1用户赋予在指定目录的操作权限,最好以system等管理员赋予。
grant read,write on directory dump_dir to user1;
2、导入命令
impdp user1/pwd1 network_link=testLink nologfile=y directory=dump_dir schemas=user1
3、删除DBLINK
SQL> drop public database link testLink;
Database link dropped.
注:如果不需要导入导出数据,第1、2步可跳过直接执行第7步