lug
04

Parliamo all’Oracolo…. se ci è concesso

Una volta installato il Server Oracle, il nostro desiderio sarebbe quello di accedere ai suoi “servigi” dalle altre macchine della rete. Qualsiasi applicazione Windows che permetta l’accesso ai Db utilizza almeno una delle due modalità principali disponibili (ed a volte entrambe): ODBC e JDBC. Le sorgenti dati ODBC (chiamate DSN, Data Source Name) sono configurabili tramite l’apposita voce del Pannello di Controllo Strumenti di Amministrazione -> Origine Dati (ODBC) e richiedono la presenza di un apposito Driver per ogni tipologia di DataBase. Per i collegamenti JDBC è necessaria la disponibilità di un eseguibile Java che permetta l’accesso remoto al Db. Quindi come installare il tutto sul nostro PC remoto ?

Fino a qualche tempo fa la cosa non era affatto semplice, ed implicava il download dell’OLE Db Provider per Microsoft .NET (circa 180 Mb). Ora è invece disponibile un Oracle Client XE di soli 30 Mb che (dovrebbe) risolvere il problema. L’installer è semplicissimo, ed il Menu aggiunto anche. Tutto pronto, quindi ? Non proprio….

Fiduciosi, cominciamo a creare la nostra connessione ODBC: richiamiamo il pannello di controllo delle Sorgenti Dati, click sul pulsante Aggiungi, selezioniamo il Driver Oracle in XEClient e voilà: un bel messaggio di errore. Rapido giro in Internet, e soluzione del problema: il Driver prevede la presenza della libreria MFC71.DLL, che l’eseguibile di Oracle “dimentica” di installare. Se siete fortunati, la libreria potrebbe già essere presente sul sistema (magari caricata da un’altra applicazione ed in questo caso niente messaggio di errore); se la Dea bendata vi è avversa, il file può essere scaricato facilmente da Internet dopo una piccola ricerca con Google, e trasferito in c:\windows\system32\. Ok, procediamo….

Dunque, assegnamo un nome alla Sorgente e scegliamo il TNS Service Name… Solo che purtroppo la casella a discesa è vuota: perchè ? Perchè il Client di Oracle non installa alcun servizio TNS e (quel che è peggio) nemmeno uno straccio di programma per crearlo. Quindi è nostro compito scrivere il file giusto al posto giusto: ma qual’è il file, e soprattutto, qual’è il posto? Il File (di testo semplice) si chiama tnsnames.ora ed il posto è la cartella C:\XEClient\network\ADMIN che il Client non crea, e quindi dovete pensarci voi. Comunque vi riporto un esempio con due servizi configurati:

Qui è possibile scaricare il file. La prima riga contiene il nome del servizio TNS (a vostro piacere); gli altri parametri riguardano il protocollo (TCP), l’host che esegue il server (nome o indirizzo IP), la porta (standard 1521). La voce SERVICE_NAME indica il nome del Servizio sul Server: XE per Oracle XE, ORCL per la versione Standard 10g. Basta modificare i parametri secondo le nostre esigenze con un editor di testo e salvare il file come tnsnames.ora nella cartella giusta. A questo punto il gioco è fatto: basta fornire delle credenziali esistenti (nome utente e password) e la nostra connessione va che è una meraviglia. Quindi siamo pronti ad accedere ai dati da ogni applicazione che usa i Driver ODBC (Ms Access ed OpenOffice.org, tanto per cominciare…).

lug
01

L’Oracolo personale

Oracle (www.oracle.com) è, probabilmente, il Server di Database più utilizzato al mondo. Fino a qualche tempo fa, installare un Server Oracle era una faccenda costosa (le licenze non sono proprio a buon mercato e serve una macchina ben configurata) e complicata (la gestione non è alla portata di utenti inesperti). Ma in un mercato in cui sono ormai disponibili affidabili soluzioni Open Source (PostgreSql, MySql) e prodotti di nomi famosi comunque disponibili gratuitamente (Microsoft e IBM), certo Oracle non poteva stare a guardare. Così da un paio di mesi ha reso disponibile per il download Oracle Database 10g Express Edition, una versione “ridotta” del 10g classico. Il prodotto è disponibile per Linux e per Windows, ed è utilizzabile e distribuibile gratuitamente anche con applicazioni di terze parti.

Oracle XE è disponibile in due versioni: una chiamata “Western European” senza il supporto Unicode e con l’interfaccia Web solo in inglese, l’altra “Universal” comprensiva di Unicode e di interfaccia multilingue (tra cui anche l’italiano). Ho deciso di fare qualche test su una macchina di classe media per verificare innanzi tutto se è davvero semplice e rapido attivare un Server Oracle utilizzando la versione “Europea”.

Installazione Windows

L’installer (OracleXE.exe) in pratica non richiede nessun intervento da parte dell’operatore (a parte la scelta della password di amministrazione) ed in pochi minuti abbiamo un Oracle 10g perfettamente funzionante. L’interfaccia di gestione è richiamabile da qualsiasi browser indicando l’indirizzo localhost:8080/apex. Per il login amministrativo si indica come utente system e come password quella indicata in precedenza.

La prima cosa da fare (se le politiche di sicurezza lo consentono) è quella di abilitare le sessioni di amministrazione anche da remoto con l’opzione Admin -> Manage HTTP Access: in questo modo sarà possibile gestire il server da qualsiasi PC della rete. Sul Server viene anche installato il Driver ODBC, e qualche test superficiale eseguito con Ms Access su Tabelle di grandezza media (40 / 50 mila righe) ha prodotto tempi di risposta buoni. Il menu di Oracle XE è essenziale e permette di eseguire facilmente tutte le operazioni più importanti, compresi la copia ed il ripristino del Db:

Dal punto di vista tecnico, Oracle fa partire in automatico due servizi di sistema: OracleServiceXE e OracleXETNSListener; si possono configurare i servizi nel pannello di controllo (Strumenti di Amministrazione -> Servizi) in modo che si avviino solo su richiesta (con la voce di Menu “Avvia Database”), se si desidera usare il server in modo sporadico. Oltre alla interfaccia web, per l’amministrazione è possibile scaricare un tool (anch’esso gratuito) assai più potente e comodo: Oracle SQL Developer.

questo tool prevede l’utilizzo del JAVA SDK, e per evitare problemi è opportuno eseguire il download della versione “full” che include JAVA. Bene, ora che abbiamo un Server Oracle perfettamente funzionante non ci resta che iniziare ad usarlo, ma questa, come vedremo, è tutta un’altra storia….