Base de données d'instantanés SQL Server

Base de données d'instantanés SQL Server

Dans le serveur SQL, un instantané de base de données est une vue statique en lecture seule d'une base de données donnée (base de données source). Un instantané capture l'état actuel de la base de données au moment de la capture d'instantané. Cela signifie qu'un instantané de base de données est cohérent transactionnel.

L'instantané de la base de données est situé dans le même cas que la base de données source. Bien que les instantanés fournissent une vue en lecture seule sur les données de la base de données cible, elles dépendent de la source. Cela signifie que la taille peut augmenter à mesure que les modifications sont appliquées à la base de données source. De même, l'instantané devient également corrompu si la base de données source est corrompue.

Il est donc important de garder à l'esprit que les instantanés de la base de données ne servent pas de sauvegardes contre des erreurs telles que la défaillance du disque ou la corruption de la base de données.

Assurez-vous de prendre des sauvegardes complètes ou partielles pour votre base de données pour la protéger contre de telles échecs.

Discutons de la façon dont nous pouvons prendre un instantané de base de données dans le serveur SQL.

Exemple de base de données et de table

Avant de discuter de la façon de prendre un instantané d'une base de données, créons une exemple de base de données à des fins d'illustration.

Les requêtes sont celles qui ont été fournies par ce qui suit:

Drop Base de données s'il existe un inventaire;
Créer l'inventaire de la base de données;
Utiliser l'inventaire;
Table de dépôt si existe des produits;
Créer des produits de table
(
id int identité clé primaire pas nul,
Product_name Varchar (100),
Fabricant Varchar (50),
Quantité int null,
prix int défaut 0,
bit in_stock
));
Insérer dans les produits (Product_name, fabricant, quantité, prix, in_stock)
Valeurs ('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 Prenez un instantané de base de données

Pour prendre un instantané d'une base de données donnée, nous utilisons la requête de base de données Créer suivie de la clause AS Snapshot.

La syntaxe est la suivante:

Créer la base de données de la base de données_snapshot_name
SUR
(Name = logical_file_name, filename = 'os_file_name') [,… n]
Comme instantané de source_database_name;

Par exemple, pour prendre un instantané de la base de données «Inventory» que nous avons créée plus tôt, nous pouvons exécuter la requête comme indiqué dans ce qui suit:

Créer une base de données Inventory_snap sur
(nom = inventaire,
FileName = 'C: \ Program Files \ Microsoft SQL Server \ MSSQL15.MSSQLSERVER \ MSSQL \ BACKUP \ Inventory.SS ')
comme instantané de l'inventaire;

Une fois créé, vous pouvez afficher l'instantané à l'aide de SSM.

Là, vous avez réussi un instantané de votre base de données. Vous pouvez utiliser les instantanés pour restaurer la base de données à un point précis que l'instantané a été pris.

Pour restaurer la base de données à l'aide de l'instantané, vous pouvez exécuter la requête suivante:

Utilisez Master;
Restaurer la base de données de la base de données_name
Depuis database_snapshot = snapshot_name;

NOTE: La restauration d'un instantané de base de données vous oblige à utiliser la base de données maître avant d'effectuer l'opération.

Exemple:

Utilisez Master;
restaurer l'inventaire de la base de données
depuis
Database_snapshot = 'inventory_snap';

Cela devrait restaurer la base de données à partir de l'instantané.

Conclusion

Ce message a couvert le processus de prise et de restauration d'un instantané de base de données à l'aide des commandes Transact -SQL.

Merci d'avoir lu!