【待完善】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创建成功了。