Introduzione a Oracle Recovery Manager (RMAN)

venerdì 4 luglio 2008 alle 04:04 | Pubblicato su Backup and Recovery | 7 commenti
Tag: , , ,

Oracle Recovery Manager (comunemente chiamato con il nome dell’eseguibile RMAN) è il programma di gestione del backup dei database oracle fornito da Oracle stesso.

RMAN è stato introdotto da Oracle con la versione 8, nella versione 7 era presente un programma chiamato Enterprise Backup Utility (EBU).

Dalla versione 8 in poi RMAN è stato migliorato e corretto ed è arrivato ad essere uno strumento completo, potente e tutto sommato abbastanza facile da usare per gestire i backup (ed il loro eventuale ripristino) del database.

Sembra una banalità ma se si usa un database Oracle e si tiene un po’ ai dati in esso contenuti è assurdo non usare RMAN.  E’ assurdo non usare il database in modalità ARCHIVELOG, è assurdo non sfruttare la possibilità offerta da RMAN di fare backup a caldo. Per conto mio, a meno che non si abbia bisogno del massimo dellle prestazioni per grossi carimenti, il database deve essere in modalità ARCHIVELOG; è banale schedulare degli script che alla peggio cancellino brutalmente gli archive log che possono saturare lo spazio disco.

Pare incredibile, ma in giro per il mondo vi sono persone che usano database Oracle in produzione, con dati a cui tengono, in modalità NOARCHIVELOG, mah!? RMAN comunque può essere usato anche in questi casi per backup a freddo.

Concluse le premesse con le mie opinioni sulla gestione del backup di un database oracle riassumo molto brevemente le caratteristiche di RMAN.

RMAN mantiene un catalogo dei backup effettuati

Questo catalogo si trova sempre sul controlfile, ma in questo caso le informazioni sono mantenute per un periodo limitato dal parametro CONTROL_FILE_RECORD_KEEP_TIME, per evitare la crescita eccessiva del control file. Per default il parametro è settato a 7 il che significa che le informazioni sui backup effettuati vengono mantenute nei controlfile per sette giorni, dopo di che lo spazio viene riusato in modo circolare per scrivere nuove informazioni. In alternativa è possibile usare il cosiddetto “Recovery Catalog” che in pratica è un catalogo memorizzato su un’altro database. I vantaggi dell’uso di un Recovery catalog sono almeno tre:

  1. La perdita dei control file non comporta la perdita delle informazioni sui backup
  2. si possono mantenere facilmente le informazioni sui backup per periodi lunghi
  3. si possono utilizzare script memorizzati nel recovery catalog

Lo svantaggio è dato da un piccolo sovraccarico di gestione.

RMAN gestisce in modo automatico backup, restore e recovery

Se non si hanno esigenze particolari gestire il backup e l’eventuale ripristino con RMAN è molto semplice, perchè è quasi tutto automatico. RMAN è principalmente una utility Command Line Interface (CLI) cioè un programma a linea di comando (una cosa senz’altro abominevole per il tipico utente winzoz, ma per noi geek è il pane quotidiano). Fare un backup completo di un database a caldo può essere fatto così:


RMAN>BACKUP DATABASE FORMAT '/usr/backup/full_%U'
PLUS ARCHIVELOG ALL FORMAT '/usr/backup/arch_%U'
DELETE INPUT;

L’informazione su questo backup verrà salvata nel catalog (sia controlfile che recovery catalog se configurato), in caso di necessità il ripristino è altrettanto facile:


RMAN>RESTORE DATABASE;
RMAN>RECOVER DATABASE;
RMAN>ALTER DATABASE OPEN;

Effettimente il ripristino completo dell’operatività richiede ben tre comandi, però secondo me non è così male.

RMAN può fare backup completi e backup incrementali

RMAN è un programma molto efficente, può essere usato per fare backup a caldo, ma per quanto efficente inevitabilmente incide sulle prestazioni del database e per questo può essere che le finestre temporali in cui può essere fatto il backup siano ristrette; se il database è molto grande questo è un problema, allora è possibile utilizzare i backup incrementali, che fanno il backup solo delle parti di database modificate rispetto all’ultimo backup. Questo, assieme alla nuova caratteristica di 10g (nuova ormai da quattro anni) chiamata BLOCK CHANGE TRACKING può rendere le operazioni di backup molto veloci.  Se poi ci mettiamo anche gli “INCREMENTALLY UPDATED BACKUPS” abbiamo raggiunto il massimo perchè si elimina il problema che i backup incrementali complicano le operazioni di ripristino.

RMAN si integra con le unità a nastro

RMAN può fare backup direttamente sulle unità a nastro. Precedentemente all’uscita di Oracle Secure Backup era necessario che il fornitore dell’unità a nastro fornisse delle librerie che implementavano delle API Oracle per permettere l’integrazione tra RMAN e l’unità a nastro. Ora Oracle Secure Backup realizza tale integrazione per molte unità a nastro. Io ho utililizzato una Oracle Secure Backup con una unità a nastro X che avevo a disposizione in laboratorio (prima che venisse fulminata da un incauto pseudo-sistemista) con successo.

Con questo credo di aver riassunto molto sinteticamente le principali caratteristiche di RMAN. Ribadisco che si tratta di uno strumento molto potente, completo e piuttosto complesso. Permette di fare cose semplici in modo semplice ma offre anche molte possibilità, per i dettaglio non posso fara altro che rimandare ai manuali:

Basics

Advanced

Quick Start

7 commenti »

