Oracle RESTORE POINT FLASHBACK

Pubblicato da Alessandro Caredda il

Con l’articolo Oracle RESTORE POINT FLASHBACK, vi mostrerò come ripristinare il database, attraverso la creazione di uno o più RESTORE POINT da applicare in caso di rollback su attività andate male.

Per un cliente che ha dovuto applicare aggiornamenti sull’applicazione e sulla modifica delle strutture dati sul database Oracle dovevamo salvare i dati prima di questa attività invasiva.

Oracle offre diverse soluzioni per salvare i dati. E’ possibile effettuare un backup e successiva restore con duplicate, soluzione efficace ma sicuramente troppo onerosa in termini di tempo.

Un’altra soluzione valida è effettuare il salvataggio dei dati a livello logico, quindi con il tool export / import in datapump.
Eseguire l’export di uno schema prima di svolgere l’attività, può essere una soluzuine valida.
I dati e i metadati saranno salvati su un file dump esterno al database scaricato su File System del sistema operativo.
Il ripristino avverrebbe con la cancellazione dello schema esistente e impdp dello schema salvato in precedenza con l’export.
Come detto prima, anche la modalità di export e import in datapump è molto efficace, ma non la più veloce sul ripristino.

La soluzione più veloce nel ripristino di un database è la creazione di un RESTORE POINT prima di effettuare particolari modifiche.

A fronte di un attività che implica un fermo applicativo e occorre salvare i dati in via preventiva, bisogna creare un RESTORE POINT con il seguente comando:

Oracle RESTORE POINT FLASHBACK

CREATE RESTORE POINT "NOME_RESTORE_POINT" GUARANTEE FLASHBACK DATABASE;

A questo punto il RESTORE POINT è stato creato, il quale è possibile controllare la sua presenza con la seguente query:

col name for a40
col time for a50
set linesize 200
select NAME,SCN,TIME from v$restore_point;

Se l’attività di aggiornamento è terminata con successo, sarà possibile eliminare il restore point con il seguente comando:

DROP RESTORE POINT "NOME_RESTORE_POINT";

Non scordatevi di cancellarlo, poichè lasciandolo aperto saturerete la flash_recovery_area.

Nel caso in cui l’attività é andata male, e dovete ripristinare il sistema al momento in cui è stato creato il restore point occorre chiudere completamente il database e successiva apertura in mount con i seguenti comandi:

shutdown immediate
startup mount

Nel caso in cui fosse un RAC, eseguire lo startup di una sola istanza con l’articolo srvctl start instance e per ripristinare il database eseguire il seguente comando:

FLASHBACK DATABASE TO RESTORE POINT "NOME_RESTORE_POINT";

Infine per rendere il database disponibile eseguire la open resetelogs con il seguente comando:

ALTER DATABASE OPEN RESETELOGS;

Nel caso in cui fosse un RAC, una volta aperta la prima istanza, è possibile startare tutte le altre istanze del RAC.

A questo punto, il database sarà tornato allo stato in cui è stato genereto il RESTORE POINT.

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


0 commenti

Lascia un commento

Segnaposto per l'avatar