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 NULL
et @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;