SQL Server Review and Show Database Snapshot

SQL Server Review and Show Database Snapshot

En el servidor SQL, una instantánea de la base de datos es una vista de solo lectura y estática de una base de datos dada (base de datos de origen). Una instantánea captura el estado actual de la base de datos en el momento de la captura de instantáneas. Esto significa que una instantánea de la base de datos es transaccionalmente consistente.

La instantánea de la base de datos se encuentra en la misma instancia que la base de datos de origen. Aunque las instantáneas proporcionan una vista de solo lectura en los datos de la base de datos de destino, son dependientes de la fuente. Esto significa que el tamaño puede crecer a medida que los cambios se aplican a la base de datos de origen. Del mismo modo, la instantánea también se corrompe si la base de datos de origen está dañada.

Por lo tanto, es importante tener en cuenta que las instantáneas de la base de datos no sirven como copias de seguridad contra errores como falla en el disco o corrupción de la base de datos.

Asegúrese de tomar copias de seguridad completas o parciales para su base de datos para proteger contra tales fallas.

Discutamos cómo podemos tomar una instantánea de la base de datos en el servidor SQL.

Muestra de base de datos y tabla

Antes de discutir cómo tomar una instantánea de una base de datos, configuremos una base de datos de muestra para fines de ilustración.

Las consultas son las que se proporcionan en lo siguiente:

Drop Base de datos si existe el inventario;
Crear inventario de base de datos;
Usar inventario;
Tabla de caída si existe productos;
Crear productos de mesa
(
ID int identidad clave primaria no nula,
Product_Name Varchar (100),
Fabricante Varchar (50),
cantidad int no nulo,
precio int predeterminado 0,
en_stock bit
);
Insertar en productos (Product_Name, fabricante, cantidad, precio, in_stock)
Valores ('Apple iPad Air - 2022', 'Apple', 100, 569.99, 1),
('Samsung Galaxy Z Flip 4 - 2022', 'Samsung', 302, 1569.00, 1),
('Sony PlayStation 5 - 2020', 'Sony', 500, 499.99, 1),
('Samsung Galaxy Watch -5 Pro - 2022', 'Samsung', 600, 209 / .99, 1),
('Apple Watch Series 6 - 2022', 'Apple', 459, 379.90, 1),
('Apple AirPods Pro - 2022', 'Apple', 200, 199.99, 1),
('55 "Clase S95B OLED 4K Smart TV - 2021 ',' Samsung ', 900, 1999.90, 1),
('Pantalla de juegos curvos de Mini -Led Led de Odyssey Ark Quantum - 2021', 'Samsung', 50, 2999.90, 1);

SQL Server Toma la instantánea de la base de datos

Para tomar una instantánea de una base de datos dada, utilizamos la consulta de la base de datos Crear seguida de la cláusula de instantánea como.

La sintaxis es la siguiente:

Crear base de datos Database_snapshot_name
EN
(Name = logical_file_name, filename = 'OS_FILE_NAME') [, ... N]
Como instantánea de fuente_database_name;

Por ejemplo, para tomar una instantánea de la base de datos "Inventario" que creamos anteriormente, podemos ejecutar la siguiente consulta:

Crear Inventory_Snap de la base de datos
(nombre = inventario,
FileName = 'C: \ Archivos de programa \ Microsoft SQL Server \ MSSQL15.MSSQLSERVER \ MSSQL \ Backup \ Inventory.SS ')
como instantánea del inventario;

SQL Server View de instantánea de la base de datos - SSMS

Puede ver la instantánea de la base de datos en el estudio de administración de SQL Server navegando a las bases de datos - instantáneas de la base de datos.

SQL Server View de instantánea de la base de datos - Transact -SQL

Para ver la instantánea de la base de datos utilizando la consulta Transact-SQL, ejecute lo siguiente:

Seleccionar nombre, database_id, source_database_id desde sys.bases de datos;

Esto debería devolver las bases de datos en el servidor. La columna Source_Database_ID muestra la base de datos de origen para una instantánea dada.

Un ejemplo es el siguiente:

Como se muestra en la tabla anterior, la base de datos Inventory_snap apunta a la base de datos de inventario como fuente.

Instantánea de la base de datos SQL Server Drop - Transact -SQL

Para eliminar una instantánea de la base de datos, puede usar la consulta como se muestra en lo siguiente:

Drop Base de datos Database_snapshot_name;

Ejemplo:

Drop de la base de datos Inventory_snap;

Tenga en cuenta que el comando de base de datos DROP termina todas las conexiones que están utilizando la base de datos Inventory_Snap.

Conclusión

En esta publicación, aprendió cómo trabajar con las instantáneas de la base de datos en el servidor SQL, incluida la creación de nuevas instantáneas de la base de datos, ver las instantáneas de la base de datos y eliminar las instantáneas del servidor.

Gracias por leer!