sql >> Base de Datos >  >> RDS >> Sqlserver

Instantáneas de la base de datos de SQL Server -4

Hola

Continuaré explicando las instantáneas de la base de datos en SQL Server en este artículo.

Lea los artículos anteriores antes de esta publicación.

Instantáneas de la base de datos de SQL Server -1

Instantáneas de la base de datos de SQL Server -2

Instantáneas de la base de datos de SQL Server -3

Este error es muy aterrador y supone una pérdida financiera para la base de datos de producción.

Usaremos la base de datos de instantáneas para regresar de este error. Usamos la tabla AWBuildVersion de la base de datos Snapshot para crear la tabla AWBuildVersion en la base de datos AdventureWorks. Usaremos Select * into command para esto. La captura de pantalla después de ejecutar el script es la siguiente. Como indica la línea roja, la tabla eliminada se devuelve a la base de datos de origen con sus datos.

Hagamos otro ejemplo similar en términos de ser más comprensible. Eliminemos los datos de cualquier tabla y los devolvamos de la base de datos de instantáneas nuevamente. Como se describe en la Imagen 1.1 a continuación, la tabla BillOfMaterials en la parte inferior de la base de datos ProductionWorks se está eliminando de la base de datos AdventureWorks. Cuando seleccionamos al mismo tiempo Seleccionar conteo, se consulta el registro 0 como se muestra en la imagen a continuación.

Usamos la base de datos de instantáneas nuevamente para regresar de este error. Como en 2.1 anterior, estamos insertando el mismo esquema y tabla de la base de datos de instantáneas en la tabla correspondiente de la base de datos de origen. De la misma manera, se inserta la misma cantidad de registros de línea que se muestra en la imagen 2.2 cuando consultamos Select Count.

Finalmente, cometamos un error de administrador desde la base de datos de instantáneas, y esta vez restauraremos la base de datos de origen desde la base de datos de instantáneas. Por lo tanto, la instantánea de la base de datos AdventureWorks vuelve al estado inicial. Estoy eliminando los datos de la tabla BillOfMaterials del esquema de producción y, al mismo tiempo, eliminé la tabla SalesOrderDetail en el esquema de ventas. La captura de pantalla es la siguiente. Como se eliminaron los datos de la tabla BillOfMaterials en la parte inferior del esquema de producción, la tabla SalesOrderDetail no aparece porque se eliminó.

Hicimos muchos cambios en la base de datos de origen, hemos dicho que estos cambios siempre se escriben en Sparse File. La siguiente imagen muestra la versión final del archivo Sparse. Si bien el tamaño original 1 no ha cambiado, el número 2 del archivo disperso original ha aumentado. La razón de esto, como dije, es que todos los cambios realizados en la base de datos de origen se escriben aquí. Entonces, cuando el usuario lee datos modificados, lee desde el archivo disperso. Si el usuario consulta los datos sin cambios, se leerán de la base de datos de origen.

Ahora regresemos a Instantánea.

SQL Server 2017 Database Snaphot Restore code

restore database  AdventureWorks from database_snapshot='AdventureWorksSnaphot'

Podemos consultar todas las tablas descartadas y eliminadas después de restaurar la instantánea como se muestra en la imagen de arriba.