软件环境: 1、windows nt4.0+oracle 8.0.4 2、oracle安装路径为:c:\orant 3、服务器a、服务器b,均装有nt 4.0中文版 实现方法: 1. 假设a地址192.1.1.1,b地址192.1.1.2 2. a、b上配置好tcp/ip,互相ping通。 3. 配置init.ora文件,若global_name = true的话,database link 的名字必须同远程机的实例名相同, 为简便起见,请将global_name 设为 false。 4. 在服务器上配置tnsnames.ora,将remote机器的地址(ip)信息加入本地的tnsnames.ora a服务器: tnsa_b = (description = (address_list = (address = (community = tcp.world) (protocol = tcp) (host = 192.1.1.2) (port = 1521) ) ) (connect_data = (sid = orcl) ) ) b服务器: tnsb_a = (description = (address_list = (address = (community = tcp.world) (protocol = tcp) (host = 192.1.1.1) (port = 1521) ) ) (connect_data = (sid = orcl) ) ) 5. 在 sql*plus 或其它工具中创建数据库链接 a服务器:create public database link a_to_b connect to tmp identified by tmp using ''tnsa_b''; b服务器:create public database link b_to_a connect to tmp identified by tmp using ''tnsb_a''; 说明: tmp是一个临时用户,a服务器、b服务器上均有,它的作用是提供链接的目的地, 假如: b服务器上有user1、user2、tmp三个用户,user1和user2把他们想要对外公开的表的权限授给tmp用户, 那么,所有能通过database link连接到tmp用户上的人就可以直接访问user1、user2上的已授权表了。 6. 建立database link以后,请用这种格式select * from table_name@database_link_name 的方式访问 如:在a服务器上想访问b服务器上user1用户table1表的内容(a到b的连接为a_to_b),则 sql> select * from table1@a_to_b; 7. 如果oracle版本为7.3,则数据库联接写法如下: a服务器:create public database link a_to_b connect to tmp identified by tmp using ''t:192.1.1.2:orcl''; b服务器:create public database link b_to_a connect to tmp identified by tmp using ''t:192.1.1.1:orcl''; |