ISPRAVLJANJE: operacija sinhronizacije vremena objedinjavanja objedinjene replikacije u sistemu Microsoft SQL Server 2005

Primenjuje se na: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Developer EditionMicrosoft SQL Server 2005 Enterprise Edition

Greška #: 50002786 (SQL hitna ispravka)
Microsoft raspoređuje Microsoft SQL Server 2005 ispravke kao jednu datoteku koja se može preuzeti. Budući da su ispravke kumulativne, svako novo izdanje sadrži sve hitne ispravke i sve bezbednosne ispravke koje su uključene u prethodno izdanje SQL Server 2005 fix.

Simptomi


Razmotrite sledeći scenario. U sistemu Microsoft SQL Server 2005 podešavate replikaciju za objedinjavanje. Zatim ćete ga rasporediti na pretplatnik. U ovom scenariju, kada pokrenete agent za objedinjavanje da biste sinhronizovali podatke, operacija ističe vreme kada agent za objedinjavanje poziva sp_MSmakegeneration uskladištenu proceduru. Pored toga, kada pokrenete sledeću izjavu u odnosu na repliciranu bazu podataka pretplatnika nakon završetka operacije, upit vraća neke zapise koji su podložni problemu:
select * from dbo.MSmerge_genhistory gh where not exists       (select * from dbo.MSmerge_contents as mc       where mc.generation = gh.generation)and not exists      (select * from dbo.MSmerge_tombstone as ts       where ts.generation = gh.generation)and genstatus = 0union select * from dbo.MSmerge_genhistory gh where exists       (select * from dbo.MSmerge_contents as mc      where mc.generation = gh.generation      and mc.tablenick <> gh.art_nick)or exists      (select * from dbo.MSmerge_tombstone as ts      where ts.generation = gh.generation      and ts.tablenick <> gh.art_nick)and genstatus = 0

Uzrok


Do ovog problema dolazi zato što postoji red u MSmerge_genhistory tabeli koji ispunjava jedan od sledećih uslova:
  • Generacija nema promene koje su mapirane na nju u tabeli MSmerge_tombstone ili u tabeli MSmerge_contents.
  • Jedan ili više redova koji su mapirani na generaciju imaju neispravnu vrednost u koloni " tablenick " u tabeli MSmerge_tombstone ili u tabeli MSmerge_contents.
Ova situacija dovodi do toga da sp_MSmakegeneration uskladištenu proceduru prelazi u beskonačnu petlju.

Rešenje


Popravka za ovaj problem je prvi put objavljena u kumulativnoj ispravci 8. Za više informacija o nabavljanju ovog paketa kumulativnih ispravki za SQL Server 2005 servisni paket 2 kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
951217 kumulativni paket nadopuna 8 za SQL Server 2005 Service Pack 2
Belešku S obzirom na to da su verzije kumulativne, svaka nova verzija ispravke sadrži sve hitne ispravke i sve bezbednosne ispravke koje su uključene u prethodno izdanje SQL Server 2005 fix. Microsoft preporučuje da razmotrite primenu najnovijih izdanja za popravku koje sadrži ovu hitnu ispravku. Za više informacija kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
937137 verzije sistema sql Server 2005 koje su objavljene nakon izdavanja SQL Server 2005 servisnog paketa 2
Microsoft SQL Server 2005 hitne ispravke se kreiraju za određene servisne pakete za SQL Server. Morate primeniti hitnu ispravku za SQL Server 2005 Service Pack 2 na instalaciju sistema SQL Server 2005 Service Pack 2. Sva hitna ispravka obezbeđena u SQL Server servisnom paketu je podrazumevano uključena u sledeći SQL Server servisni paket.

Rešenje


Da biste rešili ovaj problem, sledite ove korake:
  1. Otkažite operaciju sinhronizacije koja nije dovršena.
  2. Pokrenite sledeće izjave da biste dobili postavku generation_leveling_threshold za publikaciju:
    use <Publication Database Name>goexec sp_helpmergepublication @publication = '<Publication Name>'
    Zabeležite vrednost postavke generation_leveling_threshold.
  3. Pokrenite sledeće izjave da biste onemogućili nivelisanje generisanja i generisanje proizvodnje:
    use <Publication Database Name>exec sp_changemergepublication @publication = '<Publication Name>', @property = 'generation_leveling_threshold', @value = 0
  4. Sinhronizujte podatke za publikaciju.
  5. Kada se sinhronizacija uspešno dovrši, vratite generation_leveling_threshold na vrednost koju ste zabeležili u koraku 2. Da biste to uradili, pokrenite sledeće izjave:
    use <Publication Database Name>exec sp_changemergepublication @publication = '<Publication Name>', @property = 'generation_leveling_threshold', @value = <Value>
Nakon što ovaj metod upotrebite da biste zaobišli ovaj problem, do ovog problema će ponovo doći ako drugi pretplatnik pokuša da obradi generaciju. Ove korake morate ponoviti za sve pretplatnike koji su naišli na problem.

Status


Microsoft je potvrdio da je ovo problem kod Microsoft proizvoda koji su navedeni u odeljku "odnosi se na".

Više informacija


Za više informacija o tome koje datoteke se menjaju i za informacije o svim preduslova za primenu kumulativne paketa ispravki koji sadrži hitnu ispravku koja je opisana u ovom članku Microsoft baze znanja, kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
951217 kumulativni paket nadopuna 8 za SQL Server 2005 Service Pack 2

Reference


Za više informacija o listi verzija koje su dostupne nakon servisnog paketa SQL Server Service Pack 2 kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
937137 verzije sistema sql Server 2005 koje su objavljene nakon izdavanja SQL Server 2005 servisnog paketa 2
Za više informacija o modelu za postepeno servisiranje sistema SQL Server kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
935897 . model postepenog servisiranja je dostupan u timu SQL servera za isporuku hitnih ispravki za prijavljene probleme
Za više informacija o nabavljanju SQL Server 2005 Service Pack 2 kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
913089 kako nabaviti najnoviji servisni paket za SQL Server 2005
Za više informacija o novim funkcijama i poboljšanjima u sistemu SQL Server 2005 Service Pack 2 posetite sledeću Microsoft Web lokaciju:Za više informacija o šemi imenovanja za ispravke za SQL Server kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
822499 nova šema imenovanja za pakete softverskih ispravki za Microsoft SQL Server
Za više informacija o terminologiji za softverske ispravke kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
824684 opis standardne terminologije koja se koristi za opisivanje Microsoftovih softverskih dopuna