Microsoft distribuie Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) sau Microsoft SQL Server 2012 remedieri într-un singur fișier descărcabil. Deoarece remedierile sunt cumulative, fiecare lansare nouă conține toate remedierile rapide și toate actualizările de securitate care au fost incluse cu versiunea anterioară SQL Server 2008 R2 Service Pack 1 (SP1) sau Microsoft SQL Server 2012 Update release.
Simptome
Luați în considerare următorul scenariu:
-
Creați cel puțin două publicații de reproducere tranzacțională bazate pe o bază de date în Microsoft SQL Server 2008 R2 sau în Microsoft SQL Server 2012.
-
Fiecare publicare are cel puțin un articol. Articolele nu se suprapun și fiecare articol aparține unei singure publicații.
-
Setați proprietatea @sync_method a publicațiilor la concurente.
-
Setați proprietatea @immediate_sync a publicațiilor la True.
-
Setați parametrul MaxCmdsInTran al agentului de cititor de jurnal la o valoare diferită de zero.
-
Una dintre publicații primește mai multe inserturi într-o singură tranzacție.
-
După ce tranzacția este săvârșită, agentul de cititor de jurnal începe să proceseze și să scindeze tranzacția conform parametrului MaxCmdsInTran .
-
Agentul instantaneu din altă publicație pornește înainte ca agentul de cititor de jurnal să termine activitatea.
În acest scenariu, agentul de cititor de jurnal nu reușește și primiți următorul mesaj de eroare:
Procesul nu a putut executa ' sp_MSadd_replcmds ' pe ' server\instance '. (Sursă: MSSQLServer, număr de eroare: 1007) Imposibil de inserat rândul cheie duplicat în obiectul ' dbo. MSrepl_commands ' cu index unic ' ucMSrepl_commands '. (Sursă: MSSQLServer, număr de eroare: 1007)
Rezolvare
Informații despre actualizarea cumulativă
SQL Server 2012
Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 1 pentru SQL Server 2012. Pentru mai multe informații despre acest pachet de actualizare cumulativă, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
2679368 Pachetul de actualizare cumulativă 1 pentru SQL Server 2012Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu versiunea anterioară SQL Server 2012 fix release. Microsoft recomandă să luați în considerare aplicarea celei mai recente versiuni de remediere care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:
2692828 SQL Server 2012 construiește care au fost lansate după ce s-a lansat SQL Server 2012 Trebuie să aplicați o remediere rapidă SQL Server 2012 la o instalare de SQL Server 2012.
Pachetul de actualizare cumulativă 4 pentru SQL Server 2008 R2 SP1
Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 4. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativă pentru SQL Server 2008 R2 SP1, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
2633146 Pachetul de actualizare cumulativă 4 pentru SQL Server 2008 R2 SP1Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în versiunea anterioară SQL Server 2008 R2 SP1. Vă recomandăm să luați în considerare aplicarea celei mai recente versiuni de remediere care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:
2567616 SQL Server 2008 R2 construiește care au fost lansate după ce s-a lansat SQL Server 2008 R2 SP1
Soluție de evitare
Pentru a evita această problemă, utilizați una dintre metodele următoare:
-
Nu setați proprietatea @sync_method a publicațiilor la "simultan" și nu setați proprietatea @immediate_sync a publicațiilor la "True".
-
Setați valoarea parametrului MaxCmdsInTran la zero.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.