Recover database until time
1. Recuperar una base de datos en un punto determinado en el tiempo
En algunos casos puede suceder que alguien realice una actualización o ejecute algún procedimiento erróneo y queramos retroceder en el tiempo para volver al punto justo antes de que se lanzara este procedimiento o actualización.
Nota: Para realizar esta recuperación la base de datos tiene que estar puesta en modo archivelog y tener los archivelog correspondientes a las transacciones que queramos recuperar para poder volver al punto en el tiempo indicado.
2. Instrucciones necesarias
Teniendo en cuenta que nuestra base de datos está levantada los pasos a seguir son los siguientes:
Nos conectamos a la base de datos
SQL > connect / as sysdba
Bajamos la instancia de base de datos
SQL > shutdown immediate
Levantamos la instancia en modo mount
SQL > startup mount
Recuperamos la base de datos hasta la fecha indicada (punto en el tiempo al cual queremos retroceder)
SQL > recover database until time '2007-01-10:22:59:04'
Con esto hemos conseguido recuperar la instancia en el momento indicado en la fecha (‘2007-01-10:22:59:04’ à 10 de enero de 2007 a las 22 horas 59 minutos y 4 segundos)
Con relación a la fecha el formato por defecto es el siguiente: ‘YYYY-MM-DD:HH24:MI:SS’
Podria en un momento dado hacer un rollforward , por ej un respaldo del jueves por ejemplo y aplicar los archlog del viernes a una hora especifica ?
Que pasa si tu tratas de recuperar en un ambiente que no es el productivo, ya que necesitan ver una informacion que ya no se encuentra en el ambiente productivo actual, se tienen los respaldos y los log de la fecha que se necesita restaurar en un area de restauracion, como le indicas tu al sistema que vaya a restaurar con los log que se encuentran en esta area de restauracion y no los del productivo??
Gracias por el post, después de un restore segui los pasos, pero tuve que añadir lo siguiente:
recover database until time ‘2019-10-20:06:01:57’ USING BACKUP CONTROLFILE;