Exécution d'une restauration de base de données complète (mode de restauration complète)

Lors d'une restauration complète de base de données, le but est de restaurer la totalité de la base de données. L'ensemble de la base de données est hors ligne pendant la durée de la restauration. Avant qu'une partie de la base de données ne soit en ligne, toutes les données sont récupérées dans un état cohérent où toutes les parties de la base de données sont chronologiquement synchronisées et aucune transaction non validée n'existe.

Avec le mode de restauration complète, la base de données peut être restaurée à un certain point chronologique. Ce point peut être la dernière mise à jour disponible, une date et une heure spécifiques ou une transaction marquée.

ms187495.security(fr-fr,SQL.90).gifRemarque relative à la sécurité :
Nous vous recommandons de ne pas attacher ni de restaurer des bases de données provenant de sources inconnues ou non approuvées. Ces bases de données peuvent contenir un code malveillant susceptible d'exécuter du code Transact-SQL non souhaité ou de générer 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.

Restauration d'une base de données complète

Généralement, la récupération d'une base de données au point d'échec comprend les étapes de base suivantes :

  1. Sauvegardez le journal des transactions actives (connu sous le nom de fin du journal). Cela entraîne la création d'une sauvegarde de fichier journal après défaillance. Si le journal des transactions actives n'est pas disponible, toutes les transactions contenues dans cette partie du journal sont perdues.
    ms187495.note(fr-fr,SQL.90).gifImportant :
    Dans le mode de récupération utilisant les journaux de transactions, la sauvegarde de tout journal contenant des opérations journalisées en bloc nécessite un accès à tous les fichiers de données dans la base de données. Si les fichiers de données ne sont pas accessibles, le journal des transactions ne peut pas être sauvegardé. Dans ce cas, vous devez répéter manuellement tous les changements effectués depuis la dernière sauvegarde du journal.
    Pour plus d'informations, consultez [Sauvegardes de fichier journal après défaillance](ms179314\(v=sql.90\).md).
  2. Restaurez la sauvegarde complète de base de données la plus récente sans récupérer la base de données (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY).
  3. S'il existe des sauvegardes différentielles, restaurez la plus récente sans récupérer la base de données (RESTORE DATABASE database_name WITH NORECOVERY).
  4. En commençant par la première sauvegarde du journal des transactions qui a été créée après la sauvegarde que vous venez de restaurer, restaurez les journaux en séquence avec l'instruction NORECOVERY.
  5. Récupérez la base de données (RESTORE DATABASE database_name WITH RECOVERY). Cette étape peut également être combinée avec la restauration de la dernière sauvegarde du journal.
  6. Une restauration de base de données complète peut généralement être récupérée à un moment donné ou sur une transaction marquée au sein d'une sauvegarde du journal. Cependant, en mode de récupération utilisant les journaux de transactions, si la sauvegarde du journal contient des modifications journalisées en bloc, la récupération dans le temps est impossible. Pour plus d'informations, consultez Restauration d'une base de données vers un point dans une sauvegarde.

Lors de la restauration complète d'une base de données, une séquence de restauration unique doit être utilisée. L'exemple suivant montre les options essentielles dans une séquence de restauration pour le scénario de restauration complète de base de données dans lequel la base de données est restaurée au point d'échec. Une séquence de restauration comprend une ou plusieurs opérations de restauration qui déplacent les données en une ou plusieurs phases. La syntaxe et les détails qui ne sont pas importants à cette fin sont omis.

La base de données est restaurée et restaurée par progression. Une base de données différentielle est utilisée pour réduire la durée de la restauration par progression. Cette séquence de restauration est destinée à éliminer toute perte de travail ; la dernière sauvegarde restaurée est une sauvegarde de fichier journal après défaillance.

La syntaxe de base RESTORE pour la séquence de restauration est :

  1. RESTORE DATABASE database FROM full database backup WITH NORECOVERY;
  2. RESTORE DATABASE database FROM full_differential_backup WITH NORECOVERY;
  3. RESTORE LOG database FROM log_backup WITH NORECOVERY;
    Répétez cette étape de restauration pour chaque sauvegarde du journal supplémentaire.
  4. RESTORE DATABASE database WITH RECOVERY;

Exemple

Pour l'exemple suivant, l'exemple de base de données AdventureWorks a été défini pour l'utilisation du mode de restauration complète avant que la base de données n'ait été sauvegardée. L'exemple crée une sauvegarde de fichier journal après défaillance de la base de données AdventureWorks. Ensuite, l'exemple restaure une sauvegarde complète de base de données antérieure et une sauvegarde du journal, puis celui-ci restaure la sauvegarde de fichier journal après défaillance. L'exemple récupère la base de données dans une dernière étape séparée.

