【待完善】Oracle中使用Dblink跨数据库操作

【待完善】

在复杂的系统中,有时需要从另一个数据库中读取数据,这时就可以使用Oracle的Dblink进行跨数据库的操作。

通过DBLINK进行跨数据库操作的步骤一般如下:

1.配置tnsnames.ora文件
2.创建database link
3.在远程数据库上创建测试表
4.在本地数据库中操作远程数据库表,以测试是否成功

下面进行详细介绍。

注:本地数据库IP为192.9.207.13;远程数据库IP为192.9.207.28

一、配置tnsnames.ora文件

在本地机器的数据库安装文件中,找到$ORACLE_HOME/NETWORK/ADMIN/tnsnames.ora文件(例如我的ORACLE_HOME为:E:\oracle\product\10.2.0\db_1)。

在末尾添加连接到远程数据库所需的信息,如下:

 1 TO_CHENYR =  #“CHENYR"表示此配置的名字
 3   (
 5   DESCRIPTION =
 6     (  #HOST表示远程主机的IP地址,PORT表示远程主机数据库的端口号
 8        ADDRESS_LIST = (  ADDRESS = (PROTOCOL = TCP) (HOST = 192.9.207.28) (PORT = 1521)   )
10     )
12     (
14         CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = chanshuyi) #SERVER表示连接数据库的方式   #SERVICE_NAME表示连接到的数据库实例名。
16     )
18   )

其中第1行的“MEDIADBLINK"表示此配置的名字(记住就行了,下面第二步要用到)

第8行的HOST表示远程主机的IP地址,PORT表示远程主机数据库的端口号

第14行的SERVICE_NAME表示连接到的数据库实例名。

二.创建Database Link

登录到本地机器的数据库,创建database link,这里需要使用sysdba的角色登录,进行权限分配方可创建

 执行如下sql语句:

1 create public database link DBLINK_TO_CHENYR
2 connect to sys identified by orcl
3 using 'TO_CHENYR';

第1行中的"DBLINK_TO_CHENYR"表示创建的Database Link的名字

第2行中的"sys"表示连接数据库的用户名,"orcl"表示连接数据库的密码

第3行行中的”TO_CHENYR"表示配置远程数据库信息的配置名字,即第一步在tnsnames.ora文件中创建的配置的名字。

创建完后使用,检查是否成功:

select owner,object_name from dba_objects 
where object_type='DATABASE LINK';

三.在远程数据库上创建测试表

在远程数据库上创建一个test表,如下:

 

(待补充)

四.在本地数据库中操作远程数据库表

1 select * from test@MEDIADB

这里的MEDIADB就是第2步中用SQL语句创建的Database Link名字,这里是:MEDIADB。

如果能够读取出数据,那说明DBLINK创建成功了。

posted @ 2014-06-23 16:36  陈树义  阅读(1289)  评论(0编辑  收藏  举报