Udostępnij za pośrednictwem


sp_mergecleanupmetadata (Transact-SQL)

Should be used only in replication topologies that include servers running versions of Microsoft SQL Server prior to SQL Server 2000 Service Pack 1.sp_mergecleanupmetadata allows administrators to clean up metadata in the MSmerge_genhistory, MSmerge_contents and MSmerge_tombstone system tables.Ta procedura przechowywana jest wykonywana przez wydawcę na baza danych publikacja.

Topic link iconKonwencje składni języka Transact-SQL

sp_mergecleanupmetadata [ [ @publication = ] 'publication' ]
    [ , [ @reinitialize_subscriber = ] 'reinitialize_subscriber' ]

Argumenty

  • [ @publication = ] 'publication'
    Is the name of the publication.publication is sysname, with a default of %, which cleans up metadata for all publications.Publikacja musi już istnieć, jeśli zostały jawnie określone.

  • [ @reinitialize_subscriber = ] 'subscriber'
    Specifies whether to reinitialize the Subscriber.subscriber is nvarchar(5), can be TRUE or FALSE, with a default of TRUE.Jeśli WARTOŚĆ TRUE, subskrypcje są oznaczane do reinicjowanie.Jeśli FAŁSZYWE, subskrypcji nie są oznaczane do reinicjowanie.

Wartości kodów powrotnych

0 (sukces) lub 1 (brak)

Remarks

sp_mergecleanupmetadata powinien być używany tylko w topologii replikacja, który zawiera serwery wersjami SQL Server przed SQL Server 2000 Dodatek usługa Pack 1. Topologie, które zawierają tylko SQL Server 2000 Z dodatkiem usługa Pack 1 lub nowszym należy użyć automatycznego przechowywania opartych na czyszczenie metadane. Aby uzyskać więcej informacji na temat czyszczenie metadane Zobacz W jaki sposób replikacja łączenia programu Works. Gdy to uruchomienie procedury przechowywanej, należy pamiętać o niezbędne i potencjalnie duży wzrost pliku dziennika na komputerze, na którym uruchomiony jest procedura przechowywana.

Ostrzeżenie

Po sp_mergecleanupmetadata jest wykonywana domyślnie, wszystkie subskrypcje w subskrybent publikacjach zawierających metadane przechowywanych w MSmerge_genhistory, MSmerge_contents and MSmerge_tombstone są oznaczane do reinicjowanie oczekujących zmian przez subskrybent zostaną utracone i bieżącej migawka jest oznaczony jako przestarzały.

Uwaga

Jeśli istnieje wiele publikacja w bazie danych, a jeden z tych publikacja (okresu przechowywania nieskończonej publikacja@ przechowywania=0), running sp_mergecleanupmetadata nie oczyszczania replikacja łączenia zmiany metadane śledzenia dla bazy danych.Z tego powodu należy używać ostrożnie przechowywania nieskończonej publikacja.

Gdy to wykonywanie procedura przechowywana, można określić, czy ponownie zainicjować subskrybentów ustawiając @ reinitialize_subscriber parametrWARTOŚĆ TRUE (ustawienie domyślne) lub FAŁSZYWE.Jeśli sp_mergecleanupmetadata jest wykonywane z @ reinitialize_subscriber ustawić parametr WARTOŚĆ TRUE, migawka jest ponownie stosowane przez subskrybent, nawet jeśli subskrypcja została utworzona bez początkowego migawkę (na przykład, jeśli migawkę danych i schematu zostały zastosowane ręcznie lub był modyfikowany przez subskrybent).Ustawienie tego parametru FAŁSZYWE należy używać ostrożnie, ponieważ jeśli publikacja nie jest ustawienie ponownie inicjowane, należy upewnić się że synchronizację danych Wydawca i subskrybent.

Niezależnie od wartości @ reinitialize_subscriber, sp_mergecleanupmetadata kończy się niepowodzeniem w przypadku scalania bieżących procesów, które próbujesz przesłać zmiany do wydawcę i subskrybent republishing w momencie wywołania procedura przechowywana.

