Oracle同构数据库访问(dblink):
测试环境: Microsoft Windows Server 2003 R2,版本Oracle 10G。
数据库A:
IP:192.yy.xx.76,SID 是Analysis,用户名rpt,密码jsyfrpt.
数据库B:
IP:192.yy.xx.77,SID 是jztgos_center,用户名Center,密码center.
测试条件:通过A数据库查询B数据库的表内容。
(建立环境时,要注意关闭两台计算机上的Windows的防火墙,否则,会出现能ping通,但Oracle连接不通的情况。)
准备工作:
1、如何返回数据库的GLOBAL_NAME?
执行SELECT * FROM GLOBAL_NAME;
数据库A的GLOBAL_NAME为ANALYSIS.REGRESS.RDBMS.DEV.US.ORACLE.COM
数据库B的GLOBAL_NAME为JZTGOS_C.REGRESS.RDBMS.DEV.US.ORACLE.COM
2、如何查看Global_name参数是true还是False?
执行:SQL> show parameter global_name;
该参数为true时,你在本地建立的DBLINK的名称必须和远程的Global_name一致才行。
3、查看远程数据徊是否支持高级复制功能。
通过查看v$option视图,如果其中Advanced replication为TRUE,则支持高级复制功能;否则不支持。
执行语句为:select * from v$option;
也可以执行select * from v$option where PARAMETER='Advanced replication'语句,如何返回值为True,那么就是支持,否则就是不支持。在两个数据库中都是检查是否支持才行。
建立步骤:
1、 在数据库A所在服务器上,建立一个用于链接数据库B的服务。
JZTGOS_C =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.yy.xx.77)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = jztgos_center)
)
)
2、 创建dblink
CREATE DATABASE LINK JZTGOS CONNECT TO Center IDENTIFIED BY center USING 'JZTGOS_c';
3、 测试
SELECT SYSDATE FROM dual@JZTGOS;
返回时间值则表示连接成功。