ITKINGSOLUTION
Un'aiuto a tutti gli sviluppatori in cerca di soluzioni
Creato da blackjec il 25/08/2010Area personale
Menu
Ciclo FOR per estrarre ... » |
Mi sono imbattuto in questo problema durante la migrazione di un database oracle 11G alla versione 12C.
Questo è un problema di incompatibilità tra le vesioni di oracle G e C.
Il Dblink tra un Db 11g e 12C da il seguente messaggio di errore :
ORA-02072: distributed database network protocol mismatch
Dopo diversi tentativi durati giorni una soluzione al problema l'ho trovato e adesso vi spiego come uscirne.
- Per prima cosa è necessario installare sul server dove risiede oracle 11G, il driver odbc 11
- Creare un nuovo datasurce "prova" sotto System usando il driver Oracle11 che si collega al database oracle 12G.
- Creare sullo stesso server, nella directory oracleproductdatabase11.2.0.4hsadmin un file init.ora
ES: i nitprova.ora e al suo interno scrivere le seguenti righe, salvare e ciudere il file:
HS_FDS_CONNECT_INFO = prova
HS_FDS_TRACE_LEVEL = off
- Aggiungere al listener la parte sotto
(SID_DESC=
(SID_NAME= prova)
(ORACLE_HOME=D:oracleproductdatabase11.2.0.4) sostituire la lettera del disco
(PROGRAM=dg4odbc)
(ENVS=LD_LIBRARY_PATH = D:oracleproductdatabase11.2.0.4LIB) sostituire la lettera del disco
)
- Modificare il file tnsname.ora del serer oracle 11 aggiungendo le seguenti righe:
prova =
(DESCRIPTION=
(ADDRESS =
(PROTOCOL = TCP)
(HOST = indirizzo IP del server oracle 11)
(PORT = 1552))
(CONNECT_DATA=(SID=prova))
(HS=OK)
)
- Arrivati a questo punto bisogna riavviare il servizio listener e ricreare i dblink per farli puntare al SID prova.