J'essaie de créer un lien de base de données entre ces deux DBS.
Ma DB locale est 11.2.0.3.
SQL> select * from global_name;
GLOBAL_NAME
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
MYDB.DOMAINNAME
SQL> select name, value from v$parameter where name in ('db_name', 'db_domain', 'global_names');
NAME VALUE
-------------------- ----------------------------------------
db_domain
global_names TRUE
db_name mydb
La DB distante est 11.2.0.2 configurée comme suit :
SQL> select * from global_name;
GLOBAL_NAME
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
myremotedb
SQL> select name, value from v$parameter where name in ('db_name', 'db_domain', 'global_names');
NAME VALUE
-------------------- ----------
db_domain
global_names FALSE
db_name myremotedb
Je souhaite créer un Dblink dans la base de données locale à la base de données distante.
J'ai My TnsNames (Machine de MyDB) configuré comme suit :
REMOTE-DATABASE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = 192.168.1.2)(Port = 1521))
)
(CONNECT_DATA =
(SID = myremotedb)
)
)
Ensuite, lorsque j'essaie de créer un lien de base de données dans ma base de données locale, car Global_Names Paramètre est défini sur True, Oracle ajoute le nom de domaine local sur le nom de la liaison de base de données.
SQL> create database link myremotedb@myuser connect to myuser identified by mypasswd using 'REMOTE-DATABASE';
Enlace con la base de datos creado.
SQL> select db_link from user_db_links;
DB_LINK
------------------------------
MYREMOTEDB.DOMAINNAME@MYUSER
et si j'essaie de l'utiliser, Ça échoue
SQL> select * from dual@MYREMOTEDB@MYUSER;
select * from dual@MYREMOTEDB@MYUSER
*
ERROR en línea 1:
ORA-02085: database link MYREMOTEDB.DOMAINNAME@MYUSER connects to MYREMOTEDB
SQL> select * from [email protected]@MYUSER;
select * from [email protected]@MYUSER
*
ERROR en línea 1:
ORA-02085: database link MYREMOTEDB.DOMAINNAME@MYUSER connects to MYREMOTEDB
Comment créer ce lien de base de données dans ce scénario?
La télécommande n'a pas de db_domain. Comment puis-je forcer Oracle à créer un Dblink sans nom de domaine?
Salutations!
Simplement au jeu de dB local
alter system set global_Names = FALSE;
Ensuite, votre lien DB fonctionne.
Pouvez-vous nous montrer le contenu de votre fichier sqlnet.ora fichier?
[.____] le nom de domaine doit être répertorié ici :
NAMES.DEFAULT_DOMAIN = domain.com.xxx
Si vous n'en avez pas un, créez un nouveau fichier sqlnet.ora à l'aide de l'outil NETCA. - Après avoir créé ce fichier l'éditez et ajoutez l'entrée avec votre nom de domaine!
Excellent ... oui ça marche après global_name=FALSE
.
Je teste le téléchargement du fichier de vidage de FEDPDP de Onprim vers AWS RDS ..
**** SCRIPT STARTED Session: NKIM3@LIMSDEV3(3) 4/1/2019 4:18:41 PM ****
BEGIN
DBMS_FILE_TRANSFER.PUT_FILE(
source_directory_object => 'DATA_PUMP_DIR',
source_file_name => 'expdp_msrt_md_201904011535_file01.dmp',
destination_directory_object => 'DATA_PUMP_DIR',
destination_file_name => 'expdp_msrt_md_201904011535_file01.dmp',
destination_database => 'to_rds2'
);
END;
==>
PL/SQL block executed
--------------------------------------------------------------------------------
**** SCRIPT ENDED 4/1/2019 4:19:48 PM ****
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^