Comment puis-je sauvegarder une base de données SQL Server à l'aide de la sauvegarde Windows Server?

11

Apparemment , la sauvegarde Windows Server a un certain support pour la sauvegarde des bases de données SQL Server:

Possibilité de récupérer des applications. La sauvegarde de Windows Server utilise la fonctionnalité VSS qui est intégrée dans des applications comme Microsoft® SQL Server® pour protéger les données d'application. [Source: TechNet ]

En outre, les gens signalent que la sauvegarde de Windows Server semble déclencher une sorte d'opération de sauvegarde dans SQL Server .

Cependant, je ne trouve pas de documentation (officielle) sur la façon exacte de sauvegarder les bases de données SQL Server à l'aide de la sauvegarde de Windows Server.

  • Dois-je simplement sauvegarder le .mdf? Le .mdfet le .ldf?
  • En ligne ou tout simplement hors ligne?
  • Quelle est la procédure officielle de restauration des bases de données SQL Server sauvegardées de cette façon?
  • Y a-t-il quelque chose de spécial à considérer lors des sauvegardes incrémentielles / différentielles?
  • Où tout cela est-il documenté?

(Je sais comment faire des sauvegardes avec les plans de maintenance SQL Server sqlmaint.exe, T-SQL BACKUP et SQL Server Agent. Je suis juste intéressé par l'alternative que Windows Server Backup (apparemment?) Offre.)

Heinzi
la source
Quelle version de Windows Server et quelle version de SQL Server?
pauska
@pauska: Personnellement, je serais intéressé par Windows Server 2012 R2 et SQL Server 2012. (Je garde délibérément la question plus générale pour la rendre plus utile aux autres.)
Heinzi
1
J'ai un Windows Server 2008 qui effectue une sauvegarde complète. Pour autant que je sache, il extrait les bases de données de SQL Server Express dans le cadre de sa sauvegarde complète, car chaque base de données indique qu'elle a été sauvegardée pour la dernière fois au moment de l'exécution de cette sauvegarde. Cela m'a dérouté, car j'essaie de comprendre comment j'ai réussi à sauvegarder ces bases de données, car je ne trouve aucun script qui le fasse n'importe où. Je pense que je vais écrire un script pour le faire de toute façon, pour que je sache que ça marche et que je sache exactement ce que j'ai.
Dave Cousineau

Réponses:

5

La sauvegarde de Windows Server n'est pas conçue comme un outil de sauvegarde pour SQL Server.

... Cependant, la conception le rend particulièrement adapté aux petites organisations ou aux particuliers qui ne sont pas des professionnels de l'informatique ...

Citation du guide pas à pas de la sauvegarde de Windows Server pour la section Windows Server 2008 : "Qui devrait utiliser la sauvegarde de Windows Server?"

La section que vous avez citée dit essentiellement que lorsque la sauvegarde de Windows Server interviendra, elle déclenchera la fonctionnalité VSS dans Windows. SQL Server sera conscient qu'une copie fantôme de volume est en cours et, à l'aide du service SQL Server Writer, s'assurera qu'une copie des fichiers de base de données (* .mdf, * .ndf, * .ldf) peut être effectuée.

Le but du service SQL Server Writer est défini comme suit:

Lors de l'exécution, le moteur de base de données se verrouille et dispose d'un accès exclusif aux fichiers de données. Lorsque le service SQL Writer n'est pas en cours d'exécution, les programmes de sauvegarde exécutés sous Windows n'ont pas accès aux fichiers de données et les sauvegardes doivent être effectuées à l'aide de la sauvegarde SQL Server.

Utilisez le service SQL Writer pour autoriser les programmes de sauvegarde Windows à copier les fichiers de données SQL Server pendant l'exécution de SQL Server.

Citation de la section SQL Writer Service : "Objectif"

C'est donc essentiellement tout ce qui se passe avec la sauvegarde de Windows Server.

Les sauvegardes créées avec Windows Server Backup pendant l'exécution de SQL Server doivent être cohérentes, mais les transactions non encore écrites sur le disque ne sont pas dans le cliché instantané des volumes. L'instantané de la base de données a été pris en étant EN LIGNE.

Toutefois, l'article MSDN Snapshot Backups indique:

Seuls les types de sauvegardes suivants peuvent être des sauvegardes de clichés:

  • Sauvegardes complètes
  • Sauvegardes partielles
  • Sauvegardes de fichiers
  • Sauvegardes différentielles de bases de données. Ils ne sont pris en charge que lorsque le fournisseur utilise l'interface VSS.

et en plus:

Sauf comme indiqué précédemment dans cette rubrique, les sauvegardes de clichés sont fonctionnellement équivalentes aux sauvegardes conventionnelles correspondantes. Vous pouvez utiliser des sauvegardes instantanées dans des séquences de restauration avec des sauvegardes complètes non instantanées, des sauvegardes différentielles et des sauvegardes de journaux. Comme les autres sauvegardes, les sauvegardes de clichés sont suivies dans la base de données msdb, où les sauvegardes de clichés sont identifiées par backupset.is_snapshot = 1. Pour plus d'informations sur msdb, voir Base de données msdb.

SQL Server ne prend pas en charge la restauration en ligne à partir d'une sauvegarde de capture instantanée. La restauration d'une sauvegarde d'instantané met automatiquement la base de données hors ligne. Une restauration fragmentaire peut incorporer des sauvegardes d'instantanés, mais toutes les séquences de restauration sont des restaurations hors ligne. Pour plus d'informations sur les restaurations fragmentaires, voir Exécution de restaurations fragmentaires.

Pour répondre à tes questions:

  • Dois-je simplement sauvegarder le .mdf? Le .mdf et le .ldf?
  • En ligne ou tout simplement hors ligne?
  • Quelle est la procédure officielle de restauration des bases de données SQL Server sauvegardées de cette façon?
  • Y a-t-il quelque chose de spécial à considérer lors des sauvegardes incrémentielles / différentielles?
  • Où tout cela est-il documenté?

Réponses:

  1. Oui, vous pouvez effectuer une copie de sauvegarde Windows Server (VSS) des fichiers .mdf et .ldf. La sauvegarde doit être cohérente, mais la base de données sera HORS LIGNE après une restauration.
  2. Si SQL Server est arrêté / la base de données est détachée / la base de données est HORS LIGNE, une copie VSS des fichiers .mdf et .ldf est 100% cohérente.
  3. Je ne sais pas comment restaurer une base de données (à un point dans le temps) qui est effectuée avec la sauvegarde de Windows Server, car la base de données est restaurée dans un état HORS LIGNE. Une base de données à l'état HORS LIGNE ne peut plus être restaurée / récupérée et la mise en ligne de la base de données entraîne une récupération complète de la base de données. Je recommanderais des sauvegardes SQL Server FULL, DIFF et TLOG distinctes pour vous assurer que vous pouvez effectuer une restauration de base de données à un point dans le temps.
  4. Les journaux de transactions ne font pas partie des instantanés créés avec Windows Server Backup et doivent être exécutés en plus. Les instantanés différentiels sont pris en charge par des fournisseurs tiers dans le cadre de la séquence de sauvegarde, mais la sauvegarde de Windows Server ne semble pas être en mesure d'effectuer des sauvegardes différentielles. Dans ce cas, vous devrez également effectuer des sauvegardes différentielles supplémentaires. (voir 3.)
  5. Différentes références

Expliqué dans la mise en œuvre réelle

Dans notre environnement, nous avons une situation similaire où VMware effectue un instantané et les DBA effectuent des vidages SQL Server avec Commvault. L'historique de sauvegarde ressemble à ceci:

DBNAME  TYPE BACKUPSET_NAME            IS_SNAPSHOT BACKUP_START_DATE        
------- ---- ------------------------- ----------- -----------------------  
DB_NAME  Full  NULL                    1           2016-12-10 18:23:59.000  
DB_NAME  Full  CommVault Galaxy Backup 0           2016-12-10 20:07:41.000  
DB_NAME  Log   CommVault Galaxy Backup 0           2016-12-11 06:00:40.000  
DB_NAME  Full  NULL                    1           2016-12-11 18:24:00.000  
DB_NAME  Diff  CommVault Galaxy Backup 0           2016-12-11 20:03:38.000  
DB_NAME  Log   CommVault Galaxy Backup 0           2016-12-12 06:02:29.000  
DB_NAME  Log   CommVault Galaxy Backup 0           2016-12-12 07:02:17.000  

L'instantané VMware créera une entrée dans les tables d'historique de la base de données MSDB avec IS_SNAPSHOT = 1et FULLpour chaque instantané VMware effectué (quotidiennement). Les sauvegardes SQL Server natives (bien que Commvault utilise des natives) sont effectuées à l'aide de sauvegardes FULL, DIFF et TLOG. Ces sauvegardes ne sont pas marquées comme IS_SNAPSHOT et existent en tant qu'entrées FULL supplémentaires (une fois par semaine), DIFF (tous les deux jours) et LOG (toutes les heures) dans les tables de sauvegarde de la base de données msdb.

Avec cette configuration, nous pouvons effectuer soit une restauration à la date-heure de l'instantané, puis mettre la base de données EN LIGNE, ou nous pouvons effectuer une restauration individuelle à n'importe quel point dans le temps à l'aide des sauvegardes SQL Server «natives».

John aka hot2use
la source
1

Tu ne peux pas. Ou du moins, vous ne devriez probablement pas. En ce qui concerne les bases de données SQL Server, les sauvegardes natives sont la méthode prise en charge.

Je pense que vous vous méprenez peut-être sur ce que dit l'article TechNet. Le commentaire que vous avez cité n'indique pas que vous pouvez utiliser la sauvegarde Windows Server pour les bases de données SQL Server. Il s'agit simplement de souligner que la sauvegarde de Windows Server utilise le même service de cliché instantané des volumes que celui utilisé par SQL Server. Pour plus d'informations: TechNet: SQL Writer Service

shiitake
la source
Je sais que je ne devrais pas - je ne confierais pas mes données à une fonctionnalité aussi mal documentée. Pourtant, je suis curieux de savoir s'il est possible, en théorie: SQL Server ne fournir un rédacteur VSS et Windows Server sauvegarde est un requêteur VSS, donc je vais laisser la question ouverte pour l' instant. Il s'agit peut-être simplement de faire correspondre ces deux (il y a, par exemple, des instructions en ligne sur la façon de procéder pour le rédacteur Hyper-V VSS ).
Heinzi
1
Apparemment, la sauvegarde Windows Server ne déclenche une sorte de sauvegarde du serveur SQL, voir ce quesiton .
Heinzi
1

La sauvegarde SQL ne copie pas seulement les données, elle tronque également le journal. Vous pouvez trouver des centaines d'options dans la page de manuel qui vous aideront, telles que la compression du fichier de sauvegarde à la volée.

Je me souviens que la sauvegarde vss a été utilisée pour copier une machine virtuelle gelée ou pour prendre un instantané d'un lun sur un SAN afin de sauvegarder une image statique, mais la sauvegarde sera "cohérente" comme une interruption d'alimentation et pas vraiment cohérente.

en relation

Massimiliano Piccinini
la source
0

Je pense qu'il utilise un type de sauvegarde spécial appelé "Snapshot Backup".

Dans la documentation de SQL Server 2008:

La sauvegarde d'instantané SQL Server est également utilisée par le service de cliché instantané des volumes (VSS) de Microsoft Windows Server 2003 et par tous les logiciels de sauvegarde et de stockage qui utilisent ce cadre. Pour plus d'informations, consultez Service SQL Writer.

Tout cela n'est pas très clair pour moi. Surtout si cela tronque les journaux de transactions ou non.

StackzOfZtuff
la source