@/u01/dba/dbs/dblinks.sql
Ensure network name is resolvable...
ping target
where target is the hostname (from DNS or /etc/hosts) of the target server.Ensure stanzas for target databases are in tnsnames.ora. Check the tnsnames.ora config is resolvable...
tnsping TNS_ALIAS
sqlplus / as sysdba
CREATE PUBLIC DATABASE LINK &LINK USING '&TNS_ALIAS';
CONNECT AS &USER1
CREATE DATABASE LINK "&LINK" CONNECT TO &TARGETUSER1 IDENTIFIED BY "&TARGETPWD1";
CONNECT AS &USER2
CREATE DATABASE LINK "&LINK" CONNECT TO &TARGETUSER2 IDENTIFIED BY "&TARGETPWD2";
Since 11gR2, it is possible to change the password in a database link without dropping and recreating it...
ALTER DATABASE LINK &dblinkname CONNECT TO &username IDENTIFIED BY &newpassword;
SELECT UPPER(VALUE)
FROM V$SYSTEM_PARAMETER
WHERE UPPER(NAME)='GLOBAL_NAMES';
Multi-tenant version...
SELECT DISTINCT UPPER(V.VALUE),
DECODE (V.CON_ID,0,(SELECT NAME FROM V$DATABASE),
1,(SELECT NAME FROM V$DATABASE),
(SELECT NAME FROM V$PDBS B WHERE V.CON_ID = B.CON_ID))
FROM V$SYSTEM_PARAMETER V
WHERE UPPER(NAME) = 'GLOBAL_NAMES';
ALTER SYSTEM SET GLOBAL_NAMES = TRUE SCOPE = SPFILE;