17,382
社区成员




-- 在本地创建两个服务名:
-- 即修改 tnsnames.ora 文件!
-- (此文件一般在:$ORACLE_HOME/network/admin 目录下,
-- 如:D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora)
-- 类似代码如下:
# 我本地的服务名
LYMORA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = luoyoumou)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = lymora)
)
)
# 远程机器的服务名:
SZTYORALF7 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.7)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = sztyora)
)
)
# 192.168.5.7 是远程机器的 IP 地址
# sztyora 是远程服务器的 Oracle SID
# SZTYORALF7 是你创建的服务名!
-----------------------------------------------------------------------
# 然后在你本地机器的相应用户(你想哪个用户连接远程机器,就是哪个用户)
# 下创建一个 DBLink (数据库链接),如:
sqlplus /nolog
conn / as sysdba
sys@LYMORA> grant create database link to scott;
授权成功。
已用时间: 00: 00: 00.07
-- 此时创建远程数据库链接有两种方法:
-- *1) 不依赖你本机器已经新建的远程服务名 ( sztyoralf7 )
scott@LYMORA> create database link sztylf7
2 CONNECT TO hll IDENTIFIED BY szty2009hll
3 using '(DESCRIPTION =
4 (ADDRESS_LIST =
5 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.7)(PORT = 1521))
6 )
7 (CONNECT_DATA =
8 (SERVICE_NAME = sztyora)
9 )
10 )';
数据库链接已创建。
已用时间: 00: 00: 00.15
# *1) sztylf7 是新建的链接名;
# *2) hll 是远程机器的一个用户;
# *3) szty2009hll 是远程机器 hll 用户的密码;
# *4) 192.168.5.7 是远程机器的IP;
# *5) 1521 是远程机器的 Oracle 端口号;
# *6) sztyora 是远程机器的 ORACLE SID;
scott@LYMORA> select count(*) from city@sztylf7;
COUNT(*)
----------
397
已选择 1 行。
已用时间: 00: 00: 05.65
-- *2) 依赖你本机器已经新建的远程服务名 ( sztyoralf7 )
scott@LYMORA> create database link sztylf7b connect to hll
2 identified by szty2009hll using 'SZTYORALF7';
数据库链接已创建。
已用时间: 00: 00: 00.00
scott@LYMORA> select count(*) from city@sztylf7b;
COUNT(*)
----------
397
已选择 1 行。
已用时间: 00: 00: 04.48
-- 以上创建的都是私有链接(没有 public 关键字)
-- 若要创建公共链接:
scott@LYMORA> create public database link sztylf7b connect to hll
2 identified by szty2009hll using 'SZTYORALF7';
-- 此时你本地数据库的其他用户可以用此链接连接到远程数据库!
-- 删除链接:
drop database link sztylf7b; -- 删除私有链接
drop public database link sztylf7b; -- 删除公共链接