sábado, 27 de junio de 2009

Snapshot

Una Snapshot es la representación de una base de datos en un momento determinado.

Esta base de datos es de solo lectura y debe estar en el mismo servidor donde esta la base de datos original. No se puede realizar un backup ni mucho menos restaurarla.

La única manera de crear un Snapshot es por código T-SQL

Una Snapshot solo almacena copias de paginas de datos que fueron modificadas después de realizarse el Snapshot, de esta manera cuando se realiza un consulta sobre el Snapshot el motor de la BD realiza la búsqueda en las paginas de datos de la BD y en las de el Snapshot y de esta manera devuelve los resultados de la fecha correspondiente al Snapshot

La sintaxis es la siguiente

CREATE DATABASE Snapshotname ON
( NAME = Logicalfile , FILENAME =
'Physicalfilename' )
AS SNAPSHOT OF SnapshotThisDatabase;


Ejemplo:

CREATE DATABASE Prueba_10AM ON( NAME = Prueba, FILENAME = 'C:\BD\Prueba_10AM.ss' )AS SNAPSHOT OF Prueba;

Después de creado el Snapshot este puede ser utilizado como método para recuperar información perdida o dañada accidentalmente.

Existen 4 escenarios donde se puede recuperar información de in Snapshot

Registros borrados

INSERT INTO Ventas
SELECT *
FROM
Prueba_10AM.Ventas

Registros modificados

UPDATE ventas
SET Total = (
SELECT Total
FROM
Prueba_10AM.Ventas
WHERE anio = 2009)
WHERE anio = 2009

Objetos borrados

Se genera el script de creación del objeto, se corre en la base de datos y se rellena la tabla con la información del Snapshot

Restaurar todo el Snapshot

RESTORE DATABASE Prueba
FROM DATABASE_SNAPSHOT = 'Prueba_10AM'

No hay comentarios:

Publicar un comentario