Al momento sei offline in attesa che la connessione Internet venga ristabilita

FIX: L'agente di distribuzione possibile ignorare alcune righe quando si configura una replica transazionale che utilizza il "-SkipErrors" parametro in SQL Server 2005

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 938671
Sintomi
Quando si configura una replica transazionale che utilizza il -SkipErrors parametro in Microsoft SQL Server 2005, l'agente di distribuzione è possibile ignorare alcune righe. Questo comportamento causa un problema di incoerenza dei dati tra l'autore e i sottoscrittori.

Inoltre, quando si verifica questo problema, l'agente di distribuzione potrebbe visualizzare i messaggi seguenti:
007-05-18 22:49:38.195 Processo Impossibile completare l'ultimo batch in modalità di flusso in più, è stata ripristinata alla modalità singola connessione e viene ripetizione dell'operazione.

007-05-18 22:49:38.273 1 Ignorati errori quando si applicano transazioni nel server di sottoscrizione. 007-05-18 22:49:38.367 101 transazioni con 100 comandi sono state recapitate.

007-05-18 22:49:38.477 100 transazioni con 100 comandi sono state recapitate. 007-05-18 22:49:38.570 Ignorato 1 errori durante l'applicazione delle transazioni nel server di sottoscrizione.

007-05-18 22:49:38.664 100 transazioni con 100 comandi sono state recapitate.
Risoluzione
La correzione di questo problema è stata rilasciata prima nell'aggiornamento cumulativo 2. Per ulteriori informazioni su come ottenere il pacchetto di aggiornamento cumulativo per SQL Server 2005 Service Pack 2, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
936305Pacchetto di aggiornamento cumulativo 2 per SQL Server 2005 Service Pack 2
Nota Poiché le generazioni sono cumulative, ogni nuova versione di correzione contiene tutti gli aggiornamenti rapidi e tutte le correzioni protezione rilasciate con SQL Server 2005 precedente versione di correzione. Microsoft consiglia di considerare applicare la correzione rapida per la versione più recente che contiene questo aggiornamento rapido (hotfix). Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
937137Versioni di SQL Server 2005 rilasciate dopo il rilascio di SQL Server 2005 Service Pack 2
Gli hotfix di Microsoft SQL Server 2005 vengono creati per service pack specifici di SQL Server. È necessario applicare un hotfix di SQL Server 2005 Service Pack 2 a un'installazione di SQL Server 2005 Service Pack 2. Per impostazione predefinita, qualsiasi hotfix fornito in un service pack di SQL Server è incluso nel successivo service pack SQL Server.
Status
Microsoft ha confermato che questo problema riguarda i prodotti sono elencati nella sezione "Si applica a".
Informazioni
Per impostazione predefinita, quando l'agente di distribuzione viene rilevato un errore, l'agente di distribuzione deve essere arrestato. Se si utilizza il parametro –SkipErrors per errori specifici, l'agente di distribuzione ignora gli errori e continuerà a elaborare le transazioni successive.

Procedura per riprodurre il problema

  1. Consente di impostare un ambiente di replica. To do this, run the following scripts in SQL Query Analyzer.
    use mastergoexec sp_adddistributor  @distributor = @@SERVERNAMEgoexec sp_adddistributiondb  @database = 'distribution'goexec sp_adddistpublisher  @publisher = @@SERVERNAME, @distribution_db = 'distribution'goexec sp_replicationdboption pubdb, publish, falsegoexec sp_replicationdboption subdb, publish, falsegoif db_id('pubdb') is not null    drop database pubdbgocreate database pubdbgoif db_id('subdb') is not null    drop database subdb gocreate database subdbgoexec sp_replicationdboption pubdb, publish, truegouse pubdbgocreate table t(c1 int primary key, c2 int, c3 sysname null, c4 nchar(200) default 'a')gocreate unique index c2_idx on t(c2)gosp_addpublication @publication = 'p1', @status = 'active'gosp_addarticle @publication = 'p1', @article = 'a1', @source_table = 't', @schema_option = 0x00000000000300f3gosp_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.outcall snapshot.exe -publisher %COMPUTERNAME% -publisherdb pubdb -distributor %COMPUTERNAME% -distributorsecuritymode 1 -publication p1call 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"popdosql -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"
    Nota il segnaposto SQL_server rappresenta il nome dell'istanza di SQL Server.
  3. Si noti che i dati non sono stati replicati al database di sottoscrizione.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 938671 - Ultima revisione: 08/01/2007 17:52:33 - Revisione: 1.4

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

  • kbmt kbexpertiseinter kbqfe KB938671 KbMtit
Feedback
rc="https://c.microsoft.com/ms.js">