Partager via


Contrôle de la création de fichiers ajoutés lors la restauration par progression

En règle générale, les modifications des fichiers et des groupes de fichiers après une sauvegarde complète sont gérées de manière transparente. Si un fichier est ajouté à une base de données après la dernière sauvegarde du groupe de fichiers, lorsque vous restaurez la base de données, la méthode la plus simple consiste à permettre à la restauration de recréer tous les fichiers dans la base de données restaurée. Toutefois, des fichiers en lecture seule non endommagés peuvent être recréés inutilement. Lorsque vous utilisez la restauration pour résoudre un problème isolé connu, vous pouvez optimiser la restauration en restaurant uniquement les fichiers dans lesquels le problème apparaît.

[!REMARQUE]

Si vous restaurez une sauvegarde contenant des fichiers dont la suppression est prévue par le moteur de base de données SQL Server, ce dernier ignore la copie des données et les restaurations par progression suivantes associées à ces fichiers. Pour plus d'informations sur ces phases, consultez Fonctionnement de la restauration et de la récupération de sauvegardes dans SQL Server.

La création d'un fichier par la restauration a lieu selon que vous définissez des fichiers ou des pages dans l'instruction RESTORE DATABASE, comme suit :

  • Si des fichiers ou des pages spécifiques ne sont pas définis

    Il s'agit du scénario type. Lorsque la restauration détecte une entrée de journal qui ajoute un fichier à la base de données, elle crée automatiquement le fichier et l'ajoute au jeu de restaurations par progression. Le comportement exact est lié a la définition ou non de groupes de fichiers dans l'instruction RESTORE DATABASE. Si vous ne définissez pas un groupe de fichiers, tous les nouveaux fichiers sont créés et ajoutés au jeu de restaurations par progression. Si vous définissez des groupes de fichiers, un nouveau fichier est créé et ajouté au jeu de restaurations par progression uniquement, si le fichier appartient à un groupe de fichiers spécifié.

    Méthode recommandée : Pour la plupart des restaurations, évitez de définir des fichiers spécifiques pour permettre aux fichiers créés par les transactions journalisées d'être recréés automatiquement.

  • Des fichiers ou des pages spécifiques sont définis :

    La définition de fichiers ou de pages spécifiques dans l'instruction RESTORE DATABASE définit le jeu de restaurations par progression exact. Lorsque vous définissez des fichiers ou des pages, la restauration suit exactement vos instructions et restaure uniquement ces éléments.

    Les fichiers non définis sont supposés être corrects et ne sont pas créés depuis le journal. Par conséquent, lors de la restauration d'une sauvegarde de journal qui contient une opération d'ajout de fichier, vous devez spécifier le nom du fichier ajouté dans l'instruction RESTORE.

Le reste de cette rubrique explique comment identifier les fichiers qui contiennent des opérations d'ajout de fichier, et garantir la recréation de ces fichiers lors de la séquence de restauration.

Identification du fichier journal qui contient une opération d'ajout de fichier

Vous pouvez identifier le fichier journal qui contient une opération d'ajout de fichier des manières suivantes :

  • Vous pouvez utiliser le numéro de séquence d'enregistrement de création de fichier (create_lsn). Ce numéro se trouve dans les affichages catalogue sys.database_files et sys.master_files.

  • Vous pouvez obtenir des informations sur le contenu des fichiers des sauvegardes dans les tables d'historique de sauvegarde dans msdb ou en utilisant RESTORE FILELISTONLY. Pour plus d'informations, consultez RESTORE FILELISTONLY (Transact-SQL).

Restauration de fichiers ou de pages sans une sauvegarde complète

Vous pouvez définir une liste de fichiers, une liste de pages ou un groupe de fichiers dans une restauration de journal ou différentielle. Ceci permet de restaurer les fichiers ou les pages pour lesquels il n'existe pas de sauvegarde complète de la base de données. La restauration d'un fichier ou d'une page depuis une sauvegarde de journal ou différentielle constitue une exception à la règle qui consiste à démarrer une séquence de restauration par une sauvegarde complète.

La syntaxe de base de restauration depuis une sauvegarde différentielle de fichiers est :

RESTORE DATABASE database_name <file_filegroup_page_list> FROM <differential backup>

La syntaxe de base de restauration depuis une sauvegarde de journal est :

RESTORE LOG database_name <file_filegroup_page_list> FROM <log backup>