# Continuamos con el restore...

Y para que nos sirve el backup?

Para ayudarnos con la recuperabilidad de la base de datos. Y que podemos recuperar?

La base de datos completa

Un tablespace especifico

Un datafile

archivelog

controlfiles

Inclusive recuperar la base de datos a un momento exacto en el tiempo (\*\*Acá también podríamos usar flashback database)

Y cual es la diferencia entre restore y Recovery?

**Restore:** copia desde los backups hacia su ubicación original o nueva ubicación.

Recovery: consiste en aplicar redos y archívelos sobre los archivos restaurados para llevarlos a un estado consistente.

![](https://cdn.hashnode.com/uploads/covers/6a1ba5f97c924da4619cfa34/f942af60-e962-4f66-a287-ca92722dec53.png align="center")

En la infografia vemos como es el proceso de backup , restore y recovery cuando se presenta un incidente de base de datos.

Ahora veremos en la práctica el proceso que podríamos seguir cuando perdemos un datafile.

1.  Tener un backup del datafile o de la base de datos total.
    
2.  También ayuda el tener un inventario de los datafiles de nuestra base de datos.
    
    ![](https://cdn.hashnode.com/uploads/covers/6a1ba5f97c924da4619cfa34/a9d653c1-eb6b-47bd-aeca-5dd5b50308c4.png align="center")
    
3.  Cuando sospechamos de algún problema en la base datos, recomiendo revisar el alert log para obtener detalles. En la imagen vemos que el datafile 7 no puede ser leído , lo cual es indicio de que el archivo pudo ser borrado o esta corrupto , en cualquiera de los casos procedemos con la restauración del archivo desde un backup.
    
    ![](https://cdn.hashnode.com/uploads/covers/6a1ba5f97c924da4619cfa34/35da62f0-84f3-46ef-a317-fba05366dfe8.png align="center")
    
4.  Restauramos el datafile 7. Sin embargo vemos que sale error indicando que el archivo no puede ser tomado en modo exclusivo porque esta en uso; sin embargo el error del punto 3 indica que el archivo no existe.
    
    ![](https://cdn.hashnode.com/uploads/covers/6a1ba5f97c924da4619cfa34/fd6318bd-26de-4ffc-8b45-0c4b903a6564.png align="center")
    
5.  Validaremos si el archivo existe a nivel de sistema operativo, también pudo haber estado en ASM.
    
    ![](https://cdn.hashnode.com/uploads/covers/6a1ba5f97c924da4619cfa34/f71b38b5-6712-4cff-a97a-d078041bcd01.png align="center")
    

El archivo no existe, validamos a nivel de base de datos cuál es el estado del datafile.

> `SELECT file#, name, status, enabled FROM v$datafile WHERE file# = 7;`

![](https://cdn.hashnode.com/uploads/covers/6a1ba5f97c924da4619cfa34/0769f0eb-23c2-4f1b-8d37-adcbe0239050.png align="center")

Aca esta el detalle, para oracle el datafile 7 sigue estando online, a pesar de ya no existir , para poder realizar el restore lo ponemos offine.

> `ALTER DATABASE DATAFILE 7 OFFLINE;`

![](https://cdn.hashnode.com/uploads/covers/6a1ba5f97c924da4619cfa34/084129af-d922-4e5f-ac65-58c27f51e6d6.png align="center")

6.  Realizamos nuevamente el restore del datafile 7.
    
    ![](https://cdn.hashnode.com/uploads/covers/6a1ba5f97c924da4619cfa34/f5d40854-d951-4eca-8104-6774512dc56e.png align="center")
    
7.  Luego hacemos el recover del datafile 7.
    
    ![](https://cdn.hashnode.com/uploads/covers/6a1ba5f97c924da4619cfa34/fca91d84-e518-40d6-800e-0b64ba232921.png align="center")
    

![](https://cdn.hashnode.com/uploads/covers/6a1ba5f97c924da4619cfa34/e8250ac8-9bbb-492e-9ecc-c913e0237a97.png align="center")

8.  Luego procedemos a poner online el datafile 7 .
    
    ![](https://cdn.hashnode.com/uploads/covers/6a1ba5f97c924da4619cfa34/63a87936-fbba-4751-8767-994a3f39a281.png align="center")
    

**Tip:** Revisar el alert log para tener mas detalles del problema.

**Nota:** Hay diferentes tipos de restores, algunos se pueden hacer con la base de datos abierta y otras no, se recomienda revisar la documentación para cada caso.

**Recomendación:** El tener una adecuada estrategia de backups nos permitirá resolver satisfactoriamente incidentes de disponibilidad de base de datos.
