Partager via


Erreurs de média possibles pendant la sauvegarde et la restauration (SQL Server)

SQL Server 2014 vous offre la possibilité de récupérer une base de données malgré les erreurs détectées. Un nouveau mécanisme important de détection des erreurs est la création facultative d’une somme de contrôle de sauvegarde qui peut être créée par une opération de sauvegarde et validée par une opération de restauration. Vous pouvez contrôler si une opération vérifie les erreurs et si l’opération s’arrête ou continue de rencontrer une erreur. Si une sauvegarde contient une somme de contrôle de sauvegarde, les instructions RESTORE et RESTORE VERIFYONLY peuvent vérifier les erreurs.

Remarque

Les sauvegardes mises en miroir fournissent jusqu'à quatre copies (miroirs) d'un ensemble de supports, en offrant des copies alternatives pour la récupération après des erreurs causées par des supports endommagés. Pour plus d’informations, consultez Jeux de supports de sauvegarde en miroir (SQL Server).

Sommes de contrôle de sauvegarde

SQL Server prend en charge trois types de sommes de contrôle : une somme de contrôle sur les pages, une somme de contrôle dans les blocs de journal et une somme de contrôle de sauvegarde. Lors de la génération d’une somme de contrôle de sauvegarde, BACKUP vérifie que les données lues à partir de la base de données sont cohérentes avec toute somme de contrôle ou indication de page déchirée présente dans la base de données.

L'instruction BACKUP calcule optionnellement une somme de contrôle de sauvegarde sur le flux de sauvegarde ; si des informations de somme de contrôle de page ou de page déchirée sont présentes sur une page donnée, lors de la sauvegarde de celle-ci, BACKUP vérifie également la somme de contrôle, l'état de la page déchirée, ainsi que l'ID de la page. Lors de la création d’une somme de contrôle de sauvegarde, une opération de sauvegarde n’ajoute aucune somme de contrôle aux pages. Les pages sont sauvegardées comme elles existent dans la base de données et les pages ne sont pas modifiées par sauvegarde.

En raison de la surcharge de vérification et de génération des sommes de contrôle de sauvegarde, l’utilisation de sommes de contrôle de sauvegarde pose un impact potentiel sur les performances. La charge de travail et le débit de sauvegarde peuvent être affectés. Par conséquent, l’utilisation des sommes de contrôle de sauvegarde est facultative. Lorsque vous décidez de générer des sommes de contrôle lors d’une sauvegarde, surveillez attentivement la surcharge du processeur encourue, ainsi que l’impact sur toute charge de travail simultanée sur le système.

BACKUP ne modifie jamais la page source sur le disque ni le contenu d’une page.

Lorsque les sommes de contrôle de sauvegarde sont activées, une opération de sauvegarde effectue les étapes suivantes :

  1. Avant d’écrire une page sur le support de sauvegarde, l’opération de sauvegarde vérifie les informations au niveau de la page (somme de contrôle de page ou détection de page déchirée), le cas échéant. Si aucun des deux n’existe, la sauvegarde ne peut pas vérifier la page. Les pages non vérifiées sont incluses telles quelles, et leur contenu est ajouté à la somme de contrôle de sauvegarde globale.

    Si l’opération de sauvegarde rencontre une erreur de page pendant la vérification, la sauvegarde échoue.

    Remarque

    Pour obtenir plus d’informations sur les sommes de contrôle des pages et la détection de pages déchirées, veuillez consulter l’option PAGE_VERIFY de l’instruction ALTER DATABASE. Pour plus d’informations, consultez Options SET d’ALTER DATABASE (Transact-SQL).

  2. Indépendamment de la présence ou non des sommes de contrôle de page, BACKUP génère une somme de contrôle de sauvegarde distincte pour les flux de sauvegarde. Les opérations de restauration peuvent éventuellement utiliser la somme de contrôle de sauvegarde pour vérifier que la sauvegarde n’est pas endommagée. La somme de contrôle de sauvegarde est stockée sur le support de sauvegarde, et non sur les pages de base de données. La somme de contrôle de sauvegarde peut éventuellement être utilisée au moment de la restauration.

  3. Le jeu de sauvegarde est marqué comme contenant des sommes de contrôle de sauvegarde (dans la colonne has_backup_checksums de msdb..backupset). Pour plus d'informations, consultez ensemble de sauvegarde (Transact-SQL).

Lors d'une opération de restauration, si des sommes de contrôle de sauvegarde figurent sur le média de sauvegarde, par défaut, les instructions RESTORE et RESTORE VERIFYONLY vérifient les sommes de contrôle de sauvegarde ainsi que les sommes de contrôle des pages. S’il n’y a pas de somme de contrôle de sauvegarde, l’une ou l’autre opération de restauration se poursuit sans vérification ; cela est dû au fait que sans somme de contrôle de sauvegarde, la restauration ne peut pas vérifier de manière fiable les sommes de contrôle de page.

Réponse aux erreurs de somme de contrôle de page lors d’une opération de sauvegarde ou de restauration

Par défaut, après avoir rencontré une erreur de somme de contrôle de page, une opération BACKUP ou RESTORE échoue et une opération RESTORE VERIFYONLY continue. Toutefois, vous pouvez contrôler si une opération donnée échoue en cas d’erreur ou continue le mieux possible.

Si une opération BACKUP se poursuit après avoir rencontré des erreurs, l’opération effectue les étapes suivantes :

  1. Signale l'ensemble de sauvegarde sur le support de sauvegarde en tant que contenant des erreurs et suit la page dans la table suspect_pages dans la base de données msdb. Pour plus d’informations, consultez suspect_pages (Transact-SQL).

  2. Enregistre l’erreur dans le journal des erreurs SQL Server.

  3. Marque le jeu de sauvegarde comme contenant ce type d’erreur (dans la colonne is_damaged de msdb.backupset). Pour plus d’informations, consultez jeu de sauvegarde (Transact-SQL).

  4. Émet un message indiquant que la sauvegarde a été correctement générée, mais contient des erreurs de page.

Tâches associées

Pour activer ou désactiver les sommes de contrôle de sauvegarde

Pour contrôler la réponse à une erreur pendant une opération de sauvegarde

Voir aussi

MODIFIER LA BASE DE DONNÉES (Transact-SQL)
BACKUP (Transact-SQL)
backupset (Transact-SQL)
Jeux de supports de sauvegarde en miroir (SQL Server)
RESTORE (Transact-SQL)
RESTORE VERIFYONLY (Transact-SQL)