Kosmous beyond the clouds: Sviluppo, Formazione e Consulenza Informatica

Oracle Database 9i New Features

Il seguente documento censisce le principali novità introdotte nella versione Oracle9i.

Le nuove funzionalità sono presentate di seguito, suddivise per area funzionale:


Affidabilità

Oracle9i estende la leadership Oracle nella affidabilità del database su Internet, elemento critico in ogni applicazione di business pensata per il web.

Le aree chiavi di quest' area sono:


- Enhanced disaster recovery environment

Introduzione di quattro nuove funzionalità che proteggono contro il peggior evento che una applicazione di business può incontrare: il downtime (server inattivo).

Le nuove funzionalità forniscono protezione nelle seguenti aree:

  • disaster recovery:

    • il Log Miner fornisce le informazioni necessarie per eseguire operazioni di recupero e tuning;

    • Oracle9i data guard fornisce ai clienti strumenti per un recupero veloce in situazioni critiche e minimizza la necessità di un intervento da parte di un amministratore di sistema;

  • system fault recovery:

    Oracle9i provvede un ripristino del sistema veloce con le nuove funzionalità:

    • Real Application Clusters: l' architettura a cluster fornisce una sicurezza maggiore rispetto alla configurazione a singolo nodo; in una configurazione a due nodi, il crash su un nodo consente comunque all' applicazione di rimanere attiva sul nodo attivo. Usando questa funzionalità, il passaggio delle operazioni da effettuare da un nodo all' altro avviene automaticamente nel giro di pochi secondi, minimizzando l' impatto sull' applicazione e le informazioni gestite;

    • Fast start fault recovery: Oracle9i introduce un miglioramento alla utility che gestisce il ripristino rapido in seguito a crash di sistema e permette all' admin di specificare entro il quale Oracle deve ripristinare la singola istanza in shutdown;

    • Fast instance freeze and resume: con l' utility Flash Freeze, l' amministratore del database può fare una fotografia del sistema nel momento in cui è andato in crash, far ripartire velocemente l' istanza ed eseguire un' analisi diagnostica offline.

  • Human error safeguards:

    Oracle9i semplifica la vita nel caso di crash di sistema o crash dovuti ad errori umani:

    • Oracle9i flashback query: è la funzionalità che permette ad utenti ed applicazioni di eseguire query sui dati precedenti al crash; è possibile infatti definire parametri come data ed ora e poi eseguire delle query sui dati come apparivano in base ai parametri impostati: una volta identificato l' errore, fare il reset dei parametri è piuttosto semplice e non è necessario l' intervento di un DBA. Altro elemento importante è il fatto che il ripristino si esegue con l'istanza Oracle9i attiva.

    • Resumable space allocation: alcune operazioni come caricamento di dati e complessi aggiornamenti possono esaurire le risorse (es. spazio su disco) a disposizione prima di aver terminato il loro lavoro; un insuccesso di una operazione dispendiosa in termini di tempo può richiedere molto tempo prima di essere risolta. Oracle9i permette agli amministratori di sistema di sospendere le operazioni che non possono essere terminate: una volta risolto il problema, l' amministratore di sistema può far ripartire l' operazione dal punto in cui aveva precedentemente interrotto.

  • Planned downtime:

    Oracle9i consente di eseguire operazioni di manutenzione programmata con l' istanza del server attiva, operazione che richiedeva con la 8i uno shutdown:

    • Online schema changes: Oracle9i consente di ridefinire le strutture delle tabelle mantenendole online ed accessibli ad utenti e applicazioni: fra le altre cose, tutti gli indici di tabelle possono essere creati e ricreati online. In questo modo, gli utenti posso continuare ad usare l' applicazione durante l' operazione.

    • Dynamic database parameters: le impostazioni che gestiscono l'uso della memoria possono essere re-impostate online.


- Online data evolution:

Oracle9i prevede una riorganizzazione online e una gestione dell' architettura tale per cui l' amministratore può eseguire una serie di operazioni online sulla definizione delle tabelle: questo rende possibile riorganizzare la struttura delle tabelle mentre gli utenti le stanno utilizzando.

