Kosmous beyond the clouds: Sviluppo, Formazione e Consulenza Informatica

Oracle DBA 9i - Cap. 6

Per default un database Oracle funziona in modalità NOARCHIVELOG, ma è possibile cambiare lo stato in qualunque momento in ARCHIVELOG.
La modalità ARCHIVELOG prevede l’attivazione del processo ARCn il cui compito è di eseguire una copia dei RLF prima che essi vengano sovrascritti da LGWR.
In questo modo si tiene traccia di tutti i comandi di modifica eseguiti sul database.
I vantaggi dell’ARCHIVELOG sono essenzialmente:

  • Maggiori opzioni disponibili per il Backup ed il Recovery
  • Update di database in Stand By
  • Utilizzo di Log Miner

I parametri di inizializzazione (PFILE o SPFILE) relativi all’Archiving sono:

LOG_ARCHIVE_DEST
indica la directory in cui verranno creati i file archiviati (ARLF Archived Redo Log Files). Se volessi cambiarla posso usare il comando:
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST=‘nuova_dir’;
LOG_ARCHIVE_DUPLEX_DEST
Serve quando si vuol avere più di una copia degli RLF: indica la seconda directory in cui verrà eseguita l’ulteriore copia. Questo parametro può essere obbligatorio od opzionale, dipende dal valore del parametro: LOG_ARCHIVE_MIN_SUCCEED_DEST (vedi dopo).
Anche questo parametro può essere modificato con ALTER SYSTEM:
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST=‘seconda_dir’;
LOG_ARCHIVE_DEST_n
Questo parametro è simile al precedente, ma permette di specificare fino a 10 destinazioni diverse, sia in locale che su Pc remoti (utile nel caso si abbiano Database in Standby). Tuttavia questo parametro non è compatibile con LOG_ARCHIVE_DEST e LOG_ARCHIVE_DUPLEX_DEST
La sintassi è:
LOG_ARCHIVE_DEST_n = “null_string” |
         ((SERVICE =  | LOCATION = ‘’)
           [MANDATORY | OPTIONAL]
           [REOPEN [= ]])
dove:

    SERVICE lo uso se ho un Database remoto
    (Es: LOG_ARCHIVE_DEST_2='SERVICE=standby1')

    LOCATION indica la directory nel filesystem
    (Es: LOG_ARCHIVE_DEST_1='LOCATION=c:bkarc')

    MANDATORY indica che archiviazione è obbligatoria, cioè deve avvenire con esito positivo prima che LGWR possa sovrascrivere il file.

    OPTIONAL, che è il default, indica che il RLF originale può essere sovrascritto, anche nel caso in cui l’operazione di copia specificata ha esito negativo, a patto che sia stato raggiunto il valore indicato da LOG_ARCHIVE_MIN_SUCCEED_DEST.

    REOPEN indica dopo quanti secondi (default è 300) ARCn deve riprovare l’operazione di copia se la prima volta essa ha avuto esito negativo.

LOG_ARCHIVE_MIN_SUCCEED_DEST
Indica il numero minimo di destinazioni del processo ARCn (il default è 1) che devono avere esito positivo affinché LGWR possa continuare con la sovrascrittura degli RLF.
Esempio: Se lo imposto a 1 e sto usando sia LOG_ARCHIVE_DEST che LOG_ARCHIVE_DUPLEX_DEST significa il primo è obbligatorio, ed il secondo opzionale. Se invece lo imposto a 2, allora entrambi diventano obbligatori.
Ovviamente il parametro non può avere un valore maggiore del numero di destinazioni abilitate.
Se invece è minore delle destinazioni impostate a MANDATORY, il parametro viene ignorato.

LOG_ARCHIVE_FORMAT
Indica il formato dei files che vengono creati dall’ARCn. Posso usare variabili quali %S o %s che indicano il log sequence number (LSN) con o senza gli zeri di riempimento, e %t o %T che indica il Thread. I numeri di sequence (LSN) coincidono con quelli già visti nella sezione dedicata agli RLF. Esempi:

LOG_ARCHIVE_FORMAT=arch%s.arc
Genererà i files: arc200.arc, arc201.arc

LOG_ARCHIVE_FORMAT=arch%S.arc
Genererà i files: arc00200.arc, arc00201.arc

LOG_ARCHIVE_MAX_PROCESSES
Indica il numero di processi ARCn da attivare, e per default vale 1.

LOG_ARCHIVE_START
Può valere TRUE (processo ARCn attivato) o FALSE (ARCn non attivato)
Posso comunque attivare il processo in qualunque momento usando:
SQL> ALTER SYSTEM ARCHIVE LOG [START | STOP];


6.1 Abilitare ARCHIVELOG
Per passare dalla modalità NOARCHIVELOG alla modalità ARCHIVELOG devo:

1) Eseguire lo SHUTDOWN

2) Impostare i parametri opportuni per attivare il processo ARCn e specificare sia il formato dei file che la directory in cui dovranno essere salvati.
(es LOG_ARCHIVE_START=TRUE e LOG_ARCHIVE_DEST=..)

3) Eseguire lo STARTUP MOUNT

4) Modificare lo stato del database mediante il comando:
SQL> ALTER DATABASE ARCHIVELOG [NOARCHIVELOG];
5) Aprire il database con:
SQL>ALTER DATABASE OPEN;
NB: Se il DB è in ARCHIVELOG, e non ho attivato il processo ARCn, quando i RLF si riempiono il Database si blocca. In ogni momento posso archiviare manualmente gli RLF con il comando:
SQL> ALTER SYSTEM ARCHIVE LOG ALL;
6.2 Viste di sistema

Per ricavare informazioni sullo stato dell’Archive o sui log prodotti, posso usare diversi comandi o viste:
SQL> ARCHIVE LOG LIST;
Devo essere connesso come SYDBA (utente SYS ad esempio), e ricavo:
  • Modalità di log del database
  • Archiviazione automatica
  • Directory di destinazione dell'archiviazione
  • Sequenza di log in linea meno recente
  • Sequenza di log corrente

V$DATABASE
Indica se il database è in ARCHIVELOG o in NOARCHIVELOG. Es:
SQL> SELECT log_mode FROM V$DATABASE;
V$LOG
V$LOGFILE
V$LOG_HISTORY

Descritte nel capitolo precedente.

V$THREAD
Restituisce informazioni sui thread del database come il nome dell’istanza, lo stato del thread, il log sequence, SCN, checkpoint timestamp. Poco significativa se ho una sola instanza.


V$ARCHIVED_LOG
Restituisce informazioni sui file archiviati.

V$ARCHIVE_DEST
Restituisce informazioni sulle directory di destinazione in cui verranno creati i file archiviati, e sullo loro stato come MANDATORY o OPTIONAL (colonna BINDING), se la destinazione è locale (PRIMARY) o remota (STANDBY) (colonna TARGET).


V$ARCHIVE_PROCESSES
Restituisce informazioni sullo stato (IDLE, o BUSY) dei processi ARCn, se sono attivi etc.



Vi invitiamo ad inviarci commenti, eventuali segnalazioni di errore e quant'altro.



Questo documento non è un documento ufficiale della Oracle Corporation. Oracle detiene tutti i diritti sulla propria documentazione. Alcuni termini usati sono trademarks registrati. In caso di dubbi o incertezze consultate la documentazione ufficiale di Oracle o contattate il Customer Support di Oracle.
<< Capitolo 5 Capitolo 7 >>
Commenti (0)2005-04-04