Tuning size Redo Log Oracle

Pubblicato da Alessandro Caredda il

Nell’articolo Tuning size Redo Log Oracle, descrivo la modalità di dimensionamento dei REDO LOG.

I Redo Log sono file dove vengono registrate tutte le operazioni DDL e DML eseguite nel database.
Vengono creati durante la fase di creazione del database e di default vengono creati 3 REDOLOG. Se attivata la funzionalità Multiplexing, i REDOLOG saranno duplicati in diverse posizioni.

Grazie a questi file, insieme agli archive log, abbiamo la possibilità di eseguire il ripristino dei dati esattamente nel momento in cui gli impostiamo il ripristino.

Questi file sono di vitale importanza nel database, proprio per via del ripristino dei dati che Oracle deve essere sempre in grado ripristinare, quindi, nel caso in cui non fosse più possibile aggiornare i REDOLOG, per esempio per problemi di spazio, il database va in crash.

I REDO LOG hanno 3 tipi di stato: ACTIVE, INACTIVE e CURRENT.

Quest’ultimo stato è relativo al file in fase di aggiornamento ossia in fase di scrittura.
Quando raggiunge la dimensione massima, il contenuto viene scritto su un ARCHIVELOG dal processo ARC, il REDOLOG svuotato passa allo stato INACTIVE, il REDOLOG INACTIVE passa allo stato ACTIVE e il REDOLOG ACTIVE passa allo stato CURRENT.

Questo ciclo viene gestito in maniera autonoma da Oracle e i file vengono incrementati in base all’attività del database. Più attività vengono svolte nel DB, più le scritture saranno frequenti.

Se i REDOLOG sono sotto dimensionati rispetto all’attività del database, ci saranno frequenti switch ciclici e questo può causare gravi problemi di performance.

L’unico modo per gestire la frequenza di switch è regolare la dimensione dei file, più aumenta la dimensione, più diminuisce la frequenza.

Ma come possiamo regolare la corretta frequenza?

Tuning size Redo Log Oracle

Secondo il documento ufficiale Oracle General Guideline For Sizing The Online Redo Log Files (Doc ID 781999.1), non c’è una linea ben definita per la dimensione, poichè non tutti gli ambienti hanno la stessa configurazione.

Indicativamente bisogna impostare 1 switch ogni 20 minuti ossia intorno ai 5 switch l’ora.

Quindi come prima operazione dobbiamo individuare quanti switch vengono effettuati in media, e questo può essere effettuato dalla query riportata nell’articolo Query REDO LOG numero switch

Se vediamo uno switch eccessivo dobbiamo aumentare la dimensione dei REDO LOG.

Quest’operazione va effettuata in un momento di basso carico del database, poichè i frequenti switch non vi permetterebbero di operare sul singolo REDO LOG.

Quindi per individuare il momento in cui il DB produce meno archive è possibile attraverso la query utilizzata in precedenza dell’articolo Query REDO LOG numero switch.

Quando l’attività di switch è minore possiamo procedere.

Con la query dell’articolo Query REDO LOG nome file e status, recuperiamo nome, dimensione e status dei REDO LOG come il seguente output:

 GROUP# MEMBER                              STATUS                  Size MB
------- ----------------------------------- -------------------- ----------
      1 /dati/XE/redo01.log                 CURRENT                     200
      2 /dati/XE/redo02.log                 INACTIVE                    200
      3 /dati/XE/redo03.log                 ACTIVE                      200

In questo caso partiamo dal REDO LOG con STATUS INACTIVE.

Quindi eseguiamo il seguente comando:

 alter database add logfile group 4 '/dati/XE/redo04.log' size 300M;
 alter database add logfile group 5 '/dati/XE/redo05.log' size 300M;
 alter database add logfile group 6 '/dati/XE/redo06.log' size 300M;

Successivamente dobbiamo eliminare i precedenti REDO LOG, ma prima dobbiamo eseguire lo switch del REDO LOG CURRENT verso i nuovi REDO.

Questo avviene attraverso il seguente comando:

alter system checkpoint;
alter system switch logfile;

Controlliamo se lo stato CURRENT è passato ai nuovi REDO LOG.

Successivamente eseguiamo la DROP dei REDO LOG con la precedente dimensione con il seguente comando:

alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;

Per qualsiasi dubbio non esitate a commentare l’articolo.

Per visionare le mie guide sui Comandi CRS clicca qui!
A questo LINK, invece, troverai le query SQL

Resta aggiornato sulle nostre attività entrando a far parte della nostra community:
Facebook
Youtube
Linkedin


0 commenti

Lascia un commento

Segnaposto per l'avatar