Dependiendo del tamao del tablespace UNDO y de la cantidad de transacciones
que realicemos en la base de datos podremos recuperar mas o menos informacin a lo largo del tiempo. El flashback query y el flashback table estn pensados para recuperar los datos a un momento anterior si los datos no estn disponibles en el tablespace UNDO recibiremos un error y no podremos recuperar la informacin. El flashback database esta pensado solo para cuando alguien reali!a un proceso que no se pueda recuperar con el flashback query o el flashback table e"emplo borrar un esquema completo o un proceso de borrado de facturas en el que el usuario se ol#ida de informar los campos desde$hasta factura % y las borra todas & . 'equiere parar la base de datos abrir la base de datos en modo mount y recuperar a una hora antes o a () minutos antes. El flashback database requiere acti#ar la base de datos para flashback definir un directorio para almacenar los flashback archi#e logs e implementar pol*ticas de borrado de los logs #*a rman. +ara los programadores con las opciones flashback ,uery y flashback -able hay suficiente. El flashback database es una tarea de dba. +ara mas informacin ad"unto .OO/.+D0 consultar cap*tulos 12 y 13 ORACLE FLASHBACK ( Query , Table y Daabase ! 4onfiguracin del tablespace UNDO 5,67 58O9 +:':;E-E' UNDO N:;E -<+E =:6UE $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ undo>management string :U-O undo>retention integer (?3?? undo retention in seconds undo>tablespace string UNDO-.5( "! Flas#bac$ Query co%%an& 0uncionan desde Oracle@i Utili!an el -:.6E5+:4E UNDO para reconstruir los datos a una fecha determinada. Ejemplos : Select * from clientes as of timestamp ( sysdate-5/1440 ) /* 1 dia tiene 24*601440 min!tos */ S"S#$%E-5 min!tos Select * from clientes as of timestamp ( sysdate-1 ) Select * from clientes as of scn (&455666) /* m!estra las filas de la ta'la en el momento de tiempo del scn Select * from $(%)*+,-S $S -. %)/ES%$/0 to1timestamp(221-3+4-05 16:01:00272##-/-4-"" 824:/):SS2) 98E(E *-#):-1artic!lo2201&-2-2 SC' ( Syse% C#an)e 'u%ber Oracle internamente utili!a 54N no el system -A;E5-:;+ para almacenar los datos de flashback . 6a tabla 5<5.5;ON>54N>-A;E tiene la equi#alencia entre 5<5-E;-A;E5-:;+ y el 54N correspondiente 5e almacena un registro cada ) minutos aproBimadamente 5e almacenan un total de (CC? registros en esta tabla 4uando accedemos #*a :5 O0 -A;E5-:;+ #a a buscar a esta tabla el 54N que mas se parece a ese -A;E5-:;+ select * from S"S;S/-41S*41%)/E /* <=) m!estra 1440 re>istros con %)/ES%$/0-S*4 ES0$*)$#-S cada 5 min!tos -SE$ 5 #)$S select ora1ro?scn 7 scn1to1timestamp(ora1ro?scn) 7 a;* from clientes a order 'y ora1ro?scn desc /* 10: m!estra cada fila con el @ltimo scn y el timestamp correspondiente al @ltimo cam'io
select codi>o1rapido 7 nom're 7 Aersions1startscn 7 Aersions1starttime 7 Aersions1endscn 7 Aersions1endtime 7 Aersions1Bid 7 Aersions1operation from clientes Aersions 'et?een timestamp to1timestamp(226-3+4-05 21:&5:00272##- /-4-"" 8824:/):SS2) and sysdate --to_timestamp('28-JUN-07 21:44:01','DD- MON-YY HH24:MI:SS' ?Cere codi>o1rapido 20665&52 /* 10: m!estra todas las Aersiones de la select entre los 2 periodos
select * from flasC'acD1transaction1E!ery ?Cere lo>on1!ser not in (2S"S272S"S/$42) order 'y start1timestamp /* 10: m!estra informaciFn de la transacciFn asG como la instr!cciFn SH, para desCacer *! Flas#bac$ able co%%an& ("+,! Utiliza el tablespace UNDO para recuperar la informacin. El recyclebin ( papelera de reciclaje ) esta disponible a partir de 10 !las"bac# table esta disponible a partir de 10 $ermite recuperar una tabla dropada % recuperar una tabla a un tiempo anterior drop ta'le clientes cascade constraints
select * from recycle'in
select * from !ser1recycle'in select * from d'a1recycle'in select * from IJ)4K/221J/$a5m&>H:S$yHpp-?K0I
flasC'acD ta'le clientes to 'efore drop
flasC'acD ta'le clientes to 'efore drop rename to pp&&
p!r>e recycle'in
alter ta'le clientes ena'le ro? moAementL flasC'acD ta'le clientes to timestamp ( sysdate-5/1440) -! Flas#bac$ &aabase co%%an& ("+,! !&'()*'+, D'-'*'(E $ermite recuperar una base de datos "acia atr.s en el tiempo sin tener /ue restaurar arc"i0os de bac#up. $ara restaurar la base de datos debe de estar en modo mount (ir0e para cuando al1uien sin /uerer se car1a un es/uema completo o lanza un proceso /ue to/ue muc"as tablas y sea de dif2cil recuperacin manual. Necesita un directorio para depositar los flas"bac# arc"i0e redo lo1s Utiliza los flas"bac# arc"i0e redolo1s almacenados en la flas" reco0ery area. !las"bac# table y !las"bac# /uery tiran del tablespace UNDO % !las"bac# database tira de los flas"bac# arc"i0e redo lo1s. Necesita /ue la base de datos ten1a acti0ada la opcin flas"bac#3on $recisa una estrate1ia de bac#up con rman para borrar esos flas"bac# arc"i0elo1s (i se supera el espacio asi1nado a la reco0ery area 4db3reco0ery3file3dest3size4 se para la base de datos "asta /ue el dba libere espacio o ampl2e el par.metro 4db3reco0ery3file3dest3size4 select * from AKflasC'acD1data'ase1lo> select c!rrent1scn 7 flasC'acD1on from AKdata'ase ---------- pa!amet!os d'1flasC'acD1retention1tar>et 1440 -- Ma"im#m $%as&'a() Data'ase %o* !ete+tio+ time i+ mi+#tes, d'1recoAery1file1dest1siMe 10: -- -ata'ase !e(o.e!/ 0i%es si1e%imit d'1recoAery1file1dest *:NoracleNprod!ctN10;2;0/flasC1recoAery1area -- -ata'ase !e(o.e!/ 0i%e %o(atio+ ---------- a(ti.a! 0%as&'a() -ata'ase start!p mo!nt eBcl!siAeL alter data'ase arcCiAelo>L alter data'ase flasC'acD onL alter data'ase openL ---------- -esa(ti.a! 0%as&'a() -ata'ase start!p mo!nt eBcl!siAeL alter data'ase flasC'acD offL alter data'ase openL ---------- !esta#!a! 'ase -e -atos a #+ tiempo sC!tdo?nL start!p mo!nt eBcl!siAeL flasC'acD data'ase to timestamp sysdate-1/24L alter data'ase open resetlo>sL ---------- (#a+-o se s#pe!a e% .a%o! -e 2d'1recoAery1file1dest1siMeO %a 'ase -e -atos se -etie+e Opcin ( & .orrar con un comando del sistema operati#o los flashback archi#e logs rman connect target D crosscheck archi#elog allE delete eBpired archi#elog allE eBitE Opcin 1 & rman connect target D delete archi#elog all eBitE Opcin F & :lter system set d'1recoAery1file1dest1siMe 50: scope 'otCL :+UN-E5 EN 6ANUG +:': 6A;+A:' 6O5 .:4/U+ ';:N < :'48A=E 'EDO 6OH5 loginI oracle
eBport N65>6:NHJ:;E'A4:N>:;E'A4:.9E3A5O33)@+()
KO':46E>8O;EDbinDrman target sysDsys nocatalog
';:N7 delete backup of databaseE ';:N7 delete backup of archi#elog allE ';:N7 delete archi#elog allE ';:N7 delete backup of controlfileE ';:N7 delete backup of spfileE ';:N7 eBitE ;onitori!ar tablespace UNDO select * from AK!ndostat