web-dev-qa-db-fra.com

SQL Server - Snapshot est utile dans les environnements de production?

Je lis sur les solutions de haute disponibilité de SQL Server et la reprise après sinistre et parmi les ressources disponibles, SQL Server a une fonction de capture instantanée. En théorie, tout semble beau.

J'ai également lu qu'un instantané copiera une base de données à un moment donné et vous pouvez l'utiliser pour restaurer une base de données.

Dans cette réponse il y a un commentaire (par Peter Schofield, 2013) sur les instantanés SQL Server non pris en charge, et est utile dans un environnement de développement pour des restaurations rapides.

[...] Le plus grand obstacle à l'adoption est peut-être que Management Studio n'offrait pas de support [...]

[...] Cela ressemble à une utilisation idéale des instantanés dans un environnement de développement juste pour des déploiements rapides de scripts et des retours en arrière rapides. [...]

Je voudrais savoir si les instantanés sont vraiment utiles dans les environnements de production. Voici quelques exemples d'utilisation en production, et veuillez inclure des exemples personnels sur le moment où vous avez utilisé des instantanés pour fournir une solution sur les systèmes de production.

L'objectif principal est de fournir quelques exemples d'utilisation réelle et, à travers ces exemples, d'obtenir des idées utiles pour moi et pour tous ceux qui liront ce post.

Dans mon cas, j'utilise SQL Server 2017 Enterprise Edition dans un environnement de production.

4
Leonardo Lacerda

[...] Le plus grand obstacle à l'adoption est peut-être que Management Studio n'offrait pas d'assistance [...]

Par cela, il voulait dire que vous n'avez pas de fonctionnalité dans SSMS pour créer un instantané de base de données, vous devez vous fier à la commande TSQL pour créer un instantané de base de données. Ceci est également mentionné dans document officiel de création d'un instantané de base de données

La seule façon de créer un instantané de base de données SQL Server est d'utiliser Transact-SQL. SQL Server Management Studio ne prend pas en charge la création d'instantanés de base de données.

Je suis d'accord que l'utilisation de Word "support" n'est pas entièrement claire. Il convient que SSMS n'autorise pas la création d'instantanés de base de données.

L'instantané de base de données "peut" être utilisé en production, tout dépend de ce que vous en attendez et de la façon dont il convient à vos besoins. Avant d'aller plus loin, veuillez lire Limitation of Database Snapshot. . Paul Randal a quelques points de plus sur ce qui peut mal tourner avec les instantanés de base de données

5
Shanky

En tant que question et réponse basée sur une opinion, je soupçonne que cela sera fermé, mais voici mes deux cents.

J'ai utilisé et vu des instantanés de base de données dans mes environnements de production, bien que rarement.

Scénario A) Nous avons utilisé des instantanés de base de données pour fournir une image statique d'une base de données à des fins de rapport (ETL à un entrepôt de données). Chaque jour, un script s'exécutait à l'heure spécifiée et créait un instantané à utiliser pour les rapports. Cette base de données était transactionnellement cohérente à sa date de création, si utile pour cela.

Scénario B) Un travail de maintenance terrible qui a fonctionné et a fait une analyse d'une table très profonde, puis qui commencerait à supprimer les entrées appropriées. Nous avons créé un instantané au début de ce processus pour empêcher tout blocage. Ainsi, le travail de maintenance a été modifié pour obtenir la liste des "travaux nécessaires" à partir de l'instantané, puis supprimer l'instantané et ensuite "faire le travail" sur la base de données en direct.

Le cas d'utilisation des instantanés de base de données est un créneau pour tout sauf CHECKDB. SQL Server effectue quelques astuces d'isolement des verrous en arrière-plan qui en font un bon choix si vous avez besoin d'un correctif rapide et sale pour certaines classes d'opérations.

6
Jonathan Fite

Un instantané de production d'une base de données au repos est utile pour préparer une base de données complète de Systems Assurance ou "Production Support". Il ne s'agit sans doute pas de production, mais devraient exister dans une enclave de type production. Les transactions en vol ou les problèmes d'intégrité référentielle sont évités. problèmes causés par le déchargement du tableau A une heure après le tableau B, disons.

À l'extrême, ils peuvent fournir une position de repli pour les implémentations ou les mises à niveau. Les bases de données utilisées pour la recherche, les métriques, les analyses, fournissant un "cube" d'instantanés n'ont pas à suivre les mêmes conventions que les exemples "web d'entreprise".

0
mckenzm