RSS feed for comments on this post. TrackBack URI

  1. Ciao Cristian, ho un dubbio su RMAN che magari riuscirai a chiarirmi. Nella mia installazione di oracle server 10g, ho notato che al riempimento dei redo, questi vengono archiviati da Oracle e gli archive log sono poi posizionati nella flash recovery area. Io ho uno script di backup per RMAN che esegue l’archiviazione del redo corrente e mette l’archive log così generato in una dir scelta da me. Ora, in caso di restore/recover non mi pare che gli archive creati da Oracle e posizionati nella flash recovery area vengano usati, quindi, di fatto, che me ne faccio? Inoltre, come posso tramite RMAN accedere alla flash recovery area?

    Ciao e grazie, Simone

  2. Ciao Simone,
    come ho scritto nel mio ultimo post, se non viene definita esplicitamente una destinazione per gli archived log ed è definita una flash recovery area (FRA) oracle in automatico mette gli archived log nella recovery area. Da qualche parte, se la modalità archivelog e attivata deve metterli. E’ chiaro che gli archived log generati prima di un backup completo dell’intero database non sono più necessari, rimangono indispensabili solo quelli generati dall’inizio del backup in poi.
    La gestione dei file nella FRA con RMAN è analoga alla gestione di tutti i file di backup ed in qualche modo automatica.

  3. […] interessanti. In particolare, ricollegandomi ad un mio post di qualche giorno fa (”introduzione a oracle recovery manager (RMAN)“), se qualcuno ha voglia (o bisogno) di esercitarsi con RMAN consiglio di leggersi il post […]

  4. Ho letto le tue indicazioni su RMAN. Molto utili: grazie per le info.
    Tutto ok, tranne l’irritante riferimento a Windows. L’apertura mentale di una persona è quella cosa che le consente di trovare il buono ovunque sia prodotto, e tu ti sei perso qualcosa, in questo campo, perchè mentre sfottevi me e qualche altro milione di sistemisti di area Microsoft, la suddetta ha fatto uscire dei prodotti efficienti, veloci, leggeri che stanno facendo – permettimi l’espressione – bruciare parecchio il culo ad Oracle e ad altri. guardati l’atteggiamento di VMWARE o di IBM degli ultimi mesi, ad esempio.
    Winzoz è morto, caro collega, adesso c’è in giro roba seria, e se non te ne accorgi sul binario morto ci finirai tu.

    • Ciao Enrico, grazie per il commento. Soprattutto mi fa piacere ricevere un commento sulla mia sempre maggiore avversione per ms windows che in modo dispregiativo chiamo spesso winzoz (nomignolo inventato da altri pero’). Non so bene cosa risponderti, se non che pur con tutto il mio il mio disappunto non si possa dire che sia così chiuso. Nella mia azienda si utilizza molto windows, sia come desktop che come server. Per mia passione mi tengo aggiornato anche sul mondo linux, la possibilità di provarlo gratuitamente è un vantaggio non da poco. Ogni volta cerco di confrontarlo con windows. L’unica cosa che ritenevo veramente valida in windows era il remote desktop che è nettamente più efficente di VNC, cosa importante fino a quando l’assistenza remota avveniva via ISDN, ora con le VPN la differenza è molto meno netta.
      Francamente credo che nel recente passato Microsoft abbia creato qualche preoccupazione ad Oracle, ma non so quanto sia vero questo nel passato più recente. Mi viene da pensare a cose come Oracle Exadata, penso che in campo “enterprise” Oracle non tema (per ora) Microsoft. Anche il prezzo delle licenze Entrerprise Edition di Oracle mi fa pensare che la concorrenza di Microsoft preoccupi poco.
      Per quanto riguarda VMWARE e IBM non capisco bene a cosa ti riferisci, non conosco bene la situazione di queste due società. Di VMWARE ho accennato qualcosa anche recentemente, mentre di IBM confesso di sapere veramente molto poco.
      Per quanto riguarda Windows sono fermo a diverse installazioni Windows 2003 server, i nostri sistemisti hanno probabilmente gia visto il 2008; ma il punto è che in molte cose Windows si è semplicemente allineata a quanto gia fornito da sistemi operativi *NIX da almeno vent’anni. Un’esempio tratto dalla mia esperienza: strumenti di diagnostica e di monitoraggio per fare il cosiddetto “performance tuning”. Per l’uso ristretto che faccio io del sistemo operativo sui server non mi aspetto nulla dalle ultime versioni di Windows, perchè il punto è sempre quello, su un Linux di 10 anni fa c’era gia tutto.

    • fonte microsoft:
      http://msdn.microsoft.com/en-us/library/cc917674.aspx

      “Microsoft® SQL Server™ 2005 includes a new technology called Row Level Versioning (RLV) that allows concurrent access to be handled in new ways.”

      Oracle lo implementa dalla versione 6 (1988)

      SQL Server 2005 poi è stata anche la svolta per quanto riguarda l’implementazione di un CBO degno di questo nome (Cost Based Optimizer),

      Oracle lo implementa dalla versione 7.0 (1992)

      questi sono fatti evidenze

      come dire, meglio tardi che mai

      per quanto riguarda il sistema operativo che adesso siano così leggeri veloci ed efficienti come tu dici permettici almeno il beneficio del dubbio 🙂

      sappi però che in effetti l’Oracle RDBMS gira assai bene anche sugli OS Microsoft

      Alessandro

  5. Volevo sapere come si effettua il backup e il restore con il comando RMAN. Inoltre volevo sapere dove posso trovare informazioni sul comando RMAN e informazioni relative alle varie operazioni che si posso effettuare usando RMAN.
    SALUTI
    dott. ugo montorsi
    mail dell’ufficio: ugo.montorsi@sin.it


Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Crea un sito o un blog gratuitamente presso WordPress.com.
Entries e commenti feeds.

%d blogger cliccano Mi Piace per questo: