Roberto Scarpitti ORACLE DATA GUARD 11G OVERVIEW Oracle Database e la business continuity: Oracle Data Guard 11g Pagina 1 di 11 Roberto Scarpitti Indice INDICE ....................................................................................................................................................................................... 2 INTRODUZIONE ........................................................................................................................................................................... 3 Benefici.............................................................................................................................................................................. 3 CONFIGURAZIONE ....................................................................................................................................................................... 4 Prerequisiti ....................................................................................................................................................................... 4 Primary Database .......................................................................................................................................................... 4 Standby Database ......................................................................................................................................................... 4 Tipologia di Standby Database ......................................................................................................................................................... 5 METODI DI PROTEZIONE .............................................................................................................................................................. 6 Esempio di configurazione: physical standby database ................................................................................................................ 7 SERVIZI OPERATIVI DELLA TECNOLOGIA DATA GUARD .................................................................................................................... 8 Redo Transport Services ............................................................................................................................................ 8 Apply Services ................................................................................................................................................................ 8 Role Transitions ............................................................................................................................................................. 8 DATA GUARD BROKER................................................................................................................................................................. 9 DATA GUARD E LE TECNOLOGIE AVANZATE DI ORACLE ................................................................................................................. 10 Oracle Real Application Clusters (RAC) .............................................................................................................. 10 Flashback Database.................................................................................................................................................... 10 Recovery Manager (RMAN)...................................................................................................................................... 10 PERCHÉ SCEGLIERE ORACLE DATA GUARD 11G ........................................................................................................................... 11 Pagina 2 di 11 Roberto Scarpitti Introduzione Oracle Data Guard 11g è l’evoluzione naturale di Oracle Standby Database di Oracle 8i, passando dalle versioni 9i e 10g. Per quanto riguarda la sola base dati, la tecnologia Oracle Data Guard può essere impiegato in ambito high availability, data protection, disaster recovery e business continuity basandosi semplicemente sul motore Oracle 11g e sulle potenzialità offerte dalla versione Enterprise Edition, senza dover installare nessun altro software aggiuntivo o apparato hardware. Data Guard fornisce inoltre servizi adeguati a creare, mantenere e monitorare uno o più standby databases, prevenedo le situazione di disastro o semplicemente di corruzione di dati, consentendo di mantenere costantemente allineati due o più database identici, ubicati in siti differenti, anche a distanze rilevanti, purché connessi via network tra loro. Questo permette di attivare l’istanza secondaria in qualsiasi istante, nel momento in cui la primaria divenisse inutilizzabile per cause volute o meno, schedulate o no, riducendo al minimo il tempo di downtime e soprattutto prevenendo la perdita di dati. Data Guard può inoltre integrare in maniera del tutto nativa, le potenzialità di Oracle Real Application Cluster, realizzando in maniera sinergica la tecnologia Real Application Guard che garantisce una protezione completa a fronte di guasti hardware, software e di disastri. Grazie allo standby database è possible demandare all’istanza secondaria sia le procedure di backup che la reportistica massiva ed invasiva, normalmente attuata sulle istanze di produzione direttamente, semplicemente integrandosi con l’utility Recovery Manager di Oracle. Benefici Come meglio illustrato in seguito sono molteplici le motivazioni che inducono a scegliere la tecnologia Data Guard. Eccone un elenco: Non si hanno perdite di dati in caso di disastro ed è inoltre possibile garantire un sistema in alta affidabilità. E’ possibile scegliere le politiche di protezione dei dati e di ripristino a fronte di un disastro, in base alle esigenze applicative. La gestione della struttura Data Guard nel suo complesso può essere fatta o da riga comando o tramite interfacce http(Oracle Enterprise Manager). Attivazione del sito di DR a ruolo primario, per attività di manutenzione programmata al termine della quale il sito primario ritorna ad assumere il suo ruolo nativo. Distribuzione dei carichi di lavoro su tutti i nodi della configurazione, con differenziazione dei ruoli assunti dai database(OLTP, DDS, DATA WAREHOUSE). Integrazione di Data Guard con altre opzioni ed utility offerte da Oracle (RAC ed RMAN) per garantire massima protezione, massima disponibilità e massime performance. Pagina 3 di 11 Roberto Scarpitti Configurazione Oracle Data Guard si basa essenzialmente sulla presenza di due database identici, allineati applicando in modalità sincrona o a asincrona gli archivelogs generati dal prim Oracle Data Guard si basa essenzialmente sulla presenza di due database identici, allineati applicando in modalità sincrona o a asincrona gli archivelogs generati dal primario. Di seguito la topologia appena descritta: Prerequisiti L’installazione base in modalità primario-secondario di Oracle Data Guard prevede essenzialmente che vengano rispettati i seguenti prerequisiti: 1. RDBMS Oracle 11g Database Enterprise Edition comprendente la feature Data Guard e apertura della base dati in modalità ARCHIVELOG. 2. Due server che abbiano la stessa configurazione software ed hardware ma per cui è possibile decidere di utilizzare hardware ridimensionato sui sito secondario, riducendo così i costi complessivi di infrastruttura. E’ preferibile che i due server siano ubicati in postazioni fisicamente separate, questo per garantire, in caso di disaster, che almeno uno dei due non venga compromesso. 3. Un apparato di rete efficiente che consenta il trasporto degli archive logs dal server primaio verso i clone in tempi brevi e senza perdita di dati. Per quanto riguarda la configurazione base, non è necessario alcun apparato disco esterno o condiviso, il sistema lavora tranquillamente sui dischi interni. In configurazione RAC invece, essendo Cluster, al contrario è necessario far uso di dischi shared. La gestione dei siti primario e secondari può essere fatta utilizzando riga comando e SQL*PLUS oppure utilizzando l’interfaccia fornita da Data Guard Broker Interface la cui utility di sistema è DGMGRL oppure direttamente integrata in Oracle Enterprise Manager. Primary Database La tecnologia Data Guard prevede la presenza di un database primario di produzione attivo in modalità primary role, in single instance od in RAC, il quale allinea il database secondario attraverso l’invio e l’applicazione degli archivelogs. Il database primario deve quindi essere sempre aperto in modalità lettura/scrittura ovviamente. Standby Database Lo standby database è ottenuto come restore da una copia di backup a freddo del database primario, per cui consistente. E’ possibile attivare fino a trenta copie di standby database tutte appartenenti ad un’unica configurazione Oracle Data Guard. Opportunamente configurato sia lato primary che standby, il meccanismo di trasmissione dei redologs ed applicazione degli stessi nei siti remoti è completamente automatico. Come il sito primario, anche lo standby configurazione single-instance o RAC. database può appartenere alla Pagina 4 di 11 Roberto Scarpitti Lo standby database a differenza del primario è generalmente aperto in modalità recover, ovvero non accessibile all’esterno, ma in continuo aggiornamento. In questo modo tutte le transazioni generate dal sito primario ed inviate tramite i processi Oracle al sito secondario, vengono applicate sullo standby. Ovviamente le politiche di recover e la scelta della configurazione complessiva dipendono fortemente dalle esigenze applicative. Dalla versione Oracle 9i il database secondario può essere aperto e accessibile e dalla 11g è addirittura possibile lavorare in configurazione updatable snapshot sul secondario, come meglio spiegato di seguito, per cui con istanza aperta in modalità read/write. Tipologia di Standby Database Per procedere con il disegno dell’architettura in Standby è necessario decidere a priori due aspetti: che tipo di database secondario creare e quale livello di protezione attuare all’intera architettura logica. Physical standby database Riprende la configurazione originaria del classico Standby Database: il database secondario è identico a quello primario, blocco per blocco; la sincronizzazione avviene attraverso l’applicazione degli archive logs e la base dati è chiusa, non accessibile dall’esterno in quanto in stato di recover. Dalla versione 11g release 1 (11.1.X) i redo log sullo standby database possono essere applicati anche se il database è aperto in modalità read-only. Questa potenzialità garantisce la massima protezione dei dati ma anche la possibilità di accedere in lettura per reportistica agli stessi dati di produzione, ma lavorando su database remoto. Logical standby database La base dati primaria è identica allo standby solo a livello di dati mentre l’organizzazione fisica e la struttura dati potrebbe essere differente; L’allineamento tra le basi dati avviene attraverso l’applicazione diretta degli statement SQL estratti dai redo del primario ed applicati direttamente allo standby database, per cui la base dati secondaria dovrà essere aperta. Questo consente l’utilizzo del database secondario non solo per garantire il disaster recovery, bensì anche per sfruttare meglio le attività di reportistica ed infine per poter aggiornare l’RDBMS Oracle software con il minimo downtime di sistema sul primario. Snapshot Standby Database In questo caso lo standby è aperto e completamente aggiornabile! Le transazioni generate dal primario non sono applicate direttamente sul secondario finché quest’ultimo non viene riportato nella modalità di physical standby database, effettuando un rollback su tutte le transazioni localmente applicate sullo snapshot standby database. In sintesi il physical standby può essere aperto in modalità snapshot ed adoperato come se fosse un database primario, accedendo ai dati in lettura/scrittura per fare test o reporting massivi su delle immagini di database primario ed al termine di tutto, riattivare l’allineamento delle base dati tra primario e secondario. Ovviamente finché su tutte le transazioni applicate sullo snapshot standby database non viene effettuata la rollback, questo non sarà disponibile per il sito di DR e la tempistica necessaria ad un eventuale failover o switchover è direttamente legata alla quantità di transazioni applicate. Pagina 5 di 11 Roberto Scarpitti Metodi di protezione La scelta del metodo di protezione dati dipende dalle politiche adottabili a fronte del disastro, ma anche dalle performance che si vorrebbero mantenere sul sito primario. Sulla base di queste scelte vengono configurate le tecnologie per determinare il livello di sincronizzazione tra le basi dati ma anche quale livello di rischio di perdita dati garantire. Data Guard consente di scegliere di massimizzare uno dei tre ambiti: protezione dati, disponibilità di servizio e performance: 1. Maximum protection: garantisce il massimo livello di disponibilità e protezione dei dati sul database primario e secondario, assicurando una perdita dati in caso di disaster pari a zero. In questo caso i redologs del primario sono immediatamente inviati dal primario verso il secondario, realizzando così una sincronizzazione delle basi di dati completa: la transazione sul primario è completata e committata solo quando c’è la certezza che questa sia disponibile ed applicata sul server secondario. Tale soluzione è adottata per sistemi ad alta protezione con almeno due standby database ed un primario in cui basta che almeno uno dei due DB secondari abbia ricevuto la transazione affinché il primario possa ultimarla. Nel momento in cui lo standby database risulta irraggiungibile anche il primario viene bloccato, assicurando quindi che nessuna transazione venga persa. Tale soluzione è possibile solo per physical standby database. 2. Maximum availability: questa configurazione garantisce la massima protezione a fronte di failures dovute ai componenti singoli della base dati(corruzione fisica dei datafiles) senza compromettere la disponibilità del sistema primario. Anche in questo caso, la transazione sul primario è completata solo quando c’è la certezza che questa sia disponibile su almeno un server secondario però, a differenza della modalità Maximum Protection, nel momento in cui lo standby database non è più disponibile(a causa di problemi di rete per esempio), il primario continua a lavorare non creando quindi alcun disservizio. In questo modo lo standby database può temporaneamente divergere dal primario ma, nel momento in cui lo standby torna ad essere disponibile, verrà automaticamente sincronizzato al primario senza perdita di dati. Tale configurazione è disponibile sia per il physical che per il logical standby database. 3. Maximum performance: è la configurazione di default in cui viene garantito il massimo livello di performance ma anche una limitata probabilità di perdita di dati in quanto le transazioni vengono spedite dal primario al secondario in modalità asincrona dai processi Oracle LGWR o ARCH. La commit sulle transazioni del primario non è minimamente condizionata dalla corretta applicazione della transazione sul secondario. Se lo standby database si rende non disponibile per qualunque ragione, il database primario continua a lavorare indisturbato, evitando perdite di performance e di servizio. Per tutte e tre le possibili configurazioni di Data Guard è necessario apporre modifiche opportune ai parametri di istanza primaria e secondaria dell’infrastruttura, per cui sarà necessario un fermo del database primario, un backup consistente dello stesso, un restore sul secondario ed un avvio dell’istanza in modalità recover. La seguente tabella riassume le caratteristiche salienti delle tre modalità: Protection Mode Maximum Protection Maximum Availability Maximum Performance Rischio di perdita di dati Nullo; protezione doppia dalle failures Nullo; protezione singola dalle faillures Modalità di invio transazioni Limitato tra 0 e diversi secondi Asincrono attraverso LGWR o ARCH Sincrono verso due siti tramite LGWR Sincrono attraverso LGWR La configurazione maggiormente utilizzata è quella di default ovvero Maximum Performance, in cui è più importante mantenere alto il livello di servizio sul master Pagina 6 di 11 Roberto Scarpitti mentre sul secondario, è consentito un margine di possibilità di perdita di dati e quindi di divergenza dal primario. La modalità di aggiornamento del secondario può variare a seconda delle esigenze, ma soprattutto della frequenza con cui vengono generati gli archive logs sul primario, per cui si può scegliere di archiviare in automatico le transazioni sul secondario ogni volta che viene emesso un archive log nuovo, piuttosto che demandare a degli shell script tali compiti. Esempio di configurazione: physical standby database Di seguito ho rappresentato graficamente la configurazione Data Guard su due siti, Master e Secondario, su una architettura a tre livelli basata su SAP. La prima rappresentazione riguarda il caso di funzionamento normale, la seconda invece il caso di disastro. CONFIGURAZIONE IN MODALITA’ NORMALE Client level SAP Gui Network Application Level (SAP Server) Oracle Net Data Base Level Master Site (Primary Database – Active Instance) Data Base Level Remote Site (Secondary Database – Recover Instance) Network base dati archive log base dati archive log Come si può notare dal grafico la base dati è acceduta solo dall’application server il quale punta al Master Site, mentre il database server secondario non viene acceduto. Sarà il database primario ad inviare le transazioni generate dal primario anche sul secondario tramite gli archive logs e, quindi ad applicarle sul secondario mantenendo allineati i database. In caso di Disaster la nuova configurazione diventerà la seguente, per quanto concerne la base dati: Client level SAP Gui CONFIGURAZIONE IN MODALITA’ DISASTER Network Application Level (SAP Server) Oracle Net Data Base Level: disastered site (Primary Database – defunct instance) base dati log archive Data Base Level Remote Site (Primary Database – Active Instance) base dati archive log Dopo il disastro il database primario è inaccessibile, lo standby è diventato primario e l’applicazione punterà al sito remoto invece che a quello originario senza aver perso nessuna transazione derivante dal primario. Pagina 7 di 11 Roberto Scarpitti Servizi operativi della tecnologia Data Guard La tecnologia Data Guard fa uso di tre tipi di servizi: uno dedicato alla trasmissione dei redolog, uno all’applicazione degli stessi ed uno alla gestione dei ruoli delle istanze. Redo Transport Services Sono adibiti al trasferimento automatico del contenuto dei redolog da database primario agli standby database. Queste le attività svolte: o Trasmissione dei redolog dal database primario a tutti gli standby presenti in configurazione Data Guard o Risoluzione del gap esistente tra gli archive log spediti dal primario e quelli effettivamente pervenuti sui secondary; la differenza può essere causata da una caduta di rete o temporanea assenza dei database secondari o Individuazione degli archive log persi o corrotti sugli standby database e sostituzione degli stessi, richiedendoli al primario o ad altri database secondary che li hanno ancora disponibili Apply Services Si occupano di applicare le transazioni provenienti dal database primario, sullo standby, garantendone l’allineamento. La sincronia è gestita o tramite l’applicazione degli archivelog o, ove opportunamente configurato, direttamente degli standby redolog del secondario. La principale differenza tra il physical ed il logical standby database risiede nella modalità in cui i redolog sono applicati: o Nel physical standby database Data Guard utilizza la tecnologia REDO APPLY applicando le transazioni sul database secondario in modalità tradizionale con DB in stato recover e non accessibile. o Nel logical standby database Data Guard utilizza la tecnologia SQL APPLY trasformando le transazioni pervenute dal database primario in statement sql applicate al database secondario aperto, in stato readwrite. Role Transitions Un database Oracle può essere attivato in modalità primaria o standby: questi sono i ruoli associati alle istanze. Con Oracle Data Guard è possibile scambiare il ruolo delle istanze tramite le operazioni di switchover e failover. o Switchover è il ruolo che consente di eleggere uno dei physical standby database a primario e, successivamente a far assumenre al primario originario il suo ruolo, senza perdita di dati. Questa tecnica viene impiegata normalmente durante attività di manutenzione programmata sul database primario, per cui il database primario assume il ruolo di standby ed uno dei secondari assumono quello di primario fino al termine della manutenzione. Finita l’attività I ruoli vengono nuovamente scambiati con un downtime molto basso e senza perdita di transazioni, il ruolo è quindi reversibile. o Failover invece è la situazione in cui il primario risulta inaccessibile per cui lo standby database assume il ruolo di primario senza perdita di dati ed in modalità irreversibile, per cui senza la possibilità di ritornare a ruolo secondario. Lo scambio di ruoli all’interno della configurazione in Data Guard è gestita tramite comandi SQL oppure tramite Data Guard Broker di OEM o tramite l’utility di riga comando DMGRL. Pagina 8 di 11 Roberto Scarpitti Data Guard Broker Data Guard broker è un framework di gestione distribuita utilizzato per la creazione, la gestione e la manutenzione di Data Guard. Si può utilizzare sia Oracle Enterprise Manager graphical user interface (GUI) sia Data Guard command-line interface (DGMGRL). Le principali operazioni consentite tramite questo tool sono: o Configurazione di Oracle Data Guard, inclusi la definizione del redo transport services e degli apply services. o Gestione e monitoring dell’intero sistema Data Guard da un unico sistema in configurazione single instance o RAC. o Switchover ed failover da interfaccia grafica o da riga comando tramite l’utility DGMGRL. o Abilitazione della facility fast-start failover con cui, in maniera del tutto automatica viene avviato il failover verso un’istananza di standby specificata, nel momento in cui Data Guard Broker si accorge che l’istanza primaria è diventata inaccessibile, senza l’intervento di un DBA. Tramite Oracle Enterprise Manager è inoltre possibile: o Creare un physical o logical standby database partendo da una copia di backup consistente di un database primario. o Aggiungere un nuovo standby database ad una configurazione Data Guard già presente. o Monitorare l’intero sistema, verificando la frequenza di applicazione dei redologs, le informazioni relative a problematiche di disallineamento e performance. o Avviare o chiudere istanze. o Verificare eventi e schedulare jobs. o Avviare processi di backup e recovery. Pagina 9 di 11 Roberto Scarpitti Data Guard e le tecnologie avanzate di Oracle Per massimizzare i servizi in alta affidabilità rendendo i sistemi ancora più sicuri e facilmente ripristinabili a fronte di failure, Oracle integra in maniera del tutto nativa Data Guard con RAC, Flash Back Recovery e Recovery Manager. Oracle Real Application Clusters (RAC) Il connubio tra RAC e Data Guard porta ad avere i sistemi al più alto livello di protezione ed affidabilità, garantendo continuità di servizio a fronte di problemi hardware, software, corruzione dati e perdita di dati. Flashback Database Flashback Database consente invece di recuperare i dati a fronte di corruzione logica degli stessi o a fronte di errori umani, andando a ripristinare le informazioni ad un istante prima dell’avvenuta corruzione o perdita di dati, eliminando la necessità di restorare l’intero database da un backup consistente. L’utilizzo del Flashback Database consente inoltre di ridurre il tempo di delay di applicazione dei redologs sullo standby database, normalmente attuato per proteggere contro errori logici o di corruzione. Riducendo il tempo di delay si riduce anche il tempo di failover e di switchover. Infine attivando Flashback Database sullo standby database si evita di dover ricreare completamente i siti secondari dopo il failover. Recovery Manager (RMAN) Recover Manager(RMAN) è una feature integrata in tutte le installazioni Oracle che non necessita particolari configurazioni ma che, integrato con Data Guard, consente di creare un nuovo standby database dal backup del primario utilizzando il comando DUPLICATE, attivando le politiche di backup sullo standby database invece che sul primario. Pagina 10 di 11 Roberto Scarpitti Perché scegliere Oracle Data Guard 11g I principali benefici offerti da questa architettura sono principalmente 6: 1. Implementazione dell’alta affidabilità e protezione da eventi di disastro, grazie alla configurazione distribuita, ma anche di protezione a fronte di corruzione fisica dei dati, con bassi tempi di disservizio, garantendo zero data loss. 2. Differenziazione nella scelta delle politiche di implementazione di Data Guarding rispetto agli aspetti salienti quali performance, protezione dei dati e livello di servizio. 3. Centralizzazione e semplificazione del processo di gestione di Data Guard, con l’introduzione di Data Guard Manager, una interfaccia grafica di Oracle 11g. 4. Assunzione dei ruoli di Switchover per lo switch temporaneo del sito primario sullo standby, a fronte di manutenzione preventiva(reversibile) o del suolo di Failover in caso di disastro o failure(irreversibile). 5. Ottimizzazione delle risorse hardware utilizzate, riducendo il carico di lavoro sul server primario e distribuendolo invece sui siti di standby. 6. Integrazione di Data Guard con RAC ed RMAN che consente di garantire massima protezione, massima disponibilità e massime performance. Pagina 11 di 11