Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette rubrique s’applique uniquement aux bases de données qui contiennent des transactions marquées et qui utilisent les modèles de récupération complètes ou journalisées en bloc.
Pour plus d’informations sur la configuration requise pour la restauration vers un point de récupération spécifique, consultez Restaurer une base de données SQL Server à un point dans le temps (modèle de récupération complète).
SQL Server prend en charge l’insertion de marques nommées dans le journal des transactions afin de permettre la récupération jusqu'à cette marque spécifique. Les marques de journal sont spécifiques à la transaction et sont insérées uniquement si leur transaction associée est valide. Par conséquent, les marques peuvent être liées à un travail spécifique et vous pouvez revenir à un point qui inclut ou exclut ce travail.
Avant d’insérer des marques nommées dans le journal des transactions, tenez compte des éléments suivants :
Étant donné que les marques de transaction consomment de l’espace journal, utilisez-les uniquement pour les transactions qui jouent un rôle significatif dans la stratégie de récupération de base de données.
Une fois qu’une transaction marquée a été validée, une ligne est insérée dans la table logmarkhistory dans msdb.
Si une transaction marquée s’étend sur plusieurs bases de données sur le même serveur de base de données ou sur différents serveurs, les marques doivent être enregistrées dans les journaux de toutes les bases de données affectées. Pour plus d’informations, consultez Utiliser des transactions marquées pour récupérer les bases de données associées de manière cohérente (mode de récupération complète).
Remarque
Pour plus d’informations sur la façon de marquer des transactions, consultez Utiliser des transactions marquées pour récupérer des bases de données associées de manière cohérente (mode de récupération complète) .
Syntaxe Transact-SQL pour insérer des marques nommées dans le journal des transactions
Pour insérer des marques dans les journaux des transactions, utilisez l’instruction BEGIN TRANSACTION et la clause WITH MARK [description]. La marque est nommée de la même façon que la transaction. La description facultative est une description textuelle de la marque, et non le nom de la marque. Par exemple, le nom de la transaction et de la marque créée dans l’instruction suivante BEGIN TRANSACTION est Tx1:
BEGIN TRANSACTION Tx1 WITH MARK 'not the mark name, just a description'
Le journal des transactions enregistre le nom de la marque (nom de transaction), la description, la base de données, l’utilisateur, datetime les informations et le numéro de séquence de journal (LSN). Les datetime informations sont utilisées avec le nom de la marque pour identifier de manière unique la marque.
Pour plus d’informations sur l’insertion d’une marque dans une transaction qui s’étend sur plusieurs bases de données, consultez Utiliser des transactions marquées pour récupérer des bases de données associées de manière cohérente (mode de récupération complète).
Syntaxe Transact-SQL pour le retour vers une marque
Lorsque vous ciblez une transaction marquée à l’aide d’une instruction RESTORE LOG, vous pouvez utiliser l’une des clauses suivantes pour vous arrêter à la marque ou immédiatement avant celle-ci :
Utilisez la clause WITH STOPATMARK = '
<mark_name>' pour spécifier que la transaction marquée est le point de récupération.STOPATMARK avance jusqu'à la marque et inclut la transaction marquée dans le déplacement vers l'avant.
Utilisez la clause WITH STOPBEFOREMARK = '
<mark_name>' pour spécifier que l’enregistrement du journal qui est immédiatement avant la marque est le point de récupération.STOPBEFOREMARK avance jusqu'à la marque et exclut la transaction du processus de restauration.
Les options STOPATMARK et STOPBEFOREMARK prennent tous deux en charge une clause AFTER datetime facultative. Lorsque datetime est utilisé, les noms de marques ne doivent pas être uniques.
Si "AFTER" datetime est omis, l'avancée s'arrête à la première marque portant le nom spécifié. Si AFTER datetime est spécifié, la restauration s’arrête à la première marque portant le nom spécifié, exactement à datetime ou après.
Remarque
Comme dans toutes les opérations de restauration dans le temps, la récupération vers une marque n’est pas autorisée lorsque la base de données subit des opérations qui sont journalisées en bloc.
Pour effectuer une restauration vers une transaction marquée
Restaurer une base de données dans une transaction marquée (SQL Server Management Studio)
Préparation des sauvegardes de journaux
Pour cet exemple, une stratégie de sauvegarde appropriée pour ces bases de données associées serait la suivante :
Utilisez le modèle de récupération complète pour les deux bases de données.
Créez une sauvegarde complète de chaque base de données.
Les bases de données peuvent être sauvegardées séquentiellement ou simultanément.
Avant de sauvegarder le journal des transactions, marquez une transaction qui s’exécute dans toutes les bases de données. Pour plus d’informations sur la création des transactions marquées, consultez Utiliser des transactions marquées pour récupérer des bases de données associées de manière cohérente (mode de récupération complète).
Sauvegardez le journal des transactions sur chaque base de données.
Récupération de la base de données vers une transaction marquée
Pour restaurer la sauvegarde
Créez des sauvegardes du journal des transactions des bases de données non endommagées, si possible.
Restaurez la sauvegarde complète de base de données la plus récente de chaque base de données.
Identifiez la transaction marquée la plus récente disponible dans toutes les sauvegardes du journal des transactions. Ces informations sont stockées dans la table logmarkhistory dans la base de données msdb sur chaque serveur.
Identifiez les sauvegardes de journaux (log) pour toutes les bases de données associées qui contiennent cette marque.
Restaurez chaque sauvegarde de journal, en vous arrêtant à la transaction marquée.
Récupérez chaque base de données.
Voir aussi
BEGIN TRANSACTION (Transact-SQL)
RESTORE (Transact-SQL)
Appliquer des sauvegardes de journal des transactions (SQL Server)
Utiliser des transactions marquées pour récupérer des bases de données associées de manière cohérente (modèle de récupération complète)
Vue d'ensemble de la restauration et de la récupération (SQL Server)
Restaurer une base de données SQL Server à un point dans le temps (modèle de récupération complète)
Planifier et effectuer des séquences de restauration (modèle de récupération complète)