Qu'est-ce qu'une bonne planification de sauvegarde SQL Server?

18

Il semble y avoir une pléthore d'informations concernant le processus de configuration des tâches de sauvegarde, mais pas beaucoup d'informations sur la vue d'ensemble des sauvegardes de bases de données. Au moins, il est difficile de formuler une requête de moteur de recherche qui vous donne cette information. Je sais qu'il existe trois types différents de sauvegardes:

  • Sauvegardes complètes de la base de données
  • Sauvegardes différentielles de bases de données
  • Sauvegardes du journal des transactions

Il semble que je suis censé les utiliser tous les trois. Alors, est-ce un calendrier qui a du sens?

  • 1er de chaque mois - Faites unesauvegarde complète de la base de données.
  • Tous les jours à minuit - Faites unesauvegarde différentielle de la base de données.
  • Toutes les 15 minutes - Effectuez unesauvegarde du journal des transactions .

De cette façon, si ma base de données échoue, disons le 12, je restaurerais simplement la sauvegarde complète de la base de données à partir du 1er, ferais les 12 sauvegardes différentielles du 1er au 12, puis enfin restaurer le journal des transactions le plus récent (sont le journal des transactions différentiel?).

Enfin, une sauvegarde complète de la base de données est-elle autonome? Par exemple, une fois que j'ai effectué une sauvegarde complète de la base de données le 1er février, puis-je supprimer tous les fichiers de janvier? Bien sûr, je garderais quelques sets des mois précédents juste au cas où, mais la question est conceptuelle.

atanamir
la source

Réponses:

24

Comme pour tout dans SQL Server, cela dépend.

La première chose que vous devez faire est de bien comprendre ce que fait chaque type de sauvegarde.

Books Online a tous les détails gluants , mais voici mon résumé.

Une sauvegarde COMPLÈTE contient tout dans la base de données. Une sauvegarde DIFFÉRENTIELLE est cumulative NON incrémentielle. Dans votre exemple, si votre base de données a échoué le 12, il vous suffirait de restaurer la sauvegarde complète à partir du 1er, puis du différentiel le plus récent le 12, puis de toutes les sauvegardes du journal des transactions jusqu'à l'échec. Une sauvegarde TRANSACTION LOG n'est nécessaire que pour les bases de données utilisant le modèle de récupération complet ou enregistré en masse. Si vous utilisez le modèle de récupération simple, les sauvegardes du journal des transactions ne sont pas nécessaires.

Maintenant que nous avons clarifié cela ... La conception d'un calendrier de sauvegarde dépend vraiment de la quantité de données dont vous avez besoin pour la récupération et de la vitesse à laquelle vous devez la récupérer en cas de catastrophe. Je recommanderais de commencer par une sauvegarde complète chaque jour. Vous pouvez toujours réduire la fréquence ultérieurement. N'oubliez pas que la sauvegarde différentielle est cumulative depuis la dernière sauvegarde complète, donc en fonction du changement de montant en cours dans votre base de données, la différence peut être plus importante que la sauvegarde complète après quelques jours. Si vous effectuez une sauvegarde complète chaque jour, vous n'aurez peut-être pas besoin du tout d'utiliser les différentiels; cependant, vous pouvez toujours le faire une fois par jour et le planifier à midi. La sauvegarde du journal des transactions sauvegarde uniquement le journal. La fréquence de la sauvegarde du journal déterminera la quantité de données que vous êtes prêt à perdre en cas d'échec. Si vous exécutez votre sauvegarde de journal toutes les 15 minutes, vous vous attendez à perdre jusqu'à 15 minutes de données modifiées. 15 minutes est une bonne fréquence, mais toutes les 30 minutes fonctionnent parfaitement pour mon environnement.

Comme je l'ai dit plus tôt, tout dépend de votre environnement. Après avoir conçu et configuré votre programme de sauvegarde, n'oubliez pas de le tester sur un autre serveur. Entraînez-vous à restaurer vos sauvegardes complètes, différentielles et de journaux afin de savoir que tout fonctionne comme vous l'avez conçu.

Books Online contient de bonnes informations si vous prévoyez d'utiliser des plans de maintenance, mais si vous voulez vraiment de la flexibilité, consultez les scripts de sauvegarde d'Ola Hallengren .

Patrick Keisler
la source
Merci pour la bonne réponse. J'ai une petite question pour vous - reconstruisez-vous / réorganisez-vous vos index aussi avant les sauvegardes complètes?
atanamir
Oui avant les sauvegardes complètes est une bonne idée. De cette façon, si votre base de données échoue, la sauvegarde complète contiendra déjà toutes les modifications de réindexation.
Patrick Keisler
Dans la plupart des cas, le journal de queue actif peut toujours être sauvegardé après l'échec, de sorte que l'exposition aux pertes de travail est minime même si vous ne sauvegardez le journal que quotidiennement. Cela étant dit, il n'y a généralement aucune raison de ne pas le sauvegarder fréquemment.
SoonDead