Vue d’ensemble de la restauration et de la récupération (SQL Server)

S’applique à :SQL Server

Pour récupérer une base de données SQL Server à partir d’un échec, un administrateur de base de données doit restaurer un ensemble de sauvegardes SQL Server dans une séquence de restauration logiquement correcte et significative. La restauration et la récupération de SQL Server prennent en charge la restauration des données à partir de sauvegardes d’une base de données entière, d’un fichier de données ou d’une page de données, comme suit :

  • La base de données ( restauration de base de données complète)

    L’ensemble de la base de données est restauré et récupéré, et la base de données est hors connexion pendant les opérations de restauration et de récupération.

  • Le fichier de données ( restauration de fichiers)

    Un fichier de données ou un ensemble de fichiers est restauré et récupéré. Lors d’une restauration de fichiers, les groupes de fichiers qui contiennent les fichiers sont automatiquement hors connexion pendant la restauration. Toute tentative d'accès à un groupe de fichiers hors connexion produit une erreur.

  • La page de données ( restauration de pages)

    En mode de restauration complète ou de récupération utilisant les journaux de transactions, vous pouvez restaurer des pages individuelles. La restauration des pages peut être effectuée pour n'importe quelle base de données, quel que soit le nombre de groupes de fichiers.

La sauvegarde et la restauration SQL Server fonctionnent sur tous les systèmes d’exploitation pris en charge. Pour plus d’informations sur les systèmes d’exploitation pris en charge, consultez Configurations matérielle et logicielle requises pour l’installation de SQL Server 2016. Pour plus d’informations sur la prise en charge de sauvegardes provenant de versions antérieures de SQL Server, consultez la section « Prise en charge de la compatibilité » de RESTORE (Transact-SQL).

Vue d’ensemble des scénarios de restauration

Un scénario de restauration dans SQL Server est le processus de restauration des données à partir d’une ou plusieurs sauvegardes, puis de récupération de la base de données. Les scénarios de restauration pris en charge dépendent du modèle de récupération de la base de données et de l’édition de SQL Server.

Le tableau suivant présente les scénarios de restauration possibles pris en charge pour différents modes de récupération.

scénario de restauration En mode de récupération simple En modes de restauration complète et de récupération utilisant les journaux de transactions
restauration de base de données complète Il s'agit de la stratégie de restauration de base. Une restauration complète de base de données peut impliquer simplement la restauration et la récupération d'une sauvegarde complète de base de données. Une restauration complète de base de données peut également impliquer la restauration d'une sauvegarde complète de base de données suivie de la restauration et de la récupération d'une sauvegarde différentielle.

Pour plus d’informations, consultez Restaurations complètes de bases de données (mode de récupération simple).
Il s'agit de la stratégie de restauration de base. Une restauration complète de base de données inclut la restauration d'une sauvegarde complète, et éventuellement d'une sauvegarde différentielle (le cas échéant), suivie par la restauration de toutes les sauvegardes de journal consécutives (en séquence). La restauration de base de données complète s'achève par la récupération de la dernière sauvegarde de journal ainsi que sa restauration (RESTORE WITH RECOVERY).

Pour plus d’informations, consultez Restaurations complètes de bases de données (mode de récupération complète).
Restauration de fichiers 1 Restaure un ou plusieurs fichiers endommagés en lecture seule, sans restaurer toute la base de données. La restauration de fichiers est uniquement disponible si la base de données comporte au moins un groupe de fichiers en lecture seule. Restaure un ou plusieurs fichiers, sans restaurer la totalité de la base de données. La restauration de fichiers peut être effectuée pendant que la base de données est hors connexion ou, pour certaines éditions de SQL Server, tandis que la base de données reste en ligne. Pendant une restauration de fichiers, les groupes de fichiers contenant les fichiers à restaurer restent toujours hors connexion.
Restauration de pages Non applicable Restaure une ou plusieurs pages endommagées. La restauration de page peut être effectuée pendant que la base de données est hors connexion ou, pour certaines éditions de SQL Server, tandis que la base de données reste en ligne. Pendant une restauration de pages, les pages en cours de restauration restent toujours hors connexion.

