Récupérer une base de données sans restaurer les données (Transact-SQL)
En général, toutes les données dans une base de données SQL Server sont restaurées avant que la base de données ne soit récupérée. Toutefois, une opération de restauration peut récupérer une base de données sans réellement restaurer une sauvegarde, par exemple lors de la récupération d'un fichier en lecture seule qui est cohérent avec la base de données. Il s'agit d'une restauration avec récupération uniquement. Lorsque des données hors ligne sont déjà cohérentes avec la base de données et doivent uniquement être rendues disponibles, une restauration avec récupération uniquement termine la récupération de la base de données et met les données en ligne.
Une restauration avec récupération uniquement peut se produire pour une base de données entière ou pour un ou plusieurs fichiers ou groupes de fichiers.
Restauration de base de données avec récupération uniquement
Une restauration de base de données avec récupération uniquement est utile dans les situations suivantes :
Vous n'avez pas récupéré la base de données lors de la restauration de la dernière sauvegarde au cours d'une séquence de restauration, et vous voulez à présent récupérer cette base de données pour la mettre en ligne.
La base de données est en mode veille, et vous voulez qu'elle puisse être mise à jour sans appliquer une autre sauvegarde de journal.
La syntaxe RESTORE pour une restauration de base de données avec récupération uniquement est la suivante :
RESTORE DATABASE database_name WITH RECOVERY
[!REMARQUE]
La clause FROM = <backup_device> n'est pas destinée aux restaurations avec récupération uniquement, car aucune sauvegarde n'est nécessaire.
Exemple
L'exemple suivant récupère l'exemple de base de données AdventureWorks2012 dans le cadre d'une opération de restauration sans restaurer les données.
-- Restore database using WITH RECOVERY.
RESTORE DATABASE AdventureWorks2012
WITH RECOVERY
[Haut de la page]
Restauration de fichier avec récupération uniquement
Une restauration de fichier avec récupération uniquement est utile dans la situation suivante :
Une base de données est restaurée par fragments. Une fois le groupe de fichiers primaire restauré, un ou plusieurs des fichiers non restaurés sont cohérents avec le nouvel état de la base de données, peut-être pour avoir été en lecture seule un moment. Ces fichiers doivent seulement être récupérés ; la copie des données n'est pas nécessaire.
Une opération de restauration avec récupération uniquement met en ligne les données du groupe de fichiers hors connexion ; aucune phase de copie des données ni d'annulation ou de restauration par progression n'est effectuée. Pour plus d'informations sur les phases de restauration, consultez Vue d'ensemble de la restauration et de la récupération (SQL Server).
La syntaxe RESTORE pour une restauration de fichier avec récupération uniquement est la suivante :
RESTORE DATABASE database_name { FILE = logical_file_name | FILEGROUP = logical_filegroup_name }[ ,...n ] WITH RECOVERY
Exemple
L'exemple suivant illustre une restauration de fichier avec récupération uniquement des fichiers dans un groupe de fichiers secondaire, SalesGroup2, dans la base de données Sales. Le groupe de fichiers primaire a déjà été restauré au cours de l'étape initiale d'une restauration fragmentaire, et SalesGroup2 est cohérent avec le groupe de fichiers primaire restauré. La récupération de ce groupe de fichiers et sa mise en ligne ne requièrent qu'une seule instruction.
RESTORE DATABASE Sales FILEGROUP=SalesGroup2 WITH RECOVERY;
[Haut de la page]
Exemples de finalisation d'un scénario de restauration fragmentaire à l'aide d'une restauration avec récupération uniquement
Mode de récupération simple
Mode de restauration complète
Exemple : restauration fragmentaire d'une base de données (Mode de restauration complète)
Exemple : restauration fragmentaire de quelques groupes de fichiers (mode de restauration complète)
Voir aussi
Référence
Concepts
Restauration en ligne (SQL Server)
Restaurations fragmentaires (SQL Server)