Wpływ zmiany poziomu zgodności DB dla opublikowanej replikowanej bazy danych z 90 na 100

11

Mam serwer SQL Server 2008 R2 z wieloma opublikowanymi bazami danych, które obecnie działają na poziomie zgodności 90 (2005).

Bazy danych subskrypcji to także SQL Server 2008 R2, jednak docelowe bazy danych są ustawione na poziom zgodności 100 i replikacja działa poprawnie.

Jeśli zmienię poziom zgodności dla opublikowanych baz danych, czy wpłynie to w jakiś sposób na replikację, czy będzie to tylko przypadek ponownego zainicjowania wszystkich subskrypcji i ponownego uruchomienia replikacji?

Podejrzewam, że zmiana poziomu zgodności opublikowanej bazy danych może nieco zmienić sposób działania procedur przechowywanych replikacji, ale nie jestem w 100% pewien.

Czy tak jest w przypadku?

Kok
źródło
Ciekawe pytanie, ale czy istnieje powód, dla którego bazy danych muszą zostać zmienione? Jeśli wszystko działa dobrze, prawdopodobnie zostawiłbym to w spokoju ...
Jon Seigel,
Głównym powodem, dla którego chciałbym je zmienić, jest to, że baza danych i serwery, na których siedzą, zostały właśnie uaktualnione z jednopęzłowego urządzenia 2005 do wielowęzłowego klastra 2008R2. Ponadto istnieje kilka innych funkcji (takich jak MERGE itp.), Z których chciałbym móc zacząć korzystać.
Bob
1
Możesz przeczytać to pytanie dotyczące poziomu zgodności: dba.stackexchange.com/questions/5166/…
Jon Seigel
Koniec cywilizacji. Koty i psy mieszkają razem. Masowa histeria. Powinienem również wspomnieć, że może to spowodować zamknięcie rządu. Wydaje się jednak, że jasno to rozumiesz.
swasheck

Odpowiedzi:

4

Możesz wykonać poniższe kroki:

  • Upewnij się, że Agent odczytywania dziennika działa dla bazy danych. Domyślnie agent działa w sposób ciągły.
  • Zatrzymaj aktywność użytkownika w opublikowanych tabelach.
  • Poczekaj, aż Agent odczytywania dziennika skopiuje transakcje do bazy danych dystrybucji, a następnie zatrzyma agenta.
  • Wykonaj sp_replcmds, aby sprawdzić, czy wszystkie transakcje zostały przetworzone. Zestaw wyników z tej procedury powinien być pusty.
  • Wykonaj sp_replflush, aby zamknąć połączenie z sp_replcmds.
  • Zmień poziom zgodności bazy danych .
  • Uruchom program Log Reader Agent.
Kin Shah
źródło
Mam bardzo podobną konfigurację i chcę zrobić to samo, ale moja baza danych dystrybucji jest również w trybie zgodności 90. Z tego, co rozumiem, dystrybutor nie może działać w trybie niższej kompatybilności jako wydawca. Czy więc kolejność operacji polegałaby na wstawieniu „Zmień poziom kompatybilności dystrybutora” przed „Zmień poziom kompatybilności (opublikowanej) bazy danych” - po wyłączeniu czytnika logów?
Kolejka Mann
@QueueMann, "Change compatibility level of distributor" before "Change the compatibility level of the (published) database"który jest poprawny. Baza danych dystrybucji powinna mieć ten sam lub wyższy poziom zgodności niż Wydawca. Wydawca może być na tym samym lub niższym poziomie niż dystrybutor.
Kin Shah,
2

Zrobiliśmy to, aby zachować bezpieczeństwo, przestaliśmy replikować tę bazę danych, zmieniliśmy poziom zgodności, a następnie ponownie zainicjowaliśmy. Nie ponieśliśmy żadnych problemów. Była to dość niewielka publikacja i subskrybowano tylko jedną bazę danych. Myślę, że może to być trudniejsze, ponieważ scenariusze replikacji stają się bardziej złożone. (tj. subskrybując db, otrzymując publikacje z wielu dbs itp.)

rottengeek
źródło