Une chaîne ininterrompue de sauvegardes de journaux doit être disponible, jusqu'au fichier journal actuel, et elles doivent toutes être appliquées pour mettre la page à jour par rapport au fichier journal actuel.

Pour plus d’informations, consultez l’article Restaurer des pages (SQL Server).
Restauration fragmentaire 1 Restaure et récupère la base de données par phases au niveau du groupe de fichiers, en commençant par les groupes de fichiers primaires et tous les groupes de fichiers secondaires en lecture-écriture. Restaure et récupère la base de données par étapes au niveau du groupe de fichiers, en commençant par le groupe de fichiers primaire.

Pour plus d’informations, consultez l’article Restaurations fragmentaires (SQL Server).

La restauration en ligne 1 est prise en charge uniquement dans l’édition Entreprise.

Étapes de restauration d’une base de données

Pour effectuer une restauration de fichier, le moteur de base de données exécute deux étapes :

  • Création du ou des fichiers de base de données manquants.

  • Copie des données des périphériques de sauvegarde dans le ou les fichiers de base de données.

Pour effectuer une restauration de base de données, le moteur de base de données exécute trois étapes :

  • Crée la base de données et les fichiers journaux des transactions s’ils n’existent pas déjà.

  • Copie de toutes les données, du journal et des pages d'index des supports de sauvegarde d'une base de données vers les fichiers de base de données.

  • Applique le journal des transactions, dans ce qu’on appelle le processus de récupération.

Quelle que soit la façon dont les données sont restaurées, avant la récupération d’une base de données, le moteur de base de données SQL Server garantit que l’ensemble de la base de données est logiquement cohérent. Par exemple, si vous restaurez un fichier, vous ne pouvez pas le récupérer et le mettre en ligne tant qu’il n’a pas été suffisamment avancé pour être cohérent avec la base de données.

Avantages d’une restauration de fichier ou de page

Restaurer et récupérer des fichiers ou des pages plutôt que la base de données entière offre plusieurs avantages :

  • Le fait de restaurer moins de données réduit le temps nécessaire pour les copier et les récupérer.

  • Sur SQL Server, la restauration de fichiers ou de pages peut permettre à d’autres données de la base de données de rester en ligne pendant l’opération de restauration.

Récupération et journal des transactions

Pour la plupart des scénarios de restauration, il est nécessaire d’appliquer une sauvegarde du journal des transactions et d’autoriser le moteur de base de données SQL Server à exécuter le processus de récupération de la base de données à mettre en ligne. La récupération est le processus utilisé par SQL Server pour chaque base de données à démarrer dans un état cohérent de manière transactionnelle ou propre.

En cas de défaillance ou autre arrêt non sain, il peut arriver que certaines modifications effectuées dans les bases de données n’aient jamais pu être écrites de la mémoire tampon vers les fichiers de données ou proviennent de transactions incomplètes dans les fichiers de données. Lorsqu’une instance de SQL Server est démarrée, elle exécute une récupération de chaque base de données, qui se compose de trois phases, en fonction du dernier point de contrôle de base de données :

  • La phase 1 est la phase d’analyse qui analyse le journal des transactions pour déterminer quel est le dernier point de contrôle et crée la table de pages sales (DPT) et la table de transactions actives (ATT). La table DPT contient les enregistrements des pages qui étaient incorrectes au moment de l’arrêt de la base de données. L’ATT contient des enregistrements de transactions actives au moment où la base de données n’a pas été correctement arrêtée.

  • La phase 2 est la phase de rétablissement qui transfère chaque modification enregistrée dans le journal qui n’a peut-être pas été écrite dans les fichiers de données au moment de l’arrêt de la base de données. Le numéro séquentiel dans le journal minimal (minLSN) requis pour une récupération réussie à l’échelle de la base de données se trouve dans la table DPT et marque le début des opérations de restauration nécessaires sur toutes les pages incorrectes. Au cours de cette phase, le moteur de base de données SQL Server écrit sur disque toutes les pages sales appartenant aux transactions validées.

  • La phase 3 est la phase d’annulation qui annule les transactions incomplètes trouvées dans l’ATT pour vous assurer que l’intégrité de la base de données est conservée. Après la restauration, la base de données passe en ligne, et aucune autre sauvegarde du journal des transactions ne peut être appliquée à la base de données.