ms187495.note(fr-fr,SQL.90).gifRemarque :
Cet exemple utilise une sauvegarde de base de données et une sauvegarde du journal créées dans la section « Utilisation des sauvegardes de base de données en mode de restauration complète » dans Sauvegardes complètes de base de données.

L'exemple commence par une instruction ALTER DATABASE qui affecte au mode de restauration l'option FULL.

USE master;
--Make sure the database is using the full recovery model.
ALTER DATABASE AdventureWorks SET RECOVERY FULL;
GO
--Create tail-log backup.
BACKUP LOG AdventureWorks 
TO DISK = 'Z:\SQLServerBackups\AdventureWorks.bak''Z:\SQLServerBackups\AdventureWorks.bak' 
   WITH NORECOVERY; GO
--Restore the full database backup (from backup set 1).
RESTORE DATABASE AdventureWorks 
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak' 
  WITH FILE=1, 
    NORECOVERY;

--Restore the regular log backup (from backup set 2).
RESTORE LOG AdventureWorks 
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak' 
  WITH FILE=2, 
    NORECOVERY;

--Restore the tail-log backup (from backup set 3).
RESTORE LOG AdventureWorks 
  FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'
  WITH FILE=3, 
    NORECOVERY;
GO
--recover the database:
RESTORE DATABASE AdventureWorks WITH RECOVERY;
GO

Récupération jusqu'à la défaillance

Pour restaurer une sauvegarde complète de base de données

Pour restaurer une sauvegarde différentielle de base de données

Pour restaurer une sauvegarde du journal des transactions

Après la restauration de vos sauvegardes ou de votre sauvegarde des données, vous devez restaurer toutes les sauvegardes ultérieures des journaux de transactions puis récupérer la base de données.

Pour restaurer une sauvegarde à l'aide de SMO (SQL Server Management Objects)

Récupération limitée dans le temps

En mode de restauration complète, une base de données peut être restaurée à un certain point chronologique dans une sauvegarde de journal. Le point chronologique peut correspondre à une date et à une heure spécifiques, à une transaction marquée ou à un numéro de séquence d'enregistrement. Pour plus d'informations, consultez Restauration d'une base de données vers un point dans une sauvegarde.

Prise en charge des sauvegardes dans les versions précédentes de SQL Server

Dans SQL Server 2005, vous pouvez restaurer une sauvegarde de base de données qui a été créée à l'aide de SQL Server version 7.0, SQL Server 2000 ou SQL Server 2005. Toutefois, les sauvegardes des bases de données master, model et msdb créées avec SQL Server 7.0 ou SQL Server 2000 ne peuvent pas être restaurées par SQL Server 2005. En outre, les sauvegardes de journal SQL Server 7.0 contenant des opérations de création d'index ne peuvent pas être restaurées dans SQL Server 2000 ou SQL Server 2005.

SQL Server 2005 utilise un chemin par défaut différent de celui des versions précédentes de SQL Server. Par conséquent, pour restaurer une base de données créée dans l'emplacement par défaut de SQL Server 7.0 ou SQL Server 2000 à partir des sauvegardes, vous devez utiliser l'option MOVE. Pour plus d'informations sur le nouveau chemin par défaut, consultez Emplacements des fichiers pour les instances par défaut et les instances nommées de SQL Server 2005.

ms187495.note(fr-fr,SQL.90).gifRemarque :
Les sauvegardes de bases de données créées avec SQL Server 6.5 ou une version antérieure possèdent un format incompatible et ne peuvent pas être restaurées dans SQL Server 2005. Pour plus d'informations sur la mise à niveau d'une base de données créée avec SQL Server 6.5 ou une version antérieure à SQL Server 2005, consultez Copie de bases de données à partir de SQL Server 6.5 ou de versions antérieures.

Voir aussi

Concepts

Sauvegarde avec le mode de récupération utilisant les journaux de transactions
Sauvegarde en mode de récupération complet
Sauvegardes différentielles de base de données
Sauvegardes complètes de base de données
Réduction du temps de récupération lors de la restauration d'une base de données
Fonctionnement de la restauration et de la récupération de sauvegardes dans SQL Server
Utilisation des sauvegardes de journaux de transactions

Autres ressources

Utilisation des séquences de restauration pour les bases de données SQL Server

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

17 juillet 2006

Nouveau contenu :
  • Ajout de la remarque relative à la sécurité.