Restaurer des fichiers et groupes de fichiers en remplaçant des fichiers existants (SQL Server)

S’applique à :SQL Server

Cette rubrique explique comment restaurer des fichiers et des groupes de fichiers à partir de fichiers existants dans SQL Server en utilisant SQL Server Management Studio ou Transact-SQL.

Limitations et restrictions

  • L’administrateur système chargé de restaurer les fichiers et groupes de fichiers doit être la seule personne utilisant la base de données à restaurer.

  • RESTORE n’est pas autorisé dans une transaction explicite ou implicite.

  • Dans le modèle de récupération complet ou le modèle de récupération utilisant les opérations en bloc, avant de pouvoir restaurer des fichiers, vous devez d'abord sauvegarder le journal des transactions actif (appelé la fin du journal). Pour plus d’informations, consultez Sauvegarder un journal des transactions (SQL Server).

  • Pour restaurer une base de données chiffrée, vous devez avoir accès au certificat ou à la clé asymétrique qui a servi à chiffrer la base de données. Sans le certificat et la clé asymétrique, la base de données ne peut pas être restaurée. En conséquence, le certificat utilisé pour chiffrer la clé de chiffrement de base de données doit être conservé tant que la sauvegarde est utile. Pour plus d'informations, consultez SQL Server Certificates and Asymmetric Keys.

autorisations

Si la base de données en cours de restauration n’existe pas, l’utilisateur doit disposer CREATE DATABASE des autorisations nécessaires pour pouvoir s’exécuter RESTORE. Si la base de données existe, RESTORE les autorisations par défaut sont accordées aux membres des rôles serveur fixes sysadmin et dbcreator et au propriétaire (dbo) de la base de données (pour l’option FROM DATABASE_SNAPSHOT, la base de données existe toujours).

RESTORE les autorisations sont accordées aux rôles dans lesquels les informations d’appartenance sont toujours facilement disponibles pour le serveur. Étant donné que l’appartenance au rôle de base de données fixe ne peut être vérifiée que lorsque la base de données est accessible et non endommagée, ce qui n’est pas toujours le cas lorsqu’elle RESTORE est exécutée, les membres du rôle de base de données fixe db_owner n’ont RESTORE pas d’autorisations.

Utilisation de SQL Server Management Studio

Pour restaurer des fichiers et groupes de fichiers en remplaçant des fichiers existants

  1. Dans l’Explorateur d’objets, connectez-vous à une instance du moteur de base de données SQL Server, développez cette instance, puis développez Bases de données.

  2. Cliquez avec le bouton droit sur la base de données de votre choix, pointez sur Tâcheset sur Restaurer, puis cliquez sur Fichiers et groupes de fichiers.

  3. Sur la page Général , dans la zone de liste Vers la base de données , entrez la base de données à restaurer. Vous pouvez entrer une nouvelle base de données ou choisir une base de données existante dans la liste déroulante. La liste contient toutes les bases de données sur le serveur, à l'exception des bases de données système master et tempdb.

  4. Pour préciser la source et l'emplacement des jeux de sauvegarde à restaurer, cliquez sur l'une des options suivantes :

    • À partir de la base de données

      Entrez un nom de base de données dans la zone de liste. Cette liste ne contient que les bases de données ayant été sauvegardées d'après l'historique de sauvegarde de msdb .

    • Depuis l'appareil

      Cliquez sur le bouton de recherche. Dans la boîte de dialogue Spécifier les unités de sauvegarde , sélectionnez l'un des types d'unités proposés dans la zone de liste Type de support de sauvegarde . Pour sélectionner une ou plusieurs unités pour la zone de liste Support de sauvegarde , cliquez sur Ajouter.

      Après avoir ajouté les unités souhaitées à la zone de liste Support de sauvegarde , cliquez sur OK pour revenir à la page Général .

  5. Dans la grille Sélectionnez les ensembles de sauvegarde à restaurer, sélectionnez les sauvegardes à restaurer. Cette grille affiche les sauvegardes disponibles pour l'emplacement spécifié. Par défaut, un plan de récupération est suggéré. Pour ignorer le plan de récupération suggéré, vous pouvez modifier les sélections dans la grille. Les sauvegardes qui dépendent d'une sauvegarde désélectionnée sont automatiquement désélectionnées.

    En-tête de colonne Valeurs
    Restaurer Les cases à cocher sélectionnées correspondent aux jeux de sauvegarde à restaurer.
    Nom Nom du jeu de sauvegarde.
    Type de fichier Spécifie le type de données de la sauvegarde : Données, Journalou Données Filestream. Les données qui sont contenues dans les tables sont dans les fichiers Données . Les données du journal des transactions sont dans les fichiers Journaux . Les données des objets BLOB (Binary Large Object) qui sont stockées dans le système de fichiers se trouvent dans des fichiers Données Filestream .
    Type Type de sauvegarde effectué : Complète, Différentielleou Journal des transactions.
    Serveur Nom de l'instance Base de données-Moteur ayant effectué l'opération de sauvegarde.
    Nom logique du fichier Le nom logique du fichier.
    Base de données Nom de la base de données impliquée dans la sauvegarde.
    Date de début Date et heure de lancement de l'opération de sauvegarde, présentée conformément aux paramètres régionaux du client.
    Date de fin Date et heure de fin de l'opération de sauvegarde, exprimée d'après les paramètres régionaux du client.
    Taille Taille du jeu de sauvegarde, exprimée en octets.
    Nom d’utilisateur Nom de l'utilisateur qui a exécuté l'opération de sauvegarde.
  6. Dans le volet Sélectionner une page , cliquez sur la page Options .

  7. Dans le panneau Options de restauration , sélectionnez Remplacer la base de données existante (WITH REPLACE). L'opération de restauration remplace les bases de données existantes et leurs fichiers associés, même si une autre base de données ou un autre fichier existant porte le même nom.

  8. Cliquez sur OK.