Fra le nuove funzionalità la più rilevante è New Online Architecture.

Oracle9i consente di eseguire istruzioni come "create table as select" sull' online. Nella nuova architettura, i contenuti di una tabella sono copiati in una nuova tabella: durante la copia, gli update fatti sulla tabella di origine sono tracciati dal database e una volta terminata la copia, gli update vengono trasferiti sulla nuova tabella. Una volta che gli update sono terminati, si possono creare gli indici e tutti gli aggiornamenti vengono scritti sulla tabella creata che sostituisce quella di partenza.

Alla tabella sono applicati dei lock all' inizio e alla fine di ogni operazione, mentre il dizionario dei dati viene aggiornato.

Questa architettura consente le operazioni di:

  • qualunque attributo di tabella può essere cambiato online. La tabella può essere spostata, partizionata e cambiato il suo tipo di organizzazione (da heap-organized a index-organized);

  • anche gli attributi logici possono cambiare, fra cui nomi colonne, tipi e dimensioni. Una restrizione è dovuta alla primary key, che non può essere modificata;

  • creazione online e ricostruzione di indici secondari su tabelle index-organized;

  • gli indici possono essere creati online e analizzati allo stesso tempo;

  • Oracle9i inoltre può validare la struttura di un oggetto mentre l' oggetto stesso è online e utilizzato dagli utenti;


- Precision database repair:

Oracle9i include una prevenzione all' errore e una gestione migliore del danneggiamento dei file di log, riducendo così il rischio di inattività prolungata dovuta a questi errori.

Oracle è in grado di ripristinare la consistenza del database a seguito di un danneggiamento dei log durante ripristino. Se l' errore richiede il ripristino tramite supporto magnetico, la nuova funzionalità che riguarda il ripristino da supporti consente di effettuare ripristino solo per i blocchi "causa di errore" mentre il resto della tabella rimane online.

Fra le varie funzionalità, si elencano le principali:

  • Rapid Crash Recovery: Oracle9i esegue ripristino seguente a crash più velocemente della 8i usando un algoritmo di ripristino "two-pass" che assicura che solo i blocchi che devono essere processati subiscono operazioni di I/O;

  • Faster Failure Detection: per sistemi con più nodi, Oracle9i trova velocemente un crash di sistema, sia crash del nodo che della rete, e riconfigura immediatamente per la piattaforma Oracle9i RAC, riducendo il tempo di inattività dovuto a crash di sistema.




Scalabilità

Oracle9i gestisce la scalabilità per le applicazioni di business online più pesanti con intensi carichi applicativi, avendo quindi così un grosso bacino di utenti in rete; i punti chiave sono i seguenti:


- Increased transaction throughput on Oracle9i RAC:

  • Cache Fusion Architecture: nell' architettura Cache Fusion, richieste di lettura dati possono essere soddisfatte da una qualunque delle memorie cache presenti nel cluster. Nel momento in cui i dati sono aggiornati, è importante la coordinazione fra le memorie cache di ogni server in modo da mantenere la consistenza e la correttezza delle operazioni di I/O;

  • Reduced Disk I/O: Le richieste per le query possono essere risolte da una memoria cache locale, questo riduce accessi di I/O su disco. Le operazioni di update non richiedono sincronizzazione poiché il nodo "richiedente" può ottenere il blocco necessario direttamente da qualunque memoria cache del cluster. Onerosi accessi di I/O vengono eseguiti solo nel caso in cui nessuna delle memorie cache contiene l' informazione richiesta e quando una operazione di update esegue una commit che richiede scrittura su disco. L' implementazione della Oracle9i espande il set di operazioni gestite dalla memoria cache e riduce gli accessi I/O su disco migliorando la velocità delle operazioni sul database.


- Scalable session state management:

