sp_setsubscriptionxactseqno (Transact-SQL)
S’applique à : SQL Server
Utilisé lors de la résolution des problèmes pour spécifier la dernière transaction remise à l’aide du numéro de séquence de journal (LSN), ce qui permet à la Agent de distribution de commencer la remise à la prochaine transaction. Une fois qu’elle a redémarré, la Agent de distribution retourne des transactions supérieures à ce filigrane (LSN) à partir du cache de base de données de distribution (msrepl_commands). Cette procédure stockée est exécutée sur la base de données d'abonnement de l'Abonné. Non pris en charge pour les Abonnés non-SQL Server.
Attention
Si vous n'utilisez pas correctement cette procédure stockée ou si vous spécifiez une valeur de numéro d'enregistrement incorrecte, l'Agent de distribution annule les modifications appliquées au niveau de l'Abonné ou ignore toutes les modifications restantes.
Conventions de la syntaxe Transact-SQL
Syntaxe
sp_setsubscriptionxactseqno
[ @publisher = ] N'publisher'
, [ @publisher_db = ] N'publisher_db'
, [ @publication = ] N'publication'
, [ @xact_seqno = ] xact_seqno
[ ; ]
Arguments
[ @publisher = ] N’publisher'
Nom du serveur de publication. @publisher est sysname, sans valeur par défaut.
[ @publisher_db = ] N’publisher_db'
Nom de la base de données de publication. @publisher_db est sysname, sans valeur par défaut. Pour un serveur de publication non-SQL Server, @publisher_db est le nom de la base de données de distribution.
[ @publication = ] N’publication'
Nom de la publication. @publication est sysname, sans valeur par défaut. Lorsque plusieurs publications partagent le Agent de distribution, vous devez spécifier la valeur de ALL
@publication.
[ @xact_seqno = ] xact_seqno
LSN de la transaction suivante sur le serveur de distribution à appliquer sur l’Abonné. @xact_seqno est varbinary(16), sans valeur par défaut.
Jeu de résultats
Nom de la colonne | Type de données | Description |
---|---|---|
ORIGINAL XACT_SEQNO |
varbinary(16) | Numéro séquentiel d'enregistrement d'origine de la transaction suivante à appliquer à l'Abonné. |
UPDATED XACT_SEQNO |
varbinary(16) | Numéro séquentiel d'enregistrement mis à jour de la transaction suivante à appliquer à l'Abonné. |
SUBSCRIPTION STREAM COUNT |
int | Nombre de flux d'abonnements utilisés au cours de la dernière synchronisation. |
Valeurs des codes de retour
0
(réussite) ou 1
(échec).
Notes
sp_setsubscriptionxactseqno
est utilisé dans la réplication transactionnelle.
sp_setsubscriptionxactseqno
ne peut pas être utilisé dans une topologie de réplication transactionnelle d’égal à égal.
sp_setsubscriptionxactseqno
peut être utilisé pour ignorer une transaction spécifique à l’origine d’une erreur lorsqu’elle s’applique à l’Abonné. En cas d’échec et après l’arrêt du Agent de distribution, appelez sp_helpsubscriptionerrors au serveur de distribution pour récupérer la xact_seqno
valeur de la transaction ayant échoué, puis appelezsp_setsubscriptionxactseqno
, en passant cette valeur pour @xact_seqno. Cela garantit que seules les commandes après ce NSN sont traitées.
Spécifiez la valeur de 0
@xact_seqno pour remettre toutes les commandes en attente dans la base de données de distribution à l’Abonné.
sp_setsubscriptionxactseqno
risque d’échouer si le Agent de distribution utilise des flux multi-abonnements.
Lorsque cette erreur se produit, vous devez exécuter l'Agent de distribution avec un seul flux d'abonnements. Pour plus d'informations, consultez Replication Distribution Agent.
autorisations
Seuls les membres du rôle serveur fixe sysadmin ou db_owner rôle de base de données fixe peuvent s’exécuter sp_setsubscriptionxactseqno
.