La nuova versione Oracle 10g (R2) presenta
una serie di nuove funzionalita'.
Questo documento presenta brevemente, ed in modo assolutamente poco
serio, i principali cambiamenti:
appunto le 10 cose che vi faranno impazzire della versione 10!
Il nuovo Enterprise Manager(EM):
finalmente un tool di gestione valido e completo.
Consente il controllo di Oracle
completo ed e' adatto a tutti: dal sistemista fai-da-te al DBA esperto!
Tra i molti elementi importanti la sua completezza
(e non solo le cose piu' semplici o comuni) e l'interfaccia web.
Da un qualsiasi client, senza necessita' di installare componenti,
e' possibile accedere all'interfaccia di amministrazione.
Naturalmente e' cambiata l'architettura
ed ha un peso non indifferente sui sistemi
piu' modesti ma i vantaggi sono notevoli.
Molti tool di terze parti diventano superflui ed anche i miei
vecchi script
(che ho scritto dalla 5.1 ed che aggiorno ad ogni release)
rischiano di rimanere definitivamente archiviati.
Questa ci voleva proprio! Ora non sono piu' necessari gli apici!
La nuova fuzionalita' si chiama Flashback Table ed e' un cestino
della spazzatura da cui e' possibile riprendere nuovamente tabelle,
indici, oggetti vari cancellati per errore.
Gia' la versione 9i aveva introdotto la possibilita' di eseguire Flashback
Query per recuperare dati modificati dalle transazioni,
ora la possibilita' e' estesta ai comandi di DDL.
E' una comodita' (anche se i DBA, dopo una ventina d'anni...
si erano oramai abituati ad una certa attenzione con i comandi di drop)
ma e' necessario avere qualche avvertenza.
Questa e' una cosa nuova, per Oracle intendo, perche' in molti linguaggi
di programmazione e dialetti SQL era diffusa da tempo.
Le espressioni regolari sono assai utili!
Con l'introduzione di alcuni nuovi operatori (eg.
REGEXP_LIKE) e' ora possibile confrontare il contenuto
di stringhe con espressioni regolari in SQL senza necessita'
di utilizzare un linguaggio procedurale esterno.
L'implementazione di Oracle e' molto completa, ad esempio con:
la condizione di esempio ricerca le targhe che iniziano con due lettere e
quindi sono seguite da un numero a piacere di lettere e numeri.
RMAN e' diventato con il passare delle versioni sempre piu' completo
e le ultime evoluzioni (R2) puo' essere utilizzato anche nella gestione
delle librerie. A questo punto non sono piu' necessari SW specifici
per effettuare i backup e si utilizzano comandi Oracle per ogni tipo
di attivita'.
Inoltre la gestione da EM consente di rendere semplici la maggior parte delle
configurazioni.
RMAN viene anche utilizzato dal DBCA (tool di creazione di un'istanza)
per la definizione iniziale.
Anche per il PL/SQL c'e' qualche novita'.
L'utilizzatissimo package dbms_output e' stato esteso ed ora puo'
generare un file di dimensione qualsiasi (quasi) e con linee
non piu' limitate a 256 caratteri. Una possibilita' da tempo attesa
poiche' il package e' molto utilizzato sia per il logging che per
la generazione di file.
Sono state introdotte nuove funzioni di ETL,
le utility exp/imp sono state riscritte, sono state introdotte le
EXPDP/IMPDP (export/import data pump) e (novita' della R2)
queste ultime possono utilizzare
la compressione in modo diretto (con exp/imp da sempre si utilizzano
le named pipe su Unix).
Quante battaglie si sono combattute tra DBA e programmatori sulla
COMMIT?
L'esigenza di mantenere la congruenza dei dati, il famigerato
SNAPSHOT TOO OLD, le prestazioni, ...
Le evoluzioni nel tempo sono state molte e
la 10g R2 introduce un'ulteriore possibilita': il commit asincrono.
Ovvero l'applicazione effettua il commit ma non attende la sua
conclusione. Per applicazioni batch e' probabilmente la scelta
piu' efficiente e senza compromessi sulla logica dei dati.
Da diverse versioni Oracle (NdE 8.1.6) fornisce strumenti per l'analisi
delle prestazioni del sistema.
Per controllare la situazione basta utilizzare exec statspack.snap
per effettuare le "fotografie" del DB e quindi
@$ORACLE_HOME/rdbms/admin/spreport
come utente PERFSTAT.
Il GRID computing fara' davvero ammattire tutti.
In realta' non c'e' molto di "grid" nella versione 10g.
E' vero... l'EM puo' operare verso sistemi ed istanze differenti,
l'ASM gestisce in modo trasparente lo storage,
con il RAC istanze diverse utilizzano lo stesso storage,
e' ora possibile
la trasportabilita' (anche on-line) dei tablespace tra sistemi diversi
...
I punti indicati sono solo alcune delle nuove
funzionalita' presenti nell'Oracle RDBMS 10g.
Mi sono percio' riservato il diritto di scegliere
quelli che, secondo me, sono le novita' piu' importanti.
Interessano le versioni precedenti?
La storia di Oracle e' presentata in
C'era una volta Oracle.
In conclusione la release 10g e'
ora ben stabile, anche sulle nuove funzionalita',
ed i vantaggi dal punto di vista della gestione sono notevoli
quindi... buon divertimento con la 10g!
Testo: Novita' presenti in Oracle 10g (R2)
Alcune funzionalita' introdotte nella 10g sono veramente importanti
ed erano attese da tanto tempo... ma altre...
Queste cose mi fanno impazzire!
Insomma nel bene o nel male c'e' da divertirsi in ogni caso!
Ma per sapere cosa e' cambiato veramente bisogna leggere i prossimi 10 punti.
Per utilizzare l'EM e' necessario farlo partire con emctl start dbconsole
(dopo aver settato l'ORACLE_SID) e quindi utilizzare da browser
l'URL http://host.domain:1158/em.
Serviva un cambio di versione per usare l'argv[]? Pare proprio di si!
Naturalmente non c'e' solo questo nell'sqlplus distribuito
con la 10. Altra funzionalita' utile e' la gestione del prompt...
Insomma anche i programmi piu' consolidati possono migliorare.
La cancellazione di una tabella non la cancella realmente ma la rinomina
(il nuovo nome e' una simpatica stringa di caratteri come BIN$04aloinuhjtATATTAR...).
Quindi script di migrazione, controllo dei DB, ... realizzati con le precedenti versioni
di Oracle debbono essere ricontrollati per evitare errori.
Con lo statement FLASHBACK TABLE si rinomina la tabella al nome originale
ma non gli eventuali indici associati... vanno rinominati manualmente.
Per la cancellazione anche fisica e' stato introdotto il comando PURGE.
Se vi fa impazzire... PURGE DBA_RECYCLEBIN; ALTER SYSTEM SET recyclebin=off scope=spfile;
select *
from vehicle
where plate REGEXP_LIKE '^[[:alpha]]{2}([[:alnum]])*$';
La compilazione condizionale consente di utilizzare costrutti adatti
al debug ed alla profilazione e mantenere, in modo efficiente, lo stesso
codice, anche in ambiente di produzione.
Il blocco seguente sara' attivo a fronte di una compilazione
lanciata con ALTER PROCEDURE ... COMPILE plsql_ccflags ='debug_mode:true' ...
$IF $$debug_mode $THEN
dbms_output.put_line('Here I am!');
$END
La gestione dei backup di grandi basi dati e datawhare house risultano
cosi' meno onerose.
La sintassi? Molto semplice: COMMIT [WRITE [WAIT|NOWAIT|IMMEDIATE|BATCH]].
In pratica utilizzando un COMMIT NOWAIT in programmi batch
si ottengono le migliori prestazioni mantenendo la correttezza logica
dei dati e correndo solo il piccolo rischio di perdere qualche transazione
(ma in un programma batch se vi e' un errore tipicamente si ricomincia
dall'inizio).
Oppure con un settaggio a livello di SYSTEM o di SESSION si puo' impostare
il commit mode di default.
Con l'AWR
(Automatic Workload Repository) le statistiche
ora partono in automatico senza bisogno di configurazione.
Bene, non e' piu' necessario aspettare
che si lamenti qualche utente per accorgersi
di aver dimenticato di attivarle!
Collegati a questo l'ADDM (Automatic Database Diagnostic Monitor) e
gli Advisor (eg. SQL Tuning Advisor)
offrono ottimi consigli al DBA ed ai programmatori.
Con l'ASSM (Automatic Segment Space Management)
ed le LMT (Locally Managed Tablespaces),
introdotti gia' in precedenza, si completa l'insieme delle modalita'
automatiche di gestione.
In pratica con la versione 10 si ha una gestione automatica
dei piu' importanti componenti di amministrazione di un RDBMS complesso e potente
come Oracle.
Naturalmente quella che segue e' solo un opinione personale:
il grid diverra' reale soprattutto se vi saranno le
necessarie premesse economiche!
Installare l'RDBMS Oracle su tutti i sistemi di un'azienda ed
utilizzarlo on-demand e' sempre piu' possibile tecnicamente...
ma diverra' una pratica comune solo quando sara' anche conveniente.
Con la nuova versione sono stati aumentati
alcuni limiti dell'RDBMS (eg.
ora un DB puo' raggiungere gli 8M TB, ovvero 8 milioni di terabyte,
neanche Paperon de Paperoni ha un deposito cosi' grande!),
vi e' una nuova gestione dei VPD
e tante altre cose... che si possono trovare sulla documentazione ufficiale!
Data: 31 Giugno 2004
Versione: 1.0.6 - 14 Febbraio 2008
Autore: mail@meo.bogliolo.name