Restaurations de fichiers (mode de restauration complète)
S’applique à : SQL Server
Cette rubrique concerne uniquement les bases de données contenant plusieurs fichiers ou groupes de fichiers en modes de restauration complète ou de récupération utilisant les journaux de transactions.
Le but d'une restauration de fichiers est de restaurer un ou plusieurs fichiers endommagés sans restaurer l'ensemble de la base de données. Un scénario de restauration de fichiers consiste en une séquence de restauration unique qui copie, restaure par progression et récupère les données appropriées.
Si le groupe de fichiers en cours de restauration est en lecture-écriture, une séquence ininterrompue de sauvegardes de journal doit être appliquée après la restauration de la dernière sauvegarde de données ou différentielle. Cette opération restaure le groupe de fichiers par progression jusqu'aux enregistrements de journal dans les enregistrements actifs en cours du fichier journal. Le point de récupération est généralement situé vers la fin du journal, mais pas nécessairement.
Si le groupe de fichiers en cours de restauration est en lecture seule, l'application de sauvegardes de journal est souvent inutile et ignorée. Si la sauvegarde a été réalisée après la mise en lecture seule du fichier, il s'agit de la dernière sauvegarde à restaurer. La récupération par progression s'arrête au point cible.
Les scénarios de restauration de fichiers sont les suivants :
Restauration de fichiers hors ligne
Dans une restauration de fichiers hors ligne, la base de données est hors connexion pendant la restauration des fichiers ou des groupes de fichiers endommagés. À la fin de la séquence de restauration, la base de données est mise en ligne.
Toutes les éditions de SQL Server prennent en charge la restauration de fichiers hors connexion.
Restauration de fichiers en ligne
Dans une restauration de fichiers en ligne, si la base de données est en ligne au moment de la restauration, elle reste en ligne durant la restauration de fichiers. Toutefois, chaque groupe de fichiers dans lequel un fichier est restauré est hors connexion pendant l'opération de restauration. Une fois que tous les fichiers d'un groupe de fichiers hors connexion sont récupérés, le groupe de fichiers est automatiquement mis en ligne.
Pour plus d’informations sur la prise en charge de la restauration de fichiers et de pages en ligne, consultez Éditions et fonctionnalités prises en charge dans SQL Server 2022. Pour plus d’informations sur les restaurations en ligne, consultez Restauration en ligne (SQL Server).
Conseil
Si vous souhaitez que la base de données soit hors connexion pour une restauration de fichiers, mettez-la hors connexion avant de démarrer la séquence de restauration en exécutant l’instruction ALTER DATABASE suivante : ALTER DATABASE nom_base_de_données SET OFFLINE.
Restauration de fichiers endommagés à partir de sauvegardes de fichiers
Avant de restaurer un ou plusieurs fichiers endommagés, essayez de créer une sauvegarde de la fin du journal.
Si l'enregistrement a été endommagé, il est impossible de créer une sauvegarde de la fin du journal, et vous devez restaurer la base de données.
Pour plus d’informations sur la sauvegarde d’un journal de transactions, consultez Sauvegardes des journaux de transactions (SQL Server).
Important
Lors d'une restauration de fichiers hors connexion, vous devez toujours effectuer une sauvegarde de la fin du journal avant de restaurer les fichiers. Lors d'une restauration de fichiers en ligne, vous devez toujours effectuer la sauvegarde de journal après la restauration des fichiers Cette opération est nécessaire pour permettre au fichier d'être récupéré dans un état cohérent avec le reste de la base de données.
Restaurez chaque fichier endommagé à partir de la sauvegarde la plus récente de ce fichier.
Restaurez la sauvegarde différentielle de fichiers la plus récente, si elle existe, pour chaque fichier restauré.
Restaurez dans l'ordre les sauvegardes du journal des transactions, en commençant par la sauvegarde correspondant aux fichiers restaurés les plus anciens jusqu'à la sauvegarde de la fin du journal créée à l'étape 1.
Vous devez restaurer les sauvegardes du journal des transactions créées après les sauvegardes de fichiers pour rendre à la base de données sa cohérence. Les sauvegardes du journal des transactions peuvent être rapidement restaurées par progression, car seuls les changements concernant les fichiers restaurés sont appliqués. La restauration de fichiers individuels est parfois une meilleure option que la restauration intégrale d'une base de données parce que les fichiers non endommagés ne sont pas copiés puis restaurés par progression. Cependant, la lecture de la séquence complète des sauvegardes de journaux reste nécessaire.
Récupérez la base de données.
Remarque
Les sauvegardes de fichiers peuvent également servir à restaurer la base de données à un état antérieur dans le temps. Pour cela, vous devez restaurer un jeu complet de sauvegardes de fichiers, puis restaurer dans l'ordre les sauvegardes du journal des transactions pour atteindre un moment cible postérieur à la fin de la dernière sauvegarde de fichiers restaurée. Pour plus d’informations sur la récupération jusqu’à une date et heure, consultez Restaurer une base de données SQL Server jusqu’à une limite dans le temps (mode de récupération complète).
Séquence de restauration Transact-SQL pour une restauration de fichiers hors connexion (mode de restauration complète)
Un scénario de restauration de fichiers consiste en une séquence de restauration unique qui copie, restaure par progression et récupère les données appropriées.
Cette section présente les options RESTORE essentielles pour une séquence de restauration de fichiers. La syntaxe et les détails qui ne sont pas pertinents sont omis.
L'exemple de séquence de restauration suivant illustre une restauration hors ligne de deux fichiers secondaires, A
et B
, à l'aide de WITH NORECOVERY. Ensuite, deux sauvegardes de journal sont appliquées à l'aide de NORECOVERY, suivies de la sauvegarde de la fin du journal qui est restaurée à l'aide de WITH RECOVERY.
Remarque
L'exemple de séquence de restauration suivant commence par placer le fichier hors connexion, puis crée une sauvegarde de la fin du journal.
--Take the file offline.
ALTER DATABASE database_name MODIFY FILE SET OFFLINE;
-- Back up the currently active transaction log.
BACKUP LOG database_name
TO <tail_log_backup>
WITH NORECOVERY;
GO
-- Restore the files.
RESTORE DATABASE database_name FILE=name
FROM <file_backup_of_file_A>
WITH NORECOVERY;
RESTORE DATABASE database_name FILE=<name> ......
FROM <file_backup_of_file_B>
WITH NORECOVERY;
-- Restore the log backups.
RESTORE LOG database_name FROM <log_backup>
WITH NORECOVERY;
RESTORE LOG database_name FROM <log_backup>
WITH NORECOVERY;
RESTORE LOG database_name FROM <tail_log_backup>
WITH RECOVERY;
Exemples
Exemple : restauration en ligne d’un fichier en lecture/écriture (mode de récupération complète)
Exemple : restauration en ligne d’un fichier en lecture seule (mode de restauration complète)
Tâches associées
Pour restaurer des fichiers et des groupes de fichiers
Voir aussi
Sauvegarde et restauration : Interopérabilité et coexistence (SQL Server)
Sauvegardes différentielles (SQL Server)
Sauvegardes de fichiers complètes (SQL Server)
Backup Overview (SQL Server)
Vue d'ensemble de la restauration et de la récupération (SQL Server)
RESTORE (Transact-SQL)
Restaurations de base de données complètes (mode de récupération simple)
Restaurations fragmentaires (SQL Server)