求救````关于database link 的问题```
在tnsnames.ora中配置了数据库的服务器1、2的服务器名:
服务器1:
dicc=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.111)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dicc)
)
)
服务器2:
orcl=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.112)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
在服务器2中建立的database link 如下:
在oracle develop 的database link中建立的连接
database link
owner:随便起个名字(user1)
name:TEST_LINK_1 --数据库连接的的名称
在勾选public/shared时 只能选shared 当选public时,创建不了连接
connect to
username:shi ---数据库1中的帐户名
password:*** ---数据库1中的帐户对应的密码
database:dicc ---数据库1中的服务名
authenticated by
username:xyis --数据库2中的帐户名
password:** --数据库2中的帐户对应的密码
创建好后它的sql语句为:create database link test_link_1
connect to shi
using 'dicc ';
当我用select * from usr_db_links时 也能查到我建立的数据库连接~
但当我想在数据库2中查询数据库1中的表(T_SHI_1)信息时``
select table_name,tablespace_name from T_SHI_1@TEST_LINK_1;
--报错:
ORA-12154: TNS: could not resolve the connect identifier specified
到底错在哪啊?该怎么改啊?
------解决方案--------------------设置服务器2中 global_names=false 试一下]
------解决方案--------------------用数据库2的用户名和密码登陆后,在SQLplus 里SQL>alter system set global_names=false;
------解决方案--------------------如果在服务器2上建立dblink 要连接到 dicc 数据库,那么你的服务器2上必须有dicc 的连接串。
dicc=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.111)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dicc)
)
)
------解决方案--------------------mark
------解决方案--------------------是的,服务器2的tnsnames.ora中要有dicc。