两台不同的数据库服务器,从一台数据库服务器的一个用户读取另一台数据库服务器下的某个用户的数据,这个时候可以使用dblink。 51Testing软件测试网|(D@S5o\_#L!z.I
例如:数据库服务器A,数据库服务器B,数据库客户端C;通过客户端C连到A,在A上操作访问B。
3l-M
W2m2`&mo[0 51Testing软件测试网+@a9LQt.Wl'J;u
1、在数据库客户端C的tnsnames中配置数据库服务器A的服务51Testing软件测试网6B@(@
A:E1S2[C
3QFy_r$B6{0 LMISDX_LOCAL=51Testing软件测试网^ zr&ihH#`1d6r
(DEscrīptION =51Testing软件测试网*M0b%uql.i?8S
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT = 1521))
eIg0gQ0 (CONNECT_DATA =51Testing软件测试网taK?p3Pao
(SERVER = DEDICATED)51Testing软件测试网1|1Z2\7KA1P_{Ez
(SERVICE_NAME = LMISdx)
q)TKWg,h&d0 )51Testing软件测试网9ZuN3n1h$k%mt
)51Testing软件测试网R9v(}%zHW'W`q
51Testing软件测试网G{m&M/x}7~}
~
2、这样就可以通过客户端访问到数据库A的用户51Testing软件测试网t/Q'o5`3Cf}*[T1u
Y6J
51Testing软件测试网"V@@(C*}+omN
3、在数据库服务器A的tnsnames中配置数据库服务器B的服务51Testing软件测试网*f7bg7G*l!p&eS3R
51Testing软件测试网3h;E(| Ab
LMISSD=
,{ u aYM9k3e-g\M$K0 (DEscrīptION =51Testing软件测试网
Q NN
a1m$_4N
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.123)(PORT = 1521))
_yH9K P B.Q1h-M0 (CONNECT_DATA =51Testing软件测试网*NmBQt{&Ix
Y
(SERVER = DEDICATED)
$b&I"z{8u0 (SERVICE_NAME = LMIS)
.^#Z%[(y_5C0 )51Testing软件测试网h}$C;[8gY7n
)51Testing软件测试网.^9]Pz`!B
a5n!C7~0A04.通过客户端C访问到数据库A的用户,在A上创建数据库链接
n u Yj4_!M+V0 51Testing软件测试网g#MQEPd)gO2w3pB
8V1onX
Wr0 51Testing软件测试网*wh1?gNRbe3S:D
-- Create database link
O6C.n2{8`9Xc ?&G0createpublicdatabaselinkLMIS_SDTEST51Testing软件测试网 @biCT$? d%OS
connecttoLMIS_SDTESTidentifiedby***
J(lUkk F6@%WP#?0 using'LMISSD';51Testing软件测试网,EA
hX1wjV*O
51Testing软件测试网 s i'Y3G9g4k,A,`._b
Create DATABASE LINK数据库链接名CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘本地配置的数据的实例名’;51Testing软件测试网5[d0iH%ab*o
51Testing软件测试网T@5{s&^%}*IG&_'l
5、查询远端数据库里的表(通过客户端C登陆到数据库服务器A访问数据库B)
|6\1nn0O
w_051Testing软件测试网-y,i!Vk"U:]
Select …… FROM 表名@数据库链接名;51Testing软件测试网4m7X4zN]R5^
SELECT*FROMSPKFK@LMIS_SDTEST
i$`/Q ~'P0
R@K0yD8N|0 注意:创建是很简单,但是在使用中后台却出现锁,查看这个锁的方法可以去console中看到或者查询数据库。每次使用dblink查询的时候,均会与远程数据库创建一个连接,dblink应该不会自动释放这个连接,如果是大量使用dblink查询,会造成web项目的连接数不够,导致系统无法正常运行,导致系统无正常运行。51Testing软件测试网;ZpI!m}F:{gs(g#K