Les informations sur la progression de chaque étape de récupération de base de données sont consignées dans le journal des erreurs SQL Server. La progression de la récupération de la base de données peut également être suivie via Événements étendus. Pour plus d’informations, consultez le billet de blog New extended events for database recovery progress (Nouveaux événements étendus pour la progression de la récupération de la base de données).

Note

Dans le cas d’un scénario de restauration fragmentaire, si un groupe de fichiers est en lecture seule avant la création de la sauvegarde de fichiers, l'application des sauvegardes de journaux au groupe de fichiers n'est pas nécessaire et n'est pas effectuée par la restauration de fichiers.

Note

Pour optimiser la disponibilité des bases de données dans un environnement d’entreprise après le démarrage du service SQL Server, par exemple après un basculement d’une instance de cluster de basculement Always On ou un redémarrage sur place, SQL Server Enterprise Edition peut mettre en ligne une base de données après la phase de restauration automatique, tandis que la phase d’annulation est toujours en cours d’exécution. Cela s’appelle la récupération rapide.
Toutefois, la récupération rapide n’est pas disponible lorsque la base de données passe à un état en ligne, mais que le service SQL Server n’a pas été redémarré. Par exemple, l’exécution ALTER DATABASE AdventureWorks SET ONLINE; n’autorise pas la base de données à être en lecture-écriture tant que les trois phases de récupération n’ont pas été terminées.

Modèles de récupération et opérations de restauration prises en charge

Les opérations de restauration disponibles pour une base de données dépendent de son mode de récupération. Le tableau suivant présente le niveau de prise en charge des modes de récupération dans un scénario de restauration donné.

Opération de restauration Mode de restauration complète Mode de récupération utilisant les journaux de transactions Mode de récupération simple
Récupération des données Récupération complète (si le journal est disponible). Risque de perte de données. Les données postérieures à la dernière sauvegarde différentielle ou complète sont perdues.
Restauration dans le temps Toute heure couverte par les sauvegardes de fichiers journaux. Non autorisé si la sauvegarde de fichier journal contient des modifications journalisées en bloc. Non pris en charge.
Restauration de fichiers 1 Prise en charge complète. Parfois.2 Disponible uniquement pour les fichiers secondaires en lecture seule.
Restauration de page 1 Prise en charge complète. Parfois.2 Aucun.
Restauration fragmentaire (au niveau du groupe de fichiers) 1 Prise en charge complète. Parfois.2 Disponible uniquement pour les fichiers secondaires en lecture seule.

1 Disponible uniquement dans l’édition Entreprise de SQL Server

2 Pour connaître les conditions requises, consultez Restrictions de restauration sous le modèle de récupération simple, plus loin dans cet article.

Important

Quel que soit le modèle de récupération d’une base de données, une sauvegarde SQL Server ne peut pas être restaurée sur une version du moteur de base de données SQL Server antérieure à la version qui a créé la sauvegarde.

Scénarios de restauration sous le modèle de récupération simple

Le mode de récupération simple impose les restrictions suivantes aux opérations de restauration :

Si ces restrictions ne correspondent pas à vos besoins de récupération, nous vous recommandons d'envisager le mode de restauration complète. Pour plus d’informations, consultez Vue d’ensemble de la sauvegarde (SQL Server).

Important

Quel que soit le modèle de récupération d’une base de données, une sauvegarde SQL Server ne peut pas être restaurée par une version de SQL Server antérieure à la version qui a créé la sauvegarde.

Restaurer sous le modèle de récupération journalisé en bloc

Cette section traite de considérations relatives à la restauration qui sont propres au mode de récupération utilisant les journaux de transactions et qui vient en complément d'une utilisation exclusive du mode de restauration complète.

Note

Pour obtenir une présentation du mode de récupération utilisant les journaux de transactions, consultez Journal des transactions (SQL Server).

