CORRECTIF : l'agent de distribution peut ignorer des certaines lignes lorsque vous configurez une réplication transactionnelle qui utilise le «-SkipErrors " paramètre dans SQL Server 2005

Traductions disponibles Traductions disponibles
Numéro d'article: 938671 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Symptômes

Lorsque vous configurez une réplication transactionnelle qui utilise le -SkipErrors paramètre dans Microsoft SQL Server 2005, l'agent de distribution peut ignorer certaines lignes. Ce comportement provoque un problème d'incohérence de données entre l'éditeur et les abonnés.

En outre, lorsque ce problème se produit, l'agent de distribution peut afficher les messages suivants :
007-05-18 22:49:38.195 Le processus n'a pas pu achever dernier par lot en mode multi-diffusion en continu, il a été réinitialisé en mode de connexion unique et est tenter à nouveau l'opération.

18-05-007 22:49:38.273 1 Ignorés (s) en appliquant des transactions sur l'abonné. 18-05-007 22:49:38.367 101 transactions avec 100 commandes ont été livrées.

18-05-007 22:49:38.477 100 transactions avec 100 commandes ont été livrées. 18-05-007 22:49:38.570 Ignorés (s) 1 lors de l'application transactions sur l'abonné.

18-05-007 22:49:38.664 100 transactions avec 100 commandes ont été livrées.

Résolution

Le correctif de ce problème a été tout d'abord publié en mise à jour cumulative 2. Pour plus d'informations sur l'obtention de ce package de mise à jour cumulative de SQL Server 2005 Service Pack 2, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
936305 Package de cumulative mise à jour 2 pour SQL Server 2005 Service Pack 2
note Les versions étant cumulatifs, chaque nouvelle version de correctif contient tous les correctifs et tous les correctifs de sécurité qui étaient fournis avec la précédente SQL Server 2005 version du correctif. Microsoft recommande que vous considérez comme application de la version de correctif plus récente qui comprendra ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
937137 SQL Server 2005 crée publiés après que SQL Server 2005 Service Pack 2 a été publié
Les correctifs Microsoft SQL Server 2005 sont créés pour service packs SQL Server spécifiques. Vous devez appliquer un correctif SQL Server 2005 Service Pack 2 à une installation de SQL Server 2005 Service Pack 2. Par défaut, aucun correctif qui est fourni dans un service pack SQL Server est inclu dans le prochain service pack SQL Server.

Statut

Microsoft a confirmé que c'est un problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Plus d'informations

Par défaut, lorsque l'agent de distribution rencontre une erreur, l'agent de distribution doit être arrêté. Si vous utilisez le paramètre ?SkipErrors des erreurs spécifiques, l'agent de distribution ignore ces erreurs et continue à traiter les transactions.

Procédure pour reproduire le problème

  1. Configurer un environnement de réplication. To do this, run the following scripts in SQL Query Analyzer.
    use master
    go
    exec sp_adddistributor  @distributor = @@SERVERNAME
    go
    exec sp_adddistributiondb  @database = 'distribution'
    go
    exec sp_adddistpublisher  @publisher = @@SERVERNAME, @distribution_db = 'distribution'
    go
    exec sp_replicationdboption pubdb, publish, false
    go
    exec sp_replicationdboption subdb, publish, false
    go
    if db_id('pubdb') is not null
        drop database pubdb
    go
    create database pubdb
    go
    if db_id('subdb') is not null
        drop database subdb 
    go
    create database subdb
    go
    exec sp_replicationdboption pubdb, publish, true
    go
    use pubdb
    go
    create table t(c1 int primary key, c2 int, c3 sysname null, c4 nchar(200) default 'a')
    go
    create unique index c2_idx on t(c2)
    go
    sp_addpublication @publication = 'p1', @status = 'active'
    go
    sp_addarticle @publication = 'p1', @article = 'a1', @source_table = 't', @schema_option = 0x00000000000300f3
    go
    sp_addsubscription @publication = 'p1', @article = 'all', @subscriber = @@servername, @destination_db = 'subdb'
    go
    
  2. Save the following command as a batch file, and then run the file to insert data.
    c: pushd "c:\program files\microsoft sql server\90\com\" del dist.out
    call snapshot.exe -publisher %COMPUTERNAME% -publisherdb pubdb -distributor %COMPUTERNAME% -distributorsecuritymode 1 -publication p1
    call logread.exe -publisher %COMPUTERNAME% -publisherdb pubdb -distributor %COMPUTERNAME% -distributorsecuritymode 1 
    call distrib.exe -publisher %COMPUTERNAME% -publisherdb pubdb -distributor %COMPUTERNAME% -distributorsecuritymode 1 -publication p1 -subscriber %COMPUTERNAME% -subscriberdb subdb 
    start cmd.exe /s /k "logread.exe -publisher %COMPUTERNAME% -publisherdb pubdb -distributor %COMPUTERNAME% -distributorsecuritymode 1 -continuous"
    start cmd.exe /s /k "distrib.exe -publisher %COMPUTERNAME% -publisherdb pubdb -distributor %COMPUTERNAME% -distributorsecuritymode 1 -publication p1 -subscriber %COMPUTERNAME% -subscriberdb subdb -subscriptionstreams 8 -SkipErrors 2601:2627 -Output dist.out -OutputVerboseLevel 2 -continuous"
    popd
    osql -E -S[SQL_server] -Q"insert subdb..t (c1, c2) values (1000, 1000)"
    osql -E -S[SQL_server] -Q"insert subdb..t (c1, c2) values (2500, 1015)"
    osql -E -S[SQL_server] -Q"begin tran declare @v int select @v = 1 while (@v < 1020) begin insert pubdb..t (c1, c2) values (@v, @v) select @v = @v + 1 end commit tran"
    osql -E -S[SQL_server] -Q"declare @v int select @v = 3100 while (@v < 3500) begin insert pubdb..t (c1, c2) values (@v, @v) select @v = @v + 1 waitfor delay '0:0:0.10' end"
    
    Remarque l'espace réservé SQL_server représente le nom de l'instance de SQL Server.
  3. Notez que les données n'a pas été répliquées à la base de données abonné.

Propriétés

Numéro d'article: 938671 - Dernière mise à jour: mercredi 1 août 2007 - Version: 1.4
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
Mots-clés : 
kbmt kbexpertiseinter kbqfe KB938671 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 938671
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com