Oracle RESTORE POINT FLASHBACK
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