日期:2014-05-17  浏览次数:20958 次

求救````关于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。