Utilisation de Transact-SQL

Pour restaurer des fichiers et groupes de fichiers en remplaçant des fichiers existants

  1. Exécutez l’instruction RESTOREDATABASE pour restaurer la sauvegarde de fichier et de groupe de fichiers, en spécifiant :

    • le nom de la base de données à restaurer ;

    • l'unité de sauvegarde à partir de laquelle sera restaurée la sauvegarde complète de la base de données ;

    • La clause FILE pour chaque fichier à restaurer.

    • La clause FILEGROUP pour chaque groupe de fichiers à restaurer.

    • Option REPLACE permettant de spécifier que chaque fichier peut être restauré en remplaçant des fichiers existants du même nom et au même emplacement.

      Attention

      Utilisez l’option REPLACE avec précaution. Pour plus d’informations, consultez .

    • L'option NORECOVERY. Si les fichiers n'ont pas été modifiés depuis la création de la sauvegarde, spécifiez la clause RECOVERY.

  2. Si les fichiers ont été modifiés après la création de la sauvegarde de fichiers, exécutez l’instruction RESTORE LOG pour appliquer la sauvegarde du journal des transactions, en spécifiant :

    • le nom de la base de données à laquelle sera appliqué le journal des transactions ;

    • l'unité de sauvegarde à partir de laquelle sera restaurée la sauvegarde du journal des transactions ;

    • la clause NORECOVERY si vous devez appliquer une autre sauvegarde du journal des transactions après la sauvegarde en cours. Dans les autres cas, spécifiez la clause RECOVERY.

      Les sauvegardes du journal des transactions, lorsqu’elles sont appliquées, doivent couvrir le temps de sauvegarde des fichiers et groupes de fichiers.

Exemple (Transact-SQL)

L'exemple suivant illustre la restauration des fichiers et des groupes de fichiers pour la base de données MyNwind , ainsi que le remplacement des fichiers existants qui portent le même nom. Deux journaux de transactions seront également appliqués pour restaurer la base de données à l'heure actuelle.

USE master;  
GO  
-- Restore the files and filegroups for MyNwind.  
RESTORE DATABASE MyNwind  
   FILE = 'MyNwind_data_1',  
   FILEGROUP = 'new_customers',  
   FILE = 'MyNwind_data_2',  
   FILEGROUP = 'first_qtr_sales'  
   FROM MyNwind_1  
   WITH NORECOVERY,  
   REPLACE;  
GO  
-- Apply the first transaction log backup.  
RESTORE LOG MyNwind  
   FROM MyNwind_log1  
   WITH NORECOVERY;  
GO  
-- Apply the last transaction log backup.  
RESTORE LOG MyNwind  
   FROM MyNwind_log2  
   WITH RECOVERY;  
GO