物理上存放于网络的多个ORACLE数据库,逻辑上可以看成一个单一的大型数据库,用户可以通过网络对异地数据库中的数据进行存取,而服务器之间的协同处理对于工作站用户及应用程序而言是完全透明的,开发人员无需关心网络的链接细节、数据在网络节点中的具体分布情况和服务器间的协调工作过程。
从一个oracleA服务器上查找一个oracleB服务器上的数据的时候,我们需要用到dblink这种技术。下面是我的一些学习心得。
第一步:如果在A服务器上访问服务器B上的内容,就必须要在tnsname.ora里面配置好连接字符串,也就是我们要访问到的服务器B的字符串,例子如下:
test =(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 134.64.103.171)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ahjh )
(SERVER = DEDICATED)
)
)
配置好之后我们就可以在下面的例子里面用到:
CREATE [PUBLIC] DATABASE LINK link
CONNECT TO username IDENTIFIED BY password
USING ‘test’
如果我们不在服务器A上配置这个字符串的话,也可以在dblink创建的时候直接加上,例如:
create public database link APP_BENGBO_INAS
connect to INAS_552 identified by INAS_5522009
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 134.64.103.171)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ahjh )
(SERVER = DEDICATED)
)
)';
这样有很大的直观性,不过也会加大工作的重复量。
第二步:建立dblink的链接,语法如下:
CREATE [PUBLIC] DATABASE LINK APP_BENGBO_INAS
CONNECT TO username IDENTIFIED BY password
USING ‘connectstring’
link就是我们创建的链接名,当我们在服务器A上查询服务器b的时候就可以用到例如:
select * from ews@APP_BENGBO_INAS where receive_time>sysdate-1/24
下面是一些参考的文章:
http://liumanyun.blog.hexun.com/5963987_d.html ps很详细 当有点乱
http://www.51testing.com/?uid-194762-action-viewspace-itemid-90513 ps 讲的很好 很清晰。