I BACKUP SET di RMAN

giovedì 30 ottobre 2008 alle 30:46 | Pubblicato su Backup and Recovery | Lascia un commento
Tag: , , , , ,

In questi giorni ho un po’ approfondito la mia conoscenza di RMAN. I dettagli di questo potente strumento di backup fornito da Oracle sono veramente tanti e infatti per anni ho utilizzato una consolidata procedura di backup senza conoscere alcuni dettagli di cui in questo post parlerò e soprattuto senza avere problemi.

RMAN è ingrado di produrre due tipi di backup, le copie e i backup set. Le copie sono copie identiche dei datafile o degli archivelog o del control file che non sono ottimizzate. Le copie hanno due vantaggi, uno è che possono essere ripristinate anche senza RMAN (vantaggio da poco direi) e il loro ripristino è più efficente perché consiste solo in una copia. Al contrario i backup set sono in formato proprietario, quindi leggibili e ripristinabili solo con RMAN, essi però sono ottimizzati nel senso che Oracle non include nei backup set quei blocchi dei datafile mai utilizzati; quindi un backup set di un database con file grandi ma con pochi dati (perchè nuovo, in genere) può risultare molto piccolo. Questo vantaggio probabilmente si paga un pochino con una minor efficenza nel ripristino, infatti oracle deve “ricostruire” i datafile.

Vi sono altre due differenze fra le copie immagine e i backup set: i backup set possono essere creati sia su disco che su tape e da Oracle 10g (solo Enterprise Edition) possono essere compressi; le copie possono essere fatte solo su disco e la loro compressione non è supportata da RMAN.

Un backup set, stando al manuale, è la più piccola unità di un backup, nel senso che se la crezione di un backup set fallisce tale backup set non è valido. Una procedura di backup può creare più backup set ed ogni backup set consiste in uno o più file, chiamati backup piece.

Una delle caratteristiche dei Backup Set è che contengono solo file con dimensione del blocco omogeneo, quindi, ad esempio se nel database vi sono tablespace con dimensione del blocco diverse, ad esempio 8k e 16k  vengono creati due backup set distinti.  Sui manuali non ho trovato riferimento a questa caratteristica, ma solo un riferimento al caso del control file; da questo e da un mio test ho desunto quanto ho detto.

RMAN utilizza il concetto di “channel” la cui definizione per me non è mai stata chiara. Credo che sia il modo di chiamare lato RMAN i processi server che fisicamente scrivono i backup. RMAN permette di migliorare le prestazioni dei backup parallelizzando le operazioni sfruttando più channel. In sostanza nella creazione di un backup, attraverso algoritmi suoi RMAN crea tanti backup set quanti sono i channel allocati e li scrive in parallelo. L’utilità è facilmente comprensibile se si pensa all’utilizzo di due tape drive. Qui devo devo dire che non avendo mai approfondito prima pensavo che tale parallelizzazione avvenisse a livello di backup piece invece RMAN non è in grado di parallelizzare la scrittura di più backup piece per un backup set. Credo che l’unica vera utilità del backup piece sia quella di poter spezzare il backpup in file di dimensione arbitrariamente piccola. Infatti la dimensione di un backup set può essere limitata con la configurazione del parametro MAXSETSIZE (configurazione che può essere memorizzata con il comando CONFIGURA MAXSETSIZE …) il valore di questo limite però non può essere inferiore alla dimensione di alcun datafile, altrimenti la creazione del backup set fallisce.

RMAN> backup datafile 4 maxsetsize 500 M;

Starting backup at 30-OCT-08
using channel ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 10/30/2008 16:41:38
RMAN-06183: datafile or datafile copy larger than MAXSETSIZE: file# 4 /opt/oracle/oradata/test102/users01.dbf

RMAN fa un controllo prima di iniziare.

Come di vede dall’esempio il maxsetsize può essere anche specificato direttamente con il comando di backup. Stando al manuale questo parametro può essere utile se si vuole avere garanzia che ogni backup set stia su una cassetta.

Più interessante (e per un po’ è stato misterioso per me) è il parametro FILESPERSET, che purtroppo però non è configurabile in modo permanente con il comando CONFIGURE di RMAN. Esso è solo utilizzabile come parametro del comando backup, limita il numero di file del database che vengono inclusi in un backup set. La prima conseguenza di ciò è quella di limitare l’uso di risorse di RMAN limitando il “multiplexing” ovvero la caratteristica per cui Oracle legge contemporanemante da più file quando crea un backup set e “mischia” i blocchi dei vari file dentro il backup set. Questa caratteristica in teoria è un po’ obsoleta in quanto superata dal parametro RATE e DURATION (che se non erro sono nuovi in 10g).

Per quanto rigurda la parallelizzazione, nei mie test di backup su disco, con allocazione automatica dei canali ho visto che l’unica configurazione che influisce è CONFIGURE DEVICE TYPE DISK PARALLELISM … per il resto rimando al manuale per i dettagli.

In diverse parti dei manuali, ad esempio qui e qui si dice che per default oracle mette 4 datafile per backup set e 16 archivelog per dataset. Però dai miei test ciò non risulta e nella definizione di FILESPERSET si parla di 64, non so se mi sfugge qualcosa o se c’è un errore nella documentazione.

Con questo post ho cercato di riordinarmi le idee su quello che ho appreso di nuovo riguardo i backup set di RMAN. Ripeto, i dettagli sulle configurazioni e sull’utilizzo di RMAN sono molti, non a caso vi sono migliaia di pagine di Manuali, però un passo alla volta si riesce ad avere una panoramica sempre più ampia.

Lascia un commento »

RSS feed for comments on this post. TrackBack URI

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...

Blog su WordPress.com.
Entries e commenti feeds.

%d blogger cliccano Mi Piace per questo: