【待完善】
在复杂的系统中,有时需要从另一个数据库中读取数据,这时就可以使用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创建成功了。