Nuove funzionalità sulla memoria condivisa, miglioramento nel supporto delle sessioni Java, miglioramenti sui server Oracle condivisi riducono il peso di ogni sessione e questo consente rispetto alla 8i di ospitare più utenti sulla stessa piattaforma (fino a 10 000 accessi simultanei).


- Automatic resource management:

Oracle9i introduce nuove funzionalità che migliorano la gestione delle risorse:

  • granular control over resources: il Resource Manager nella versione 9i ha, fra le novità, lo switch automatico dei gruppi utenti, il controllo sul numero massimo di sessione attive e la stima sul tempo di esecuzione delle query. L' amministratore può specificare il numero massimo di sessione attive simultanee per ogni gruppo utenti. Una volta raggiunto il limite, il Resource Manager accoda tutte le richieste successive e le scoda solo dopo che le sessioni attive terminano;

  • automatic consumer group switching: è la funzionalità di Oracle9i che permette lo switch automatico dei gruppi utenti permette all' amministratore di sistema di specificare i parametri che, se rispettati, faranno automaticamente switchare il gruppo utente di una sessione che è aperta da lungo tempo; gli amministratori possono anche, per ciascun gruppo utente, stabilire un tempo massimo di attesa. Il Resource Manager, una volta ricevuta in inpout una query da parte dell' utente, esegue una stima dei tempi e se la richiesta supera la soglia impostata dall'amministratore di sistema, annulla l' operazione.


Prestazioni

Tra le funzionalità legate alle prestazioni di Oracle9i citiamo le più rilevanti:

  • native compilation and improved PL/SQL Optimization: uno degli obiettivi dichiarati della relaease Oracle9i è il miglioramento delle prestazioni nelle aree cosiddette "core" delle applicazioni legate al business elettronico. Il supporto alla compilazione nativa e l' ottimizzazione al motore del PL/SQL migliorano significativamente le prestazioni delle applicazioni odierne; inoltre, l' aggiunta di memoria e di capacità di calcolo migliorano le prestazioni del CBO (cost-based optimizer) risultando in un inferiore uso dello storage a disposizione con conseguente maggiore velocità operativa;

  • latch contention improvements: in Oracle9i sono stati risolti molti dei conflitti legati alle richieste di memoria migliorando così le performance del sistema. Inoltre, miglioramenti sull' uso degli accessi di I/O su disco, operazioni sugli indici di skip/scan row source aumentano l' efficienza in ambienti di data warehouse ed OLTP.

  • enhanced Java performance: in Oracle9i è stato migliorato l' uso della garbage collection, la compilazione nativa ed aumentata la condivisione degli oggetti. I miglioramenti nei moduli JDBC e SQLJ hanno portato miglioramenti nelle prestazioni di Java usato come middleware o come client.


Gestione Oracle9i

E' una delle aree chiave dei miglioramenti apportati in Oracle9i: funzionalità della gestione automatica degli Undo (annullamento dell' ultima operazione), gestione automatica esecuzione SQL in memoria e gestione per lo spazio da associare ad ogni segmento di memoria sono solo alcune delle funzionalità che consentono agli amministratori di delegare compiti amministrativi al server stesso.

I miglioramenti nella gestione in Oracle9i includono le seguenti funzionalità:


- Database self-management:

  • self-managing undo features: i database Oracle9i sono in grado di gestire i propri segmenti di rollback. Non c'è più bisogno che l' amministratore allochi lo spazio di rollback in un tablespace dedicato poiché è il database ad aver cura di aspetti come conflitti nell' uso dei blocchi dedicati al rollback, lettura consistente dei dati e utilizzo dello spazio su disco;

  • memory management: la gestione della memoria è un' altra area nella quale sono stati apportati miglioramenti consistenti. Fino alla release 8i, gli amministratori dovevano stoppar el' istanza dei Oracle Server al fine di modificare i componenti legati alla SGA ( System Global Area ). Oracle9i introduce un nuovo meccanismo per lal gestione dinamica della memoria che permette di modificare run-time la dimensione del buffer cache e lo shared pool;

  • working memory management: Oracle9i fornisce una gestione semplificata per la memoria in uso legata all' esecuzione di istruzioni SQL modificando run-time i parametri che controllano l'allocazione di memoria privata. Questa funzionalità aiuta gli utenti di basso profilo a ridurre il tempo e lo sforzo necessari per aggiustare parametri di memoria per le loro data warehouse e applicazione di reportistica, mentre utenti di alto profilo possono evitare di fare turning sulla memoria per i loro carichi di lavoro.