Généralement, le mode de récupération utilisant les journaux de transactions est comparable au mode de restauration complète. En outre, les informations fournies pour ce dernier valent aussi pour le premier. Cependant, la récupération jusqu'à une date et heure et la restauration en ligne sont concernées par le mode de récupération utilisant les journaux de transactions.

Restrictions relatives à la récupération dans le temps

Si une sauvegarde de journal effectuée sous le modèle de récupération journalisée en bloc contient des modifications journalisées en bloc, la récupération dans le temps n’est pas autorisée. Si vous tentez d'effectuer une récupération jusqu'à une date et heure sur une sauvegarde du journal contenant des modifications en bloc, l'opération de restauration peut échouer.

Restrictions pour la restauration en ligne

Une séquence de restauration en ligne fonctionne uniquement si les conditions suivantes sont satisfaites :

  • Toutes les sauvegardes de journaux nécessaires doivent avoir été effectuées avant le démarrage de la séquence de restauration.

  • Les modifications en bloc doivent avoir été sauvegardées avant de démarrer la séquence de restauration en ligne.

  • Si des modifications en bloc existent dans la base de données, tous les fichiers doivent être en ligne ou obsolètes. (Cela signifie qu'ils n'appartiennent plus à la base de données.)

Si ces conditions ne sont pas remplies, la séquence de restauration en ligne échoue.

Note

Il est recommandé de basculer en mode de restauration complète avant de démarrer la restauration en ligne. Pour plus d’informations, consultez Modes de récupération (SQL Server).

Pour plus d’informations sur l’exécution d’une restauration en ligne, consultez Restauration en ligne (SQL Server).

Assistant de récupération de base de données (SQL Server Management Studio)

L'Assistant Récupération de base de données permet de créer des plans de restauration qui implémentent des séquences de restauration correctes et optimales. De nombreux problèmes connus, liés à la restauration de la base de données, et améliorations demandées par les clients ont été pris en considération. Les améliorations importantes introduites par l'Assistant Récupération de base de données sont les suivantes :

  • Algorithme de plan de restauration : l’algorithme utilisé pour créer des plans de restauration a été amélioré considérablement, en particulier pour les scénarios de restauration complexes. De nombreux cas de périphérie, y compris les scénarios de duplication dans les restaurations ponctuelles, sont gérés plus efficacement que dans les versions précédentes de SQL Server.

  • Restaurations dans le temps : l’Assistant Récupération de base de données simplifie considérablement la restauration d’une base de données à un moment donné. Une chronologie visuelle de sauvegarde améliore considérablement la prise en charge des restaurations dans le temps. La chronologie visuelle vous permet d'identifier un point possible comme point de récupération cible pour restaurer une base de données. La chronologie permet de parcourir un chemin de récupération ramifié (un chemin d'accès qui couvre les branchements de récupération). Un plan spécifique de restauration dans le temps inclut automatiquement les sauvegardes pertinentes pour la restauration à un point cible (date et heure). Pour plus d’informations, consultez Restaurer une base de données SQL Server jusqu’à une limite dans le temps (mode de récupération complète).

Pour plus d’informations, consultez les blogs de gestion SQL Server suivants :

Récupération de base de données accélérée

La récupération de base de données accélérée est disponible à compter de SQL Server 2019 (15.x) et dans Azure SQL Database. La récupération accélérée de la base de données améliore considérablement la disponibilité de la base de données, en particulier en présence de transactions longues, en redessinant le processus de récupération du moteur de base de données SQL Server. Une base de données pour laquelle la récupération de base de données accélérée a été activée termine le processus de récupération beaucoup plus rapidement après un basculement ou tout autre arrêt qui n’est pas propre. Lorsqu’elle est activée, la récupération de base de données accélérée effectue également la restauration des transactions longues annulées beaucoup plus rapidement.

Vous pouvez activer la récupération de base de données accélérée par base de données sur SQL Server 2019 (15.x) à l’aide de la syntaxe suivante :

ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON;

Note

La récupération de base de données accélérée est activée par défaut sur Azure SQL Database.

Étapes suivantes