Informix e' un database relazionale molto
diffuso in ambiente Unix.
Informix vanta una diffusione notevole
(spesso viene distribuito con applicazioni), una grande numero di terze parti
e di clienti che lo conoscono approfonditamente ed una presenza sul mercato
pluriennale.
In questo breve documento sono riportate alcune indicazioni utili alla gestione
di Informix SE su Linux.
SE sta per Standard Engine: uno dei due "motori" dell'RDBMS Informix,
mentre Linux e', ovviamente, un sistema operativo Unix distribuito in
forma gratuita.
Naturalmente alcune informazioni, mutatis mutandis,
possono essere utilizzate anche su altri ambienti/prodotti.
In qualche caso, per chiarire le funzionalita' fornite dal prodotto,
vengono riportati i corrispondenti comandi di altri RDBMS.
Gli argomenti sono stati raggruppati per argomento:
Installazione L'installazione di Informix
e' piuttosto semplice e si limita al settaggio di alcuni
veriabili di ambiente (INFORMIXDIR, PATH) ed ad alcuni eventuali parametri.
I passi per una corretta installazione debbono essere eseguiti
come utente root e sono i seguenti:
A questo punto l'ambiente e' installato.
Configurazione La configurazione di Informix
rispetto alla sua installazione... e' ancora piu' semplice!
Come utente informix:
A questo punto l'ambiente e' configurato.
Per provare l'accesso alla base dati si puo' utilizzare il comando
dbaccess.
La stessa, semplice, configurazione deve essere effettuata per ogni utente
debba accedere ad Informix.
Configurazione Informix Net
La configurazione del file sqlhosts consente
l'accesso a basi dati Informix presenti su altri sistemi
e la definizione di differenti modalita' di connessione.
I parametri definiti nel file sqlhosts sono:
Struttura directory
La struttura delle directory di Informix e' molto semplice:
Struttura dase dati
La struttura del database con Informix SE e' molto semplice.
Per ogni dase dati creata
viene generata una directory con nome db_name.dbs
all'interno della quale sono presenti due file per ogni tabella.
Struttura processi
La struttura delle directory di Informix e' molto semplice.
Avevate forse dei dubbi?!
Nel caso di utilizzo in remoto, sul server deve essere
presente il processo sqlexecd che generera' un sqlexec
per ogni connessione utente.
I processi utente invece gireranno normalmente sul sistema client
e sarrano connessi tramite socket.
Dizionario dati Il dizionario dati o System Catalog,
come preferisce Informix, contiene tabelle di sistema che riportano tutte le
informazioni su tutti gli oggetti presenti nella base dati. Le tabelle del Data Dictionary sono una
trentina ed hanno sempre il prefisso SYS (eg. SYSTABLES, SYSCOLUMNS, SYSTRIGGERS,
SYSUSERS, SYSVIEWS). Naturalmente le tabelle del Data Dictionary
non debbono essere modificate manualmente poiche' sono mantenute automaticamente
da Informix. L'ottimizzatore Informix utilizza un ottimizzatore cost-based
per la valutazione del percorso d'accesso da utilizzare nell'esecuzione delgi
statement SQL. Per altro l'ottimizzatore di Informix e' utilizzato da molti
anni e ha raggiunto un notevole grado di sofisticazione e di robustezza. Per farsi riportare il piano di esecuzione
di uno statemente e' sufficiente utilizzare il SET EXPLAIN. Gli ottimizzatori cost-based utilizzano
le dimensioni delle tabelle per determinare il percorso ottimale.
Utilizzo
L'utilizzo di Informix e'... molto semplice!
Utility Sono disponibili diversi programmi e
funzioni di utilita': Utilizzo in rete Il prodotto per l'utilizzo di Informix
in rete (e quindi nelle diffuse configurazioni client/server o in configurazione
di database distribuito) e' Informix Net ed e' gia' stato descritto nella
sezione di configurazione. Da diverso tempo sono inoltre disponibili
driver ODBC e JDBC per l'utilizzo di informix con pacchetti o applicazioni standard
(per cosi' dire). Attivita' di amministrazione
Le attivita' di amministrazione su Informix SE sono piuttosto limitate.
Rispetto ad altre basi dati (o anche alla versione On Line di Informix)
le attivita' sono piu' semplici e dirette. Infatti la base dati
e' fondamentamente un directory Unix ed una serie di file.
Quasi ogni problema si riduce ad un problema presente sul sistema
e li va risolto.
Tuning
Il tuning sullo
standard engine e' limitato.
Con Informix, come con altri RDBMS, e' fondamentale il
tuning a livello di SQL ed il corretto disegno degli indici.
Testo: Informix su Linux
Ovviamente va definito appartenente al gruppo omonimo e con spazio adeguato all'installazione
nella home directory.
Il software viene distribuito generalmente come tar file e viene
scaricato, per comodita', sul sistema ospite.
La variabile deve puntare alla home directory dell'utente Informix.
Il nome dello script e' tipicamente installse ma puo' variare
a seconda della versione o del pacchetto installato.
Durante l'installazione avviene anche il brand degli eseguibili
queta operazione puo' (ma non sempre) richiedere l'utilizzo del
License Key della distribuzione.
Basta fare logout/login o, in modo piu'
sofisticato . ./.bash_profile.
In qualche caso e' necessario configurare qualche altra variabile
d'ambiente (eg. DBDATE).
Ad esempio con:
# demo_on onipcshm on_hostname on_servername
demo_se seipcpip local_sys sqlexec
demo_re sesoctcp remote_sys sqlexec
E' possibile accedere ad un DB locale (utilizzando demo_se che e' il default)
o remoto (con demo_re).
Per le connessioni in rete e' necessario configurare la
porta utilizzata nel file /etc/services:
sqlexec 1526/tcp # Informix
Sul sistema che ospita la base dati, se deve comportarsi da
server per connessioni in remoto e' necessario attivare il processo
sqlexecd demo_se -l/var/adm/log/sqlexecd.log.
Un file ha come nome table_nameX.dat e contiene
le righe della tabella con tracciato record fisso ed in chiaro.
Il secondo file ha come nome table_nameX.idx e contiene
tutti gli infici definiti sulla tabella in formato standard C-ISAM.
Oltre a tutte le tabelle definite dall'utente vengono create,
sempre nello stesso modo, le tabelle del data dictionary.
Per ogni attivita' svolta sulla base dati vengono attivati due processi.
Il primo e' quello che si occupa dell'interfaccia con l'utente e puo'
essere un'utility di Informix (eg. isql) o un programma sviluppato ad hoc (eg. in
ESQL/C). Il secondo processo e' quello che si occupa dell'accesso ai
dati, si tratta sempre del programma sqlexec.
Nel caso in cui ci sia da interrompere un attivita' e' meglio
ammazzare il processo utente e non l'sqlexec. Se si puo'...
Lo statement UPDATE
STATISTIC ricalcola i valori necessari all'ottimizzatore. Naturalmente deve
essere lanciato periodicamente o quando sono effettuati pesanti modifiche ai
dati.
In effetti si tratta di una base dati... e si accede
ad essa via SQL. I programmi forniti con la base dati sono
costituiti da menu e con un'interfaccia utente semplice.
Possono essere costruiti Menu, Form e Report in modo
banale quasi "utente". I Form cosi' generati possono
essere utilizzati da programmi piu' complessi realizzati
con l'ambiente di sviluppo 4GL.
Per le attivita' tipiche di ribaltamento dei dati si utilizzano i programmi
gia' descritti nella sezione Utility.
Utile e' il comando finderr: converte il codice numero di un
errore Informix in una descrizione, a volte, piu' comprensibile.
La base dati e' contenuta in una directory
ed ad ogni tabella corrisponde una coppia di file C-ISAM.
Dal punto di vista del sistema e' sufficiente garantire buone
prestazioni sul file system utilizzato. Non vi sono elementi
di tuning del "motore" informix.
Data: 31 Dicembre 2003
Versione: 1.0.1
Autore: mail@meo.bogliolo.name