- Streamlined operational management of the database:

Alcune delle nuove funzionalità semplificano l'amministrazione del database Oracle9i:

  • persistent initialization parameters: con l' introduzione della funzionalità di inizializzazione del parametro persistente, i cambiamenti dello stesso permangono anche durante gli shut-down e i riavii. Questa funzionalità permette all' amministratore inoltre di avviare il database da una macchina remota senza avere una copia in locale del file di inizializzazione dei parametri;

  • Oracle managed files: Oracle9i introduce il concetto di file gestiti da Oracle che usa interfacce standard di file system per creare e cancellare file quando richiesto. La funzionalità infatti rende automatico il task di creazione e cancellazione di file del database. Inoltre, con l' introduzione del tablespace temporaneo di default, il tablespace SYSTEM non è più usato come deposito per i dati temporanei;

  • resumable space allocation: un'altra nuova funzionalità proposta in Oracle9i consente agli amministratori di sistema di sospendere temporaneamente una grossa operazione, come ad esempio un update batch o un caricamento dati, se dalla diagnostica risultano problemi di spazio su disco. Questo consente all 'amministratore di risolvere il problema e far ripartire l' operazione dal punto in cui si era interrotta la normale esecuzione;

  • mean time to recover specification (MTTR): Oracle9i gestisce al meglio il tempo di inattività del database permettendo agli amministratori di specificare un parametro che specifica il numero dei secondi necessari per il ripristino del sistema in seguito a crash di sistema. Questa funzionalità, associata alla possibilità di inizializzare alcuni parametri dinamicamente, nel migliorare ulteriormente l' affidabilità del sistema.


- Enhanced recovery manager (RMAN) performance

Per semplificare le operazioni di backup e ripristino, l' utility Recovery Manager introduce in Oracle9i le seguenti novità:

  • configurazione una-tantum per tutte le sessioni;

  • gestione automatica dei backup e dei log tramite interfaccia grafica:

    il Recovery Manager implementa un' interfaccia di ripristino, che controlla la scadenza dei backup. Il programma marca come obsoleti anche quei backup e log non richiesti per ripristinare il database in un determinato punto. Queste funzionalità sono state sviluppate al fine di ridurre tempo e lavoro richiesti all' amministratore di sistema in attività di backup rendendo automatici i compiti eseguiti più spesso;

  • ripristino media block:

    Questa funzionalità permette di eseguire ripristino di un supporto di storage su blocchi individuali in un datafile mentre il datafile rimane online. Questa funzionalità è disponibile solo con l' utility Recovery Manager.

  • backup e ripristini riavviabili.


Business Intelligence

Oracle9i espande la il peso dei database relazionali in un ambiente di data warehouse diventando un motore di dati ancora scalabile per tutte le operazioni che riguardano il warehousing, non solo per operazioni base di caricamento e sottomissione di query.

E' infatti la prima vera piattaforma data warehouse-oriented. Oracle9i fornisce nuove funzionalità in capacità di analisi, ETL ( extraction, transformation, loading il processo standard per popolare una data warehouse) e data mining.

Nel momento in cui c' è la crescita in termini di volumi di dati gestiti e di utenti finali che accedono alla data warehouse, il server di Oracle9i "scala" per soddisfare le nuove richieste, con l' aggiunta di nuove risorse hardware; le nuove funzionalità di Oracle9i mantengono comunque la data warehouse semplice da mantenere.

Oracle9i soddisfa le richieste della data warehouse con le seguenti funzionalità:


