Gli Oracle Database Gateway consentono alle applicazioni client Oracle di accedere a database non Oracle. Ad esempio, Oracle SQL Developer e MySQL. Oracle Database Gateway e servizi eterogenei (integrati in Oracle) presentano l'aspetto di un unico database Oracle locale, anche se i dati potrebbero essere in Oracle, MySQL, SQL Server e così via.
Oracle Database Gateway for ODBC (DG4ODBC) integra in modo trasparente i database ODBC con Oracle. ODBC fornisce un'interfaccia uniforme tra DBMS e isola le applicazioni dal database utilizzando un middleware noto come driver ODBC per tradurre le richieste dell'applicazione in qualcosa che il database comprende. Poiché utilizza un driver ODBC per collegare Oracle al database di destinazione, DG4ODBC non è legato a un database specifico. Questa architettura flessibile consente a Oracle di coesistere con qualsiasi database per il quale è disponibile un driver ODBC.
Utilizzando DG4ODBC, puoi utilizzare immediatamente le tue applicazioni Oracle, sia di Oracle che di terze parti, per accedere alle informazioni in un database ODBC come se fosse un database Oracle. Le applicazioni non devono essere ricodificate o riconfigurate.
DG4ODBC fa parte di Oracle 11g e versioni successive, senza costi aggiuntivi, e può essere utilizzato con Oracle 10g e più tardi. Per integrare i database ODBC con le versioni precedenti di Oracle, fai riferimento al nostro tutorial HSODBC.
Poiché DG4ODBC può connettere Oracle a qualsiasi database per il quale è disponibile un driver ODBC, Oracle fa riferimento a DG4ODBC come agente di connettività generico.
È possibile utilizzare un driver ODBC Easysoft con DG4ODBC per connettere Oracle a MySQL. I passaggi in questa guida sono per MySQL e Oracle su Linux e UNIX.
- Verifica se la tua versione di DG4ODBC è a 32 o 64 bit:
cd $ORACLE_HOME/bin file dg4odbc
Se il
file
l'output del comando contiene "Eseguibile LSB a 64 bit ELF", o qualcosa di simile, DG4ODBC è a 64 bit, scarica il driver ODBC MySQL a 64 bit per la tua piattaforma.Altrimenti, scarica il driver ODBC MySQL a 32 bit per la tua piattaforma.
- Installare, concedere in licenza e testare il driver MYSQL ODBC sulla macchina in cui è installato DG4ODBC.
Per le istruzioni di installazione, vedere la documentazione del driver MySQL ODBC. Fare riferimento alla documentazione per vedere quali variabili di ambiente è necessario impostare (
LD_LIBRARY_PATH
,LIBPATH
,LD_RUN_PATH
oSHLIB_PATH
a seconda della piattaforma e del linker). - Crea un file di inizializzazione DG4ODBC. Ad esempio:
cd $ORACLE_HOME/hs/admin cp initdg4odbc.ora initmysql.ora
- Assicurati che questi parametri e valori siano presenti nel tuo file init:
HS_FDS_CONNECT_INFO = mysql_odbc_dsn HS_FDS_SHAREABLE_NAME = /usr/local/easysoft/unixODBC/lib/libodbc.so
Sostituisci mysql_odbc_dsn con il nome di un'origine dati del driver ODBC MySQL che si connette al database MySQL di destinazione.
Se il tuo server MySQL non richiedono di fornire un nome utente e una password, includere
IgnoreAuth=Yes
nelHS_FDS_CONNECT_INFO
valore del parametro. Ad esempio:HS_FDS_CONNECT_INFO = "mysql_odbc_dsn;IgnoreAuth=Yes"
- Aggiungi questa riga per aumentare la compatibilità Oracle/MySQL:
HS_FDS_QUOTE_IDENTIFIER = FALSE
- Aggiungi una voce a
$ORACLE_HOME/network/admin/listener.ora
che crea un SID_NAME per DG4ODBC. Ad esempio:SID_LIST_LISTENER = (SID_LIST = (SID_DESC= (SID_NAME=mysql) (ORACLE_HOME=oracle_home_directory) (PROGRAM=dg4odbc) (ENVS=LD_LIBRARY_PATH = /usr/local/easysoft/unixODBC/lib: /usr/local/easysoft/lib) ) )
Sostituisci directory_home_oracle con il valore di
$ORACLE_HOME
. Ad esempio,/u01/app/oracle/product/11.2.0/dbhome_1/
. - Aggiungi una voce DG4ODBC a
$ORACLE_HOME/network/admin/tnsnames.ora
che specifica il SID_NAME creato nel passaggio precedente. Ad esempio:mysql_connection= (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=oracle_host)(PORT=1521)) (CONNECT_DATA= (SID=mysql)) (HS=OK) )
- Avvia (o riavvia) Oracle Listener:
cd $ORACLE_HOME/bin ./lsnrctl stop ./lsnrctl start
- Connettiti al tuo database Oracle in SQL*Plus.
- In SQL*Plus, creare un collegamento al database per il database MySQL di destinazione. Ad esempio:
CREATE PUBLIC DATABASE LINK mysqllink CONNECT TO "dbuser" IDENTIFIED BY "dbpassword" using 'mysql_connection';
Sostituisci dbuser e dbpassword con un nome utente e una password validi per il database MySQL di destinazione.
– Oppure, se il tuo server MySQL non richiedono di fornire un nome utente e una password:
CREATE PUBLIC DATABASE LINK mysqllink USING 'mysql';