一个很奇怪的dblink 问题,高手请进.
在我们的一个局域网中.有三个数据库 mobile_test,mobile_exp,mobile
其中三个的连接字串如下:
mobile_test=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.9.18.17)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = mobile_test)
)
)
mobile_exp =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.21.16.52)(PORT = 1521))
)
(CONNECT_DATA =
(SID = bar1)
(SERVER = DEDICATED)
)
)
mobile =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.5.27.41)(PORT = 1521))
)
(CONNECT_DATA =
(SID = mobile)
(SERVER = DEDICATED)
)
)
现在的问题是:我通过建立dblink使这三个数据库能相互访问.本来按道理是三个数据彼此间都能相互访问,但是事实却不是。
mobile_test 与 mobile_exp 可以相互访问;
mobile_test 可以访问 mobile ,但mobile 不能访问 mobile_test ;
mobile_exp 可以访问 mobile ,但mobile 不能访问 mobile_exp ;
在mobile下访问mobile_exp语句如下:select * from dual@mobile_exp ;
错误: TNS: protocol adapter error
而且,我这里在 mobile_test 下建立 访问 mobile_exp 的dblink
与 mobile 下建立 访问 mobile_exp 的dblink 是一样的,是复制过去的。
create database link mobile_exp
connect to mobile_dba identified by mobile_dba
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.21.16.52)(PORT = 1521))
)
(CONNECT_DATA =
(SID = bar1)
(SERVER = DEDICATED)
)
)';
这三个数据库理论上没有什么区别,唯一的是 mobile数据库下有多个oracle_sid .
上述问题百思不得其解,请各位高手指点,不甚感激!!!!!!!!!