Ripristino di controlfile persi

mercoledì 6 febbraio 2008 alle 06:02 | Pubblicato su Backup and Recovery | 1 commento

Sono arrivato al capitolo 4 del libro “Oracle 10g Administration II” di Sybex, per la preparazione alla certificazione Oracle OCP.

Ho testato una cosa nuova: il ripristino dei soli controlfile. Ritengo che si tratti di una situazione rara, perdere tutti i controlfile e non il resto del database; però, se accade, è possibile ripristinarli, senza dover ripristinare il backup di tutto il database. Non dovrei dirlo, ma non pensavo fosse possibile e non ci avevo  mai provato prima di ieri (non mi è neanche mai servito per fortuna).

Su una cosa sono rimasto un po’ perplesso ed ho voluto approfondire l’argomento, il controlfile può essere ripristinato in due modi:

  1. ricreandolo con lo statement “CREATE CONTROLFILE …”
  2. ripristinandolo da un backup (tipicamente da RMAN)

Ieri facendo le prove sono rimasto perplesso dal fatto che ricreando i controlfile con lo statement “CREATE CONTROLFILE …” (generato a sua volta per comodità con “ALTER DATABASE BACKUP CONTROLFILE TO TRACE”) , usando la clausola NORESETLOGS, potessi riaprire il database normalmente, senza specificare RESETLOGS. Ripristinando invece il controlfile da un backup con RMAN cercando di aprire il database normalmente si ha invariabilmente il messaggio:

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
Che è un po’ fuorviante, infatti:

SQL>  alter database open noresetlogs;
alter database open noresetlogs
*
ERROR at line 1:
ORA-01588: must use RESETLOGS option for database open
e solo con il RESETLOG si può procedere:

SQL> alter database open resetlogs;

Database altered.

Ho trovato molto interesante la nota metalink 280380.1 che spiega come si comporta lo statement “CREATE CONTROLFILE …” nei due casi (RESETLOGS e NORESETLOGS).  La nota può essere accompagnata dalla nota 1012929.6 “How to Recreate the Controlfile” che spiega come ricreare i controlfile e dalla nota 1014504.6 “Recovering from a lost controlfile”.  Queste note, pur risultando aggiornate al 2007 sono senz’altro molto vecchie, lo si capisce dal nome dei file che citano la versione 7 di Oracle. In particolare sono rimasto perplesso da quanto viene suggerito sulla nota 1014504.6 “Recovering from a lost controlfile”, ovvero, se non si dispone dello statement completo di ricreazione del controlfile suggerisce di ripristinarlo da un backup, montare il database fare il “BACKUP TO TRACE” e a questo punto ricrearlo. Credo che questo doppio passo sia una cosa che forse era utile o necessaria nella versione 7, ma non ho trovato riscontri che lo rendano valido in versioni recenti (9iR2 e 10g).

In tutto questo ho ancora le idee confuse, ho sentito parlare di ripristino di database anche a cavallo di RESETLOGS, argomento sul quale però sono ancora completamente ignorante (dopo un resetlogs faccio sempre un bel backup nuovo e non ho mai avuto problemi).

1 commento »

RSS feed for comments on this post. TrackBack URI

  1. Evidentemente ricreando il controlfile da script manca l’SCN attuale, quindi il db assume che tutto sia a posto (!) derivandolo dagli header dei datafile e dai log, mentre ripristinandolo da backup è presente l’SCN, che è nel passato… boh, sono solo ipotesi.

    A proposito di ripristino tra resetlogs, mi vengono in mente le possibilità fornite da Flashback, descritte qui, ma ovviamente bisogna avere enterprise edition e flashback abilitato da prima di fare gli “esperimenti”.


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: