Oracle Instant Client

Oracle Instant Client consente di connettersi ad un database Oracle senza richiedere un'installazione completa di SQL*Net.
Utilizzare Oracle Instant Client e' il modo piu' facile per configurare l'accesso all'RDBMS Oracle per diversi linguaggi di programmazioni (eg. PHP, Perl, ...), dalle applicazioni (eg. Pro*C, OCI), con i diversi driver (eg. JDBC, ODBC) e con gli stessi tool Oracle (eg. SQL*Plus).

Questo documento presenta gli aspetti principali di Oracle Instant Client: Installazione, Utilizzo, Architettura, e per finire un po' di Storia, ...
La versione di riferimento utilizzata in questo documento e' quella piu' recente di Oracle Instant Client [NdE 12c].

Installazione

Installare Oracle Instant Client e' molto facile perche' si tratta semplicemente di una serie di file contenuti in una directory. Per MS-Windows si utilizza un file .zip mentre sulle principali distribuzioni Linux (eg. RedHat, Fedora, CentOS, ...) sono disponibili file .rpm.

Una volta effettuato il download dal sito ufficiale basta lanciare il comando [NdE esempio per linux a 64bit]:

# yum install oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm

Gia' fatto! Ora si puo' utilizzare...

Utilizzo

Per utilizzare Oracle Instant Client e' sufficiente la sola impostazione di una variabile d'ambiente:

LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib export LD_LIBRARY_PATH

I passi successivi dipendono dal linguaggio di programmazione/applicazione/tool utilizzato e sono analoghi a quelli richiesti per accedere via SQL*Net.

A differenza dell'SQL*Net, che richiede l'impostazione delle variabili ORACLE_HOME o TNS_ADMIN per individuare i file tnsnames.ora e sqlnet.ora, Oracle Instant Client utilizza una stringa di connessione diretta:

//host:[porta][/servizio]

La porta e' tipicamente la 1521 mentre il servizio corrisponde al SID dell'istanza Oracle.

Un'ultima nota... ma importante: Instant Client e' completamente gratuito e di libero utilizzo.

Architettura

Oracle Instant Client installa le librerie Client per l'accesso alla base dati Oracle. Instant Client puo' essere utilizzato per applicazioni OCI, OCCI, Pro*C, JDBC e ODBC senza installare un Oracle Client completo. Inoltre Instant Client supporta il tool SQL*Plus. Oracle Instant Client contiene anche i driver JDBC piu' recenti. Poiche' la maggioranza dei driver utilizzati dai piu' recenti linguaggi di programmazione sono applicazioni OCI, le librerie di Instant Client sono utilizzabili anche da Perl, PHP, Python, ...

Dal punto di vista architetturale non vi e' alcuna differenza tra una connessione SQL*Net ed una connessione Instant Client. Con Oracle ogni accesso al database sul server viene creata una sessione, tipicamente implementata come processo oracle: Architettura Oracle RDBMS

Dal punto di vista dell'interoperabilita' delle versioni Oracle tra client e server vale la stessa matrice di compatibilita' di SQL*Net.

Alcune funzionalita' specifiche di SQL*Net non sono disponibili con Instant Client. Ma si tratta di funzionalita' verticali necessarie con configurazioni particolari. In questi casi e' necessario utilizzare un'installazione completa di SQL*Net.

Storia

Oracle e' stato un pioniere tra i database relazionali. Oracle e' stato il primo a realizzare l'accesso in Client/Server ai dati. L'SQL*Net e' disponibile dal 1985. La versione 2 di SQL*Net, disponibile dalla versione Oracle 7 nel 1992 ha introdotto ulteriori funzionalita' tra cui l'implementazione completa del Two Phase Commit (2PC) per la gestione delle transazioni distribuite.

Oracle distribuisce da tempo JDBC driver per l'accesso alla base dati [NdE 1996].

Oracle Instant Client e' disponibile dalla versione 10g di Oracle [NdE 2004] ed ha rappresentato un notevole vantaggio per la distribuzione dei driver perche', a differenza del Client SQL*Net, ha una licenza d'uso molto libera.


Titolo: Oracle Instant Client
Livello: Medio (2/5)
Data: 14 Luglio 2014
Versione: 1.0.1 - 14 Luglio 2015
Autore: mail [AT] meo.bogliolo.name