客户现场有三套网络ABC,现在程序所在1号应用服务器(双网卡,所在BC网络)无法连接到A网络的Oracle2号服务器,考虑到还有一台双网卡3号服务器是AB网络的,并且上面也安装了Oracle,便考虑在这台3号服务器上创建db link来使1号应用服务器上的程序可以获取到A网络的Oracle2号服务器数据。
一、创建
1、已经配置本地服务
create public database link linkname
connect to username identified by password
using 'netmanagername';
Net Manager一定要现在本地的服务名里面配置好,要不然使用db link的时候会提示ora -12512:tns;无法解析指定的连接标识符
如果本地既安装了Oracle服务端又安装了客户端,最好服务端和客户端都要配置。
如果创建全局dblink,必须使用systm或sys用户,在database前加public。
2、未配置本地服务
create database link linkname
connect to username identified by password
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP或者计算机名)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 远程Oracle数据库的ssid)
)
)';
二、使用:
查询远端数据库里的表
select * from tablename@linkname
查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成tablename@linkname
三、删除
drop public database link linkname
如果创建的不是public的db link删除的时候就不需要写public
一、创建
1、已经配置本地服务
create public database link linkname
connect to username identified by password
using 'netmanagername';
Net Manager一定要现在本地的服务名里面配置好,要不然使用db link的时候会提示ora -12512:tns;无法解析指定的连接标识符
如果本地既安装了Oracle服务端又安装了客户端,最好服务端和客户端都要配置。
如果创建全局dblink,必须使用systm或sys用户,在database前加public。
2、未配置本地服务
create database link linkname
connect to username identified by password
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP或者计算机名)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 远程Oracle数据库的ssid)
)
)';
二、使用:
查询远端数据库里的表
select * from tablename@linkname
查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成tablename@linkname
三、删除
drop public database link linkname
如果创建的不是public的db link删除的时候就不需要写public
本文介绍了如何在无法直接连接到A网络Oracle服务器的情况下,通过在AB网络的3号服务器上创建database link,实现从1号应用服务器访问Oracle2号服务器数据。详细步骤包括创建(已配置和未配置本地服务的两种情况)、使用及删除database link的方法。
546

被折叠的 条评论
为什么被折叠?



