Snowfun

导航

 

首先创建数据库链接:
CREATE PUBLIC DATABASE LINK 数据链名称 CONNECT TO 登陆用户名 IDENTIFIED BY 密码 USING '(DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 对方Oracle服务器的IP地址)(PORT = 端口号))
     )
     (CONNECT_DATA =
(SERVICE_NAME = 对方Oracle服务器服务名)
     )
   )'
其中 数据链名称 为添加到本地Oracle数据库控制台(Oracle Enterprise Manager Console)树节点的服务名

--要查询对方数据库的表TableName语句如下:
SELECT 字段名 FROM TableName@数据链名称

--复制表数据: 
insert into 表名(字段名) (SELECT 字段名 FROM TableName@数据链名称);

 


实例:服务器10.10.0.68查看10.10.1.172库ORCL用户NC0412的数据

方一: 

--创建DBLink test0412
CREATE PUBLIC DATABASE LINK test0412 CONNECT TO nc0412 IDENTIFIED BY nc0412 USING '(DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.1.172)(PORT = 1521))
     )
     (CONNECT_DATA =
(SERVICE_NAME = orcl)
     )
   )
' 

 

方二

1.备份文件 

 

2.配置0.68服务器端的tnsnames.ora文件,该文件存放的位置为$ORACLE_HOME/network/admin/tnsnames.ora,需要在该文件中增加对1.172库的配置项,格式

如下 :
orcl172 =
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.1.172)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
)  

 

3..在0.68服务器的一个库中建立1.172的一个数据的DBLINK(1.172中有一个用户0412)。语法如下:

create database link TEST0412 connect to nc0412 identified by nc0412 using 'orcl172';  

 

4.然后可以实现分布式查询: 

select * from tabname@test0412 where 1=1;  

 

 

可查询当前所有的dblink 


 

posted on 2016-05-05 12:11  Snowfun  阅读(2180)  评论(0)    收藏  举报