当前数据库的GLOBAL_NAMES参数设置为 TRUE,使用DATABASE LINK 时,DATABASE LINK的名称必须与被连接库的 GLOBAL_NAME一致。 而要建多个 DBLINK到同一个库,则DBLINK的命名规则可以为:被连接库 GLOBAL_NAME@标识。
例如:
A数据库的 global_name和global_names
SQL> show parameter global_names;
NAME TYPE VALUE
------------------------------------ ----------- -----
global_names boolean TRUE
|
B数据库的 global_name(B 数据库的 GLOBAL_NAMES参数不影响)
SQL> select * from global_name;
GLOBAL_NAME
------------------------------------
KYY.REGRESS.RDBMS.DEV.US.ORACLE.COM
|
A数据库创建 DBLINK到B 数据库
CREATE DATABASE LINK "KYY.REGRESS.RDBMS.DEV.US.ORACLE.COM @dp_taishan "
CONNECT TO DP_TAISHAN
IDENTIFIED BY a1b2c3
USING 'kyy';
CREATE DATABASE LINK "KYY.REGRESS.RDBMS.DEV.US.ORACLE.COM @dp_pk "
CONNECT TO DP_PK
IDENTIFIED BY a1b2c3
USING 'kyy';
CREATE DATABASE LINK "KYY.REGRESS.RDBMS.DEV.US.ORACLE.COM @dp_sharedb "
CONNECT TO DP_SHAREDB
IDENTIFIED BY a1b2c3
USING 'kyy';
|
另外,当前 SCHEMA不能给其他SCHEMA 创建链接,因为数据库 DBLINK其名称可以含有'.'即点号。比如 A用户想给B 用户创建一个 DBLINK名叫LINKB ,CREATE DATABASE LINK B.LINKB ......, 这个语句将会实际创建一个 A用户下的名为B.LINKB的数据库链接。