Wykonywanie sp_mergecleanupmetadata z @ reinitialize_subscriber = PRAWDA:

  1. Jest to zalecane, ale nie wymagane, zatrzymania wszystkich aktualizacji do publikacja i subskrypcja baz danych.Jeśli aktualizacje będą się powtarzać, wszelkie zmiany aktualizujące dokonane w subskrybent od czasu ostatniego scalania zostają utracone, ustawienie ponownie inicjowane publikacja, ale zbieżność danych jest obsługiwana.

  2. wykonać korespondencji seryjnej, uruchamiając Agent korespondencji seryjnej.Firma Microsoft zaleca użycie –Validate opcja wiersza polecenia agentów na poszczególnych subskrybent podczas uruchamiania agenta korespondencji seryjnej.Jeśli pracujesz w trybie ciągłym, wyrażona w dokumentach na godzinę, zobacz Szczególne aspekty ciągłe scalenia tryb w dalszej części tej sekcji.

  3. Po wykonaniu wszystkich wyrażona w dokumentach, należy wykonać sp_mergecleanupmetadata.

  4. wykonać sp_reinitmergepullsubscription na wszystkich subskrybentów zapewnienia zbieżność danych za pomocą nazwanych lub anonimowych ściągać subskrypcja.

  5. Jeśli pracujesz w trybie ciągłym, wyrażona w dokumentach na godzinę, zobacz Szczególne aspekty ciągłe scalenia tryb w dalszej części tej sekcji.

  6. Ponownie wygenerować migawkę plików związanych wszystkich publikacji korespondencji seryjnej na wszystkich poziomach.Podczas próby scalania bez najpierw ponowne generowanie migawka, pojawi się monit, ponownie wygenerować migawkę.

  7. Wykonywanie kopii zapasowej baza danych publikacja.Zaniechanie tej czynności może spowodować awarię korespondencji seryjnej po przywróceniu bazy danych publikacja.

Wykonywanie sp_mergecleanupmetadata z @ reinitialize_subscriber = FAŁSZ:

  1. Zatrzymaj wszystkie aktualizuje do publikacja i subskrypcja baz danych.

  2. wykonać korespondencji seryjnej, uruchamiając Agent korespondencji seryjnej.Firma Microsoft zaleca użycie –Validate opcja wiersza polecenia agentów na poszczególnych subskrybent podczas uruchamiania agenta korespondencji seryjnej.Jeśli pracujesz w trybie ciągłym, wyrażona w dokumentach na godzinę, zobacz Szczególne aspekty ciągłe scalenia tryb w dalszej części tej sekcji.

  3. Po wykonaniu wszystkich wyrażona w dokumentach, należy wykonać sp_mergecleanupmetadata.

  4. Jeśli pracujesz w trybie ciągłym, wyrażona w dokumentach na godzinę, zobacz Szczególne aspekty ciągłe scalenia tryb w dalszej części tej sekcji.

  5. Ponownie wygenerować migawkę plików związanych wszystkich publikacji korespondencji seryjnej na wszystkich poziomach.Podczas próby scalania bez najpierw ponowne generowanie migawka, pojawi się monit, ponownie wygenerować migawkę.

  6. Wykonywanie kopii zapasowej baza danych publikacja.Zaniechanie tej czynności może spowodować awarię korespondencji seryjnej po przywróceniu bazy danych publikacja.

Special Considerations for Continuous Mode Merges

Jeśli pracujesz w trybie ciągłym, wyrażona w dokumentach na godzinę, należy wykonać jedną:

  • Zatrzymaj agenta korespondencji seryjnej, a następnie wykonaj innej korespondencji seryjnej bez -Ciągłe parametr określony.

  • Dezaktywowanie z publikacja sp_changemergepublication , aby zapewnić, że wszelkie ciągłego tryb scalania są sondowanie dla błędów stan publikacja.

    EXEC central..sp_changemergepublication @publication = 'dynpart_pubn', @property = 'status', @value = 'inactive'
    

Po wykonaniu kroku 3 działania sp_mergecleanupmetadata, Wznów tryb ciągłej seryjnej w zależności od tego, w jaki sposób je zatrzymać.Albo:

  • Dodawanie –Continuous parametr ponownie dla agenta korespondencji seryjnej.

  • Ponowne uaktywnianie z publikacja sp_changemergepublication.

    EXEC central..sp_changemergepublication @publication = 'dynpart_pubn', @property = 'status', @value = 'active'
    

Uprawnienia

Tylko członkowie sysadmin Rola serwera lub db_owner ustalone rola bazy danych mogą być wykonać sp_mergecleanupmetadata.

Aby użyć tej procedura przechowywana, należy uruchomić Wydawca SQL Server 2000. The Subscribers must be running either SQL Server 2000 or Microsoft SQL Server 7.0, Service Pack 2.