- Performance, scalability and manageability:

Index-organized tables includes these advancements:

  • bitmap join index: questa funzionalità migliora una determinata classe di query (una 'join index' è una struttura che scansiona più tabelle e migliora le prestazioni delle join per quelle tabelle;

  • miglioramenti sulle snapshot: le viste materializzate (snapshot) in Oracle9i sono state migliorate in due modi :

    • è stato migliorato l' algoritmo che gestisce la riscrittura delle query che consente ad una singola snapshot di far riferimento ad una lista più ampia di query;

    • il meccanismo che gestisce il refresh è stato migliorato permettendo refresh veloci ed incrementali gestendo una varietà maggiore di snapshot;

  • ETL: i miglioramenti apportati in Oracle9i per quel che riguarda l' ambiente di data warehouse fanno riferimento a due elementi in particolare:

    • external tables: per aumentare l' efficienza e ridurre i tempi necessari per caricare ed aggiornare i dati, Oracle9i fornisce il supporto per le external table, che permettono di caricare velocemente sul db dei dati provenienti da sistemi esterni. Le external table non risiedono fisicamente sul db e possono essere presenti con un determinato formato, specificato da un determinato driver. L'istruzione create table.. organization external specifica i parametri di caricamento che descrivono la external table.

    • multi-table insert: un' altra funzionalità legata alla scalabilità per il caricamento dati e ridurre la complessità delle operazioni riguardano i comandi INSERT e MERGE. I miglioramenti per entrambi i comandi SQL permettono di gestire un caricamento dei dati più complesso in un singolo statement SQL, a differenza della versione 8i dove erano richiesti più statement. Con l' istruzione di multi-table insert, i dati possono essere inseriti in più tabelle usando un solo statement SQL e questo è più efficiente rispetto all' uso di statement separati, uno ogni tabella. Queste insert rendono l' SQL più utile per la trasformazione dei dati e la gestione condizionale dei dati. Il comando di refresh incrementale di una tabella, il MERGE, prevede due operazioni: i nuovi record sono inseriti e quelli esistenti sono aggiornati. Anziché richiedere due passi separati, l' istruzione MERGE permette di processare simultaneamente entrambi i comandi in un singolo statement SQL. Questa nuova funzionalità dell' ETL viene gestita anche dall' applicativo Oracle Warehouse Builder.


- Data warehouse manageability:

Oracle9i gestisce i crescenti carichi di lavoro degli ambienti data warehouse consolidati usando delle funzionalità migliorate per gestire un maggior numero di utenti, garantendo che:

  • una certa quantità di risorse è allocata per ogni query;

  • il trhoughput della piattaforma è massimizzato;

  • l' amministratore e gli utenti possono vedere lo status delle operazioni running;

  • il db può automaticamente annullare o accodare determinate richieste, in base alle condizioni specificate dall' amministratore del sistema per mantenere un giusto carico di lavoro.

Oracle9i introduce nuove funzionalità per supportare questi requisiti:

  • database resource manager: fornisce un meccanismo per allocare le risorse di una data warehouse agli utenti finali. I gruppi, chiamati Resource Consumer Groups, sono specificati dall' amministratore di sistema che può controllare quante risorse allocare per ciascun gruppo di utenti. Una importante possibilità a disposizione dell' admin è di specificare un tetto massimo delle sessioni attive per ogni Consumer Group;

  • enhanced statistics gathering: l' ottimizzatore interno di Oracle fa uso delle statistiche sugli oggetti nel db ( come ad es. il numero di record presenti in ogni tabella ). Le statistiche sono raggruppate dall' amministratore di sistema che fa il ricalcolo tramite il package di sistema, DMBS_STATS. In Oracle9i, il package è stato migliorato per permettere all' amministratore di raggruppare più semplicemente il set corretto per le statistiche.

Per ulteriori riflessioni, eventuali segnalazioni di errori o quant' altro, Vi invitiamo ad inviarci commenti.

Marco Bianchi
Commenti (0)2009-06-18