Poprawka: synchronizacja operacji replikacja scalająca limitu czasu w 2005 Microsoft SQL Server

Dotyczy: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Developer EditionMicrosoft SQL Server 2005 Enterprise Edition

Nr błędu: 50002786 (poprawka SQL)
Microsoft rozpowszechnia poprawki 2005 Microsoft SQL Server jako jeden plik do pobrania. Ponieważ poprawki są zbiorcze, każde nowe wydanie zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniego programu SQL Server 2005 naprawić wydania.

Symptomy


Rozważmy następujący scenariusz. W 2005 Microsoft SQL Server można skonfigurować replikacja scalająca. Następnie należy wdrożyć migawkę do subskrybenta. W tym scenariuszu po uruchomieniu agenta korespondencji seryjnej do synchronizowania danych, limit czasu operacji, gdy Agent korespondencji seryjnej wywołuje sp_MSmakegeneration procedura składowana. Ponadto po uruchomieniu następującej instrukcja przeciwko zreplikowanej bazy danych subskrybenta po operacji limitu czasu, kwerenda zwraca niektóre rekordy, które są podatne na problem:
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

Przyczyna


Ten problem występuje, ponieważ istnieje wiersz w tabeli MSmerge_genhistory, który spełnia jeden z następujących warunków:
  • Generowanie nie ma żadnych zmian, które są mapowane do niego w tabeli MSmerge_tombstone lub w tabeli MSmerge_contents.
  • Jeden lub więcej wierszy, które są mapowane do generowania mają niepoprawną wartość w kolumnie tablenick w tabeli MSmerge_tombstone lub w tabeli MSmerge_contents.
Ta sytuacja powoduje, że sp_MSmakegeneration przechowywane procedury, aby przejść do nieskończonej pętli.

Rozwiązanie


Poprawkę dotyczącą tego problemu najpierw została wydana w zbiorczej aktualizacji 8. Aby uzyskać więcej informacji dotyczących sposobu uzyskiwania tego pakietu aktualizacji zbiorczej dla programu SQL Server 2005 z dodatkiem Service Pack 2 kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
951217 Zbiorcza aktualizacja pakietu 8 dla dodatku Service Pack 2 dla programu SQL Server 2005
Uwaga Ponieważ kompilacje kumulują się, każde nowe wydanie poprawka zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniego programu SQL Server 2005 naprawić wydania. Firma Microsoft zaleca, aby rozważyć zastosowanie najnowszej wersji poprawki zawierającej tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
937137 sql Server 2005 buduje wydane po wydaniu dodatku Service Pack 2 dla programu sql Server 2005
Microsoft SQL Server 2005 poprawki są tworzone dla określonych dodatków Service Pack dla programu SQL Server. Należy zastosować poprawkę programu SQL Server 2005 z dodatkiem Service Pack 2 do instalacji programu SQL Server 2005 z dodatkiem Service Pack 2. Domyślnie wszelkie poprawki, który znajduje się w dodatku Service Pack dla programu SQL Server znajduje się w następnym dodatku Service Pack dla programu SQL Server.

Obejście


W celu obejścia tego problemu należy wykonać następujące czynności:
  1. Anuluj operację synchronizacji, która nie została ukończona.
  2. Uruchom następujące instrukcje, aby uzyskać ustawienie generation_leveling_threshold dla publikacja:
    use <Publication Database Name>goexec sp_helpmergepublication @publication = '<Publication Name>'
    Zanotuj wartość ustawienia generation_leveling_threshold.
  3. Uruchom następujące instrukcje, aby wyłączyć bilansowania generowania i tworzenia koalescencyjne:
    use <Publication Database Name>exec sp_changemergepublication @publication = '<Publication Name>', @property = 'generation_leveling_threshold', @value = 0
  4. Synchronizowanie danych dla publikacja.
  5. Po pomyślnym zakończeniu synchronizacji Zresetuj ustawienie generation_leveling_threshold z powrotem do wartości zanotowaną w kroku 2. Aby to zrobić, uruchom następujące instrukcje:
    use <Publication Database Name>exec sp_changemergepublication @publication = '<Publication Name>', @property = 'generation_leveling_threshold', @value = <Value>
Po użyciu tej metody w celu obejścia tego problemu, ten problem wystąpi ponownie, jeśli inny subskrybent próbuje przetworzyć generowanie. Należy powtórzyć te kroki dla wszystkich subskrybentów, którzy napotkają problem.

Stan


Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft, które są wymienione w sekcji "dotyczy".

Więcej informacji


Aby uzyskać więcej informacji na temat plików, które są zmieniane i informacje o wymaganiach wstępnych, aby zastosować pakiet aktualizacji zbiorczej, który zawiera poprawkę opisaną w tym artykule bazy wiedzy Microsoft Knowledge Base kliknij następujący numer artykułu w celu wyświetlenia artykule z bazy wiedzy Microsoft Knowledge Base:
951217 Zbiorcza aktualizacja pakietu 8 dla dodatku Service Pack 2 dla programu SQL Server 2005

Informacje


Aby uzyskać więcej informacji na temat listy kompilacje, które są dostępne po dodatku Service Pack 2 dla programu SQL Server kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
937137 sql Server 2005 buduje wydane po wydaniu dodatku Service Pack 2 dla programu sql Server 2005
Aby uzyskać więcej informacji na temat przyrostowe modelu obsługi dla programu SQL Server kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
935897 przyrostowy model obsługi jest dostępny z zespołu programu SQL Server do dostarczania poprawek dla zgłoszonych problemów
Aby uzyskać więcej informacji dotyczących sposobu uzyskiwania dodatku Service Pack 2 dla programu SQL Server 2005 kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
913089 w jaki sposób uzyskać najnowszy dodatek Service Pack dla programu SQL Server 2005
Aby uzyskać więcej informacji na temat nowych funkcji i ulepszeń w dodatku Service Pack 2 dla programu SQL Server 2005 odwiedź następującą witrynę firmy Microsoft w sieci Web:Aby uzyskać więcej informacji na temat schematu nazewnictwa dla aktualizacji programu SQL Server kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
822499 nowy schemat nazewnictwa dla pakietów aktualizacji oprogramowania Microsoft SQL Server
Aby uzyskać więcej informacji dotyczących terminologii aktualizacji oprogramowania kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
824684 Opis standardowej terminologii używanej do opisywania aktualizacji oprogramowania firmy Microsoft