dblink主要是用来做跨库访问的,想要通过A服务器上的数据库访问B服务器上的数据库,创建DBLINK就可以实现。
实例:A服务器数据库去访问B服务器数据库。
在A服务器上操作
telnet ip 端口
确保能通
cat $ORACLE_HOME/network/admin/tnsname.ora
XXUAT_BALANCE=
(DESCRIPTION= (ADDRESS_LIST= (LOAD_BALANCE=YES) (FAILOVER=YES) (ADDRESS=(PROTOCOL=tcp)(HOST=10.0.XX.12)(PORT=1601)) (ADDRESS=(PROTOCOL=tcp)(HOST=10.0.XX.13)(PORT=1601)) ) (CONNECT_DATA= (SERVICE_NAME=XXUAT) )
注意:集群数据库tns文件找BALANCE、因为BALANCE记录的是两个节点VIP的ip,尽量做到规范。
找到对应的参数HOST=10.0.XX.12、10.0.XX.13 SERVICE_NAME=XXUAT
CREATE DATABASE LINK XXUATTOXXXUAT.CRC.COM.CN
CONNECT TO APPS IDENTIFIED BY "passwd"
USING'(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.XX.12)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.XX.13)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = XXUAT)
)
)';
参数说明:
username:需要访问数据用户名 如APPS用户
password APPS用户密码,
HOST:visist_IP 虚拟ip
PORT:数据库端口
SERVICE_NAME :db_name数据库名称
– APPS用户查询DBLINK
set lines 132 pages 50000
select owner,object_name from dba_objects where object_type='DATABASE LINK';
查看是否有上面创建的DBLINK
XXUATTOXXXUAT.CRC.COM.CN
SELECT * FROM dual@XXUATTOXXXUAT.CRC.COM.CN ;
显示为以下时则DBLINK创建成功
D
-
X
删除public类型的dblink
DROP PUBLIC DATABASE LINK dblink_name;
删除private类型的dblink,只有创建者自己能删
DROP DATABASE LINK dblink_name;
查询dblink
select owner,object_name from dba_objects where object_type='DATABASE LINK';