sp_repldone (Transact-SQL)

S’applique à : SQL Server Azure SQL Managed Instance

Met à jour l'enregistrement identifiant la dernière transaction distribuée du serveur. Cette procédure stockée est exécutée sur le serveur de publication dans la base de données de publication.

Attention

Si vous exécutez sp_repldone manuellement, vous pouvez invalider l’ordre et la cohérence des transactions livrées. Vous devez uniquement utiliser sp_repldone pour résoudre les problèmes de réplication comme indiqué par un professionnel de la prise en charge de la réplication expérimenté.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_repldone [ @xactid = ] xactid
    , [ @xact_seqno = ] xact_seqno
    [ , [ @numtrans = ] numtrans ]
    [ , [ @time = ] time ]
    [ , [ @reset = ] reset ]
[ ; ]

Arguments

[ @xactid = ] xactid

Numéro de séquence de journal (LSN) du premier enregistrement pour la dernière transaction distribuée du serveur. @xactid est binary(10), sans valeur par défaut.

[ @xact_seqno = ] xact_seqno

LSN du dernier enregistrement pour la dernière transaction distribuée du serveur. @xact_seqno est binary(10), sans valeur par défaut.

[ @numtrans = ] numtrans

Nombre de transactions distribuées. @numtrans est int, sans valeur par défaut.

[ @time = ] heure

Nombre de millisecondes, le cas échéant, nécessaire pour distribuer le dernier lot de transactions. @time est int, sans valeur par défaut.

[ @reset = ] réinitialisation

État de réinitialisation. @reset est int, sans valeur par défaut.

  • Si 1, toutes les transactions répliquées dans le journal sont marquées comme distribuées.
  • Si 0, le journal des transactions est réinitialisé à la première transaction répliquée et aucune transaction répliquée n’est marquée comme distribuée.

@reset est valide uniquement lorsque les @xactid et les @xact_seqno sont NULL.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Notes

sp_repldone est utilisé dans la réplication transactionnelle.

sp_repldone est utilisé par le processus de lecture du journal pour suivre les transactions qui ont été distribuées.

Avec sp_repldone, vous pouvez indiquer manuellement au serveur qu’une transaction a été répliquée (envoyée au serveur de distribution). Elle vous permet également de modifier la transaction marquée comme étant la prochaine en attente de réplication. Il est possible d'avancer et de reculer dans la liste des transactions répliquées. (Toutes les transactions antérieures ou simultanées à cette transaction seront signalées comme distribuées).

Les paramètres requis @xactid et @xact_seqno peuvent être obtenus à l’aide sp_repltrans ou sp_replcmds.

Cette procédure peut être utilisée dans les situations d'urgence pour permettre la troncature du journal des transactions lorsque des transactions en attente de réplication sont présentes. Pour plus d’informations, consultez la section Exemples.

autorisations

Les membres du rôle serveur fixe sysadmin ou du rôle de base de données fixe db_owner peuvent s’exécuter sp_repldone.

Exemples

Lorsque @xactid est NULL, @xact_seqno est NULLet @reset est 1, toutes les transactions répliquées dans le journal sont marquées comme distribuées. Cette fonction est utile lorsque il y a des transactions répliquées situées dans le journal des transactions qui ne sont plus valides et que vous désirez tronquer le journal, par exemple :

EXEC sp_repldone
    @xactid = NULL,
    @xact_seqno = NULL,
    @numtrans = 0,
    @time = 0,
    @reset = 1;