Banco de dados de instantâneo do servidor SQL

Banco de dados de instantâneo do servidor SQL

No servidor SQL, um instantâneo de banco de dados é uma visão estática somente leitura de um determinado banco de dados (banco de dados de origem). Um instantâneo captura o estado atual do banco de dados no momento da captura de instantâneo. Isso significa que um instantâneo de banco de dados é transacionalmente consistente.

O instantâneo do banco de dados está localizado na mesma instância que o banco de dados de origem. Embora os instantâneos forneçam uma exibição somente leitura nos dados do banco de dados de destino, eles são dependentes da fonte. Isso significa que o tamanho pode crescer à medida que as alterações são aplicadas ao banco de dados de origem. Da mesma forma, o instantâneo também fica corrompido se o banco de dados de origem estiver corrompido.

Portanto, é importante ter em mente que os instantâneos de banco de dados não servem como backups contra erros como falha de disco ou corrupção do banco de dados.

Certifique -se de receber backups completos ou parciais para o seu banco de dados para protegê -lo contra tais falhas.

Vamos discutir como podemos tirar um instantâneo de banco de dados no servidor SQL.

Banco de dados de amostra e tabela

Antes de discutir como tirar um instantâneo de um banco de dados, vamos configurar um banco de dados de amostra para fins de ilustração.

As consultas são conforme fornecido no seguinte:

Soltar o banco de dados se existir inventário;
Criar inventário de banco de dados;
Use inventário;
Soltar a tabela se existir produtos;
Crie produtos de tabela
(
Id int identidade chave primária não nula,
Product_name Varchar (100),
Fabricante Varchar (50),
quantidade não nula,
Preço int padrão 0,
In_stock Bit
);
Insira em produtos (Product_name, Fabricante, Quantidade, Preço, 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 "Classe S95B OLED 4K Smart TV - 2021 ',' Samsung ', 900, 1999.90, 1),
('Odyssey Ark Quantum Mini LED Curved Gaming Screen - 2021', 'Samsung', 50, 2999.90, 1);

SQL Server Take Database Snapshot

Para tirar um instantâneo de um determinado banco de dados, usamos a consulta de banco de dados CREATE seguida pela cláusula AS Snapshot.

A sintaxe é a seguinte:

Crie banco de dados de banco de dados_snapshot_name
SOBRE
(Nome = logic_file_name, filename = 'os_file_name') [,… n]
Como instantâneo de fonte_database_name;

Por exemplo, para tirar um instantâneo do banco de dados de "inventário" que criamos anteriormente, podemos executar a consulta como mostrado no seguinte:

Crie Inventário de Database Inventory_snap
(nome = inventário,
FileName = 'C: \ Arquivos de Programas \ Microsoft SQL Server \ MSSQL15.MSSQLSERVER \ MSSQL \ Backup \ Inventário.ss ')
como instantâneo do inventário;

Uma vez criado, você pode visualizar o instantâneo usando SSMS navegando para o banco de dados - Snapshot do banco de dados.

Lá, você tirou com sucesso um instantâneo do seu banco de dados. Você pode usar os instantâneos para restaurar o banco de dados a um ponto específico de que o instantâneo foi tirado.

Para restaurar o banco de dados usando o instantâneo, você pode executar a seguinte consulta:

Use mestre;
RESTORE DATABASE DATABASE_NAME
Do database_snapshot = snapshot_name;

OBSERVAÇÃO: Restaurar um instantâneo de banco de dados exige que você use o banco de dados mestre antes de executar a operação.

Exemplo:

use mestre;
Restaurar o inventário do banco de dados
de
Database_snapshot = 'Inventory_snap';

Isso deve restaurar o banco de dados do instantâneo.

Conclusão

Esta posta.

Obrigado pela leitura!