Procédure : restaurer une base de données en utilisant un nouvel emplacement et un nouveau nom (Transact-SQL)

Mis à jour : 14 avril 2006

Cette rubrique explique comment restaurer une base de données à un nouvel emplacement en utilisant, si nécessaire, un nouveau nom.

ms190447.security(fr-fr,SQL.90).gifRemarque relative à la sécurité :
Nous vous recommandons de ne pas attacher ou de restaurer des bases de données provenant de sources inconnues ou non approuvées. Ces bases de données peuvent contenir du code malveillant susceptible d'exécuter du code Transact-SQL indésirable ou de provoquer des erreurs en modifiant le schéma ou la structure physique des bases de données. Avant d'utiliser une base de données provenant d'une source inconnue ou non approuvée, exécutez DBCC CHECKDB sur la base de données sur un serveur qui n'est pas un serveur de production et examinez le code (par exemple les procédures stockées ou le code défini par l'utilisateur) dans la base de données.

Pour restaurer une base de données avec un nouveau nom

  1. Exécutez éventuellement l'instruction RESTORE FILELISTONLY pour déterminer le nombre de fichiers et les noms des fichiers dans la sauvegarde complète de la base de données.

  2. Exécutez l'instruction RESTORE DATABASE pour restaurer la sauvegarde complète de la base de données, en spécifiant :

    • le nouveau nom de la base de données ;
      ms190447.note(fr-fr,SQL.90).gifRemarque :
      Si vous restaurez la base de données vers une autre instance de serveur, vous pouvez décider de conserver son nom d'origine au lieu d'en utiliser un nouveau.
    • l'unité de sauvegarde à partir de laquelle sera restaurée la sauvegarde complète de la base de données ;
    • la clause NORECOVERY si vous devez appliquer des sauvegardes du journal des transactions après la restauration des sauvegardes des fichiers. Dans le cas contraire, spécifiez la clause RECOVERY.
      Les sauvegardes du journal des transactions, si elles sont appliquées, doivent couvrir le temps de sauvegarde des fichiers.
    • La clause MOVE pour chaque fichier à déplacer lors de la restauration si les noms de fichier existent déjà. Il peut s'avérer nécessaire, par exemple, de créer une copie d'une base de données sur le même serveur afin de procéder à des essais. Dans ce cas, les fichiers de la base de données d'origine existent déjà et des noms de fichiers différents doivent donc être définis lorsque la copie de la base de données est créée au cours de la restauration.
      La syntaxe de la clause MOVE est la suivante :
      MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name'
      [ ,...n ] [ , ]
      Ici, logical_file_name_in_backup est le nom d'un fichier de données ou d'un fichier journal du jeu de sauvegarde et operating_system_file_name est l'emplacement où le fichier doit être restauré. n est un espace réservé indiquant que vous pouvez spécifier des instructions MOVE supplémentaires. Spécifiez une instruction MOVE pour chaque fichier logique du jeu de sauvegarde que vous voulez restaurer à un nouvel emplacement.
      ms190447.note(fr-fr,SQL.90).gifRemarque :
      Utilisez RESTORE FILELISTONLY pour obtenir une liste des fichiers logiques contenus dans le jeu de sauvegarde.

Exemple

Cet exemple crée une nouvelle base de données nommée MyAdvWorks. MyAdvWorks est une copie de la base de données AdventureWorks existante qui comprend deux fichiers : AdventureWorks_Data et AdventureWorks_Log. Dans la mesure où la base de données AdventureWorks existe déjà, les fichiers de la sauvegarde doivent être déplacés pendant l'opération de restauration. L'instruction RESTORE FILELISTONLY permet de déterminer le nombre et le nom des fichiers de la base de données en cours de restauration.

ms190447.note(fr-fr,SQL.90).gifRemarque :
Pour voir un exemple de création d'une sauvegarde complète de la base de données AdventureWorks, consultez Procédure : créer une sauvegarde complète de base de données (Transact-SQL).
ms190447.note(fr-fr,SQL.90).gifRemarque :
Les exemples de sauvegarde et de restauration du journal des transactions, notamment les restaurations dans le temps, utilisent la base de données MyAdvWorks_FullRM qui est créée à partir de AdventureWorks, comme dans l'exemple MyAdvWorks suivant. Toutefois, la base de données MyAdvWorks_FullRM ainsi obtenue doit être modifiée pour utiliser le mode de restauration complète : ALTER DATABASE MyAdvWorks_FullRM SET RECOVERY FULL.
USE master
GO
-- First determine the number and names of the files in the backup.
-- AdventureWorks_Backup is the name of the backup device.
RESTORE FILELISTONLY
   FROM AdventureWorks_Backup
-- Restore the files for MyAdvWorks.
RESTORE DATABASE MyAdvWorks
   FROM AdventureWorks_Backup
   WITH RECOVERY,
   MOVE 'AdventureWorks_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf', 
   MOVE 'AdventureWorks_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf'
GO

Voir aussi

Concepts

Gestion des métadonnées lors de la mise à disposition d'une base de données sur une autre instance de serveur
Considérations sur la sécurité pour les sauvegardes et la restauration
Copie de bases de données avec la sauvegarde et la restauration

Autres ressources

RESTORE (Transact-SQL)
Didacticiel de SQL Server Management Studio

Aide et Informations

Assistance sur SQL Server 2005