Uaktualnianie lub stosowanie poprawek replikowanych baz danych
Dotyczy:programu SQL Server — tylko system Windows
Program SQL Server obsługuje uaktualnianie replikowanych baz danych z poprzednich wersji programu SQL Server; Nie jest wymagane zatrzymanie działania w innych węzłach podczas uaktualniania węzła.
Warunki wstępne
Upewnij się, że przestrzegasz reguł dotyczących wersji obsługiwanych w topologii:
Dystrybutor może być dowolną wersją, o ile jest większa lub równa wersji wydawcy (w wielu przypadkach dystrybutor jest tym samym wystąpieniem co wydawca).
Wydawca może mieć dowolną wersję, pod warunkiem, że jest mniejsza lub równa wersji dystrybutora.
Wersja subskrybenta zależy od typu publikacji:
Subskrybent publikacji transakcyjnej może być dowolną wersją w dwóch wersjach programu Publisher. Na przykład: program SQL Server 2012 (11.x) Publisher może mieć subskrybentów programu SQL Server 2014 (12.x) i programu SQL Server 2016 (13.x); Program SQL Server 2016 (13.x) Publisher może mieć subskrybentów programu SQL Server 2014 (12.x) i programu SQL Server 2012 (11.x).
Subskrybent publikacji scalanej może być w wersjach równych lub niższych niż wersja wydawcy, w zależności od wersji obsługiwanych zgodnie z cyklem wsparcia wersji.
Ścieżki uaktualnień
Ścieżka uaktualnienia do programu SQL Server różni się w zależności od wzorca wdrożenia. Program SQL Server oferuje ogólnie dwie ścieżki uaktualniania:
Obok siebie: wdróż równoległe środowisko i przenieś bazy danych wraz ze skojarzonymi obiektami na poziomie wystąpienia, takimi jak identyfikatory logowania, zadania itp. do nowego środowiska.
Uaktualnienie w miejscu: umożliwia nośnikowi instalacyjnemu programu SQL Server uaktualnienie istniejącej instalacji programu SQL Server przez zastąpienie bitów programu SQL Server i uaktualnienie obiektów bazy danych. W przypadku środowisk z uruchomionymi grupami dostępności lub wystąpieniami klastra trybu failover (FCI) uaktualnienie w miejscu jest łączone z uaktualnienia stopniowego w celu zminimalizowania przestojów.
Typowym podejściem do równoległych uaktualnień topologii replikacji jest przeniesienie par wydawcy-subskrybentów w częściach do nowego środowiska równoległego, w przeciwieństwie do przenoszenia całej topologii. Takie podejście fazowe pomaga kontrolować przestój i minimalizuje wpływ na działalność biznesową zależną od replikacji.
Większość tego artykułu jest ograniczona do uaktualniania wersji programu SQL Server. Jednak proces uaktualniania w miejscu powinien być również używany podczas stosowania poprawek programu SQL Server za pomocą dodatku Service Pack lub aktualizacji zbiorczej.
Uwagi
Uaktualnianie topologii replikacji jest procesem wieloetapowym. Zalecamy próbę uaktualnienia repliki topologii replikacji w środowisku testowym przed uruchomieniem uaktualnienia w rzeczywistym środowisku produkcyjnym. Pomaga to usunąć niedociągnięcia w dokumentacji operacyjnej, która jest wymagana do bezproblemowego przeprowadzenia aktualizacji bez ponoszenia kosztownych i długich przestojów podczas rzeczywistego procesu aktualizacji. Można znacznie zmniejszyć przestoje w środowiskach produkcyjnych dzięki użyciu grup dostępności i/lub wystąpień klastra trybu failover, jednocześnie uaktualniając ich topologię replikacji. Ponadto zalecamy wykonywanie kopii zapasowych wszystkich baz danych, w tym msdb
, master
, baz danych dystrybucji i baz danych użytkowników uczestniczących w replikacji przed podjęciem próby uaktualnienia.
Jeśli masz bazę danych dystrybucji w instancji klastra obsługującej tryb awaryjny, upewnij się, że wszystkie uczestniczące węzły korzystają z tej samej wersji. Nie zalecamy instalacji, w której jeden węzeł używa wersji SQL Server starszej niż SQL Server 2016 (13.x) SP2-CU3 lub SQL Server 2017 (14.x) CU6, a drugi węzeł wersji SQL Server nowszej niż SQL Server 2016 (13.x) SP2-CU3 lub SQL Server 2017 (14.x) CU6. Począwszy od wersji SQL Server 2016 (13.x) SP2-CU3 i SQL Server 2017 (14.x) CU6, dodano obsługę używania bazy danych dystrybucyjnej w grupie dostępności oraz nowych obiektów (tabel, procedur składowanych) w bazach danych dystrybucyjnych. Jeśli baza danych dystrybucji znajduje się w instancji klastra failover i przeprowadzasz etapową migrację (i nie można uaktualnić wszystkich węzłów do tej samej wersji programu SQL Server), w krótkim czasie przewidzianym na migrację zalecamy wykonywanie zadań, takich jak dodawanie nowego subskrybenta, subskrypcji, wydawcy lub publikacji na węźle, który ma nowszą wersję programu SQL Server.
Macierz replikacji
Macierz zgodności replikacji transakcyjnej i migawek
programu Publisher | Dystrybutor | subskrybenta |
---|---|---|
Azure SQL Managed Instance AUTD | AUTD usługi Azure SQL Managed Instance | Azure SQL Database Azure SQL Managed Instance AUTD Azure SQL Managed Instance2022 SQL Server 2022 (16.x) SQL Server 2019 (15.x) |
Azure SQL Managed Instance2022 |
Azure SQL Managed Instance AUTD Azure SQL Managed Instance2022 |
Azure SQL Database AUTD Azure SQL Managed Instance Usługa Azure SQL Managed Instance2022 SQL Server 2022 (16.x) SQL Server 2019 (15.x) SQL Server 2017 (14.x) |
SQL Server 2022 (16.x) | SQL Server 2022 (16.x) | Azure SQL Database Azure SQL Managed InstanceAUTD Azure SQL Managed Instance2022 SQL Server 2022 (16.x) SQL Server 2019 (15.x) SQL Server 2017 (14.x) |
SQL Server 2019 (15.x) | SQL Server 2022 (16.x) SQL Server 2019 (15.x) |
Azure SQL Database Azure SQL Managed Instance usługi AUTD Azure SQL Managed Instance2022 SQL Server 2022 (16.x) SQL Server 2019 (15.x) SQL Server 2017 (14.x) SQL Server 2016 (13.x) |
SQL Server 2017 (14.x) | SQL Server 2022 (16.x) SQL Server 2019 (15.x) SQL Server 2017 (14.x) |
Azure SQL Managed Instance2022 SQL Server 2022 (16.x) SQL Server 2019 (15.x) SQL Server 2017 (14.x) SQL Server 2016 (13.x) SQL Server 2014 (12.x) |
SQL Server 2016 (13.x) | SQL Server 2022 (16.x) SQL Server 2019 (15.x) SQL Server 2017 (14.x) SQL Server 2016 (13.x) |
SQL Server 2019 (15.x) SQL Server 2017 (14.x) SQL Server 2016 (13.x) SQL Server 2014 (12.x) SQL Server 2012 (11.x) |
SQL Server 2014 (12.x) |
AUTD usługi Azure SQL Managed Instance Azure SQL Managed Instance2022 SQL Server 2022 (16.x) SQL Server 2019 (15.x) SQL Server 2017 (14.x) SQL Server 2016 (13.x) SQL Server 2014 (12.x) |
SQL Server 2017 (14.x) SQL Server 2016 (13.x) SQL Server 2014 (12.x) SQL Server 2012 (11.x) SQL Server 2008 R2 (10.50.x) SQL Server 2008 (10.0.x) |
SQL Server 2012 (11.x) | SQL Server 2022 (16.x) SQL Server 2019 (15.x) SQL Server 2017 (14.x) SQL Server 2016 (13.x) SQL Server 2014 (12.x) SQL Server 2012 (11.x) |
SQL Server 2016 (13.x) SQL Server 2014 (12.x) SQL Server 2012 (11.x) SQL Server 2008 R2 (10.50.x) SQL Server 2008 (10.0.x) |
SQL Server 2008 R2 (10.50.x) SQL Server 2008 (10.0.x) |
SQL Server 2022 (16.x) SQL Server 2019 (15.x) SQL Server 2017 (14.x) SQL Server 2016 (13.x) SQL Server 2014 (12.x) SQL Server 2012 (11.x) SQL Server 2008 R2 (10.50.x) SQL Server 2008 (10.0.x) |
SQL Server 2014 (12.x) SQL Server 2012 (11.x) SQL Server 2008 R2 (10.50.x) SQL Server 2008 (10.0.x) |
2022 Dotyczy usługi Azure SQL Managed Instance skonfigurowanej przy użyciu zasad aktualizacji programu SQL Server 2022. AUTD dotyczy usługi Azure SQL Managed Instance skonfigurowanej przy użyciu always-up-to-date update policy.
Macierz zgodności replikacji scalającej
programu Publisher | Dystrybutor | subskrybenta |
---|---|---|
SQL Server 2022 (16.x) | SQL Server 2022 (16.x) | SQL Server 2022 (16.x) SQL Server 2019 (15.x) SQL Server 2017 (14.x) SQL Server 2016 (13.x) SQL Server 2014 (12.x) SQL Server 2012 (11.x) SQL Server 2008 R2 (10.50.x) SQL Server 2008 (10.0.x) |
SQL Server 2019 (15.x) | SQL Server 2022 (16.x) SQL Server 2019 (15.x) |
SQL Server 2019 (15.x) SQL Server 2017 (14.x) SQL Server 2016 (13.x) SQL Server 2014 (12.x) SQL Server 2012 (11.x) SQL Server 2008 R2 (10.50.x) SQL Server 2008 (10.0.x) |
SQL Server 2017 (14.x) | SQL Server 2022 (16.x) SQL Server 2019 (15.x) SQL Server 2017 (14.x) |
SQL Server 2017 (14.x) SQL Server 2016 (13.x) SQL Server 2014 (12.x) SQL Server 2012 (11.x) SQL Server 2008 R2 (10.50.x) SQL Server 2008 (10.0.x) |
SQL Server 2016 (13.x) | SQL Server 2022 (16.x) SQL Server 2019 (15.x) SQL Server 2017 (14.x) SQL Server 2016 (13.x) |
SQL Server 2016 (13.x) SQL Server 2014 (12.x) SQL Server 2012 (11.x) SQL Server 2008 R2 (10.50.x) SQL Server 2008 (10.0.x) |
SQL Server 2014 (12.x) | SQL Server 2022 (16.x) SQL Server 2019 (15.x) SQL Server 2017 (14.x) SQL Server 2016 (13.x) SQL Server 2014 (12.x) |
SQL Server 2014 (12.x) SQL Server 2012 (11.x) SQL Server 2008 R2 (10.50.x) SQL Server 2008 (10.0.x) |
SQL Server 2012 (11.x) | SQL Server 2022 (16.x) SQL Server 2019 (15.x) SQL Server 2017 (14.x) SQL Server 2016 (13.x) SQL Server 2014 (12.x) SQL Server 2012 (11.x) |
SQL Server 2012 (11.x) SQL Server 2008 R2 (10.50.x) SQL Server 2008 (10.0.x) |
SQL Server 2008 R2 (10.50.x) SQL Server 2008 (10.0.x) |
SQL Server 2022 (16.x) SQL Server 2019 (15.x) SQL Server 2017 (14.x) SQL Server 2016 (13.x) SQL Server 2014 (12.x) SQL Server 2012 (11.x) SQL Server 2008 R2 (10.50.x) SQL Server 2008 (10.0.x) |
SQL Server 2008 R2 (10.50.x) SQL Server 2008 (10.0.x) |
Zagadnienia dotyczące uaktualniania
Uruchom agenta czytnika dzienników na potrzeby replikacji transakcyjnej przed uaktualnieniem
Przed uaktualnieniem programu SQL Server należy upewnić się, że wszystkie zatwierdzone transakcje z opublikowanych tabel zostały przetworzone przez agenta czytnika dzienników. Aby upewnić się, że wszystkie transakcje są przetwarzane, wykonaj następujące kroki dla każdej bazy danych zawierającej publikacje transakcyjne:
Upewnij się, że agent czytnika dzienników jest uruchomiony dla bazy danych. Domyślnie agent działa w sposób ciągły.
Zatrzymaj aktywność użytkownika w opublikowanych tabelach.
Poczekaj, aż agent czytnika dzienników skopiuje transakcje do bazy danych dystrybucji, a następnie zatrzymaj agenta.
Wykonaj sp_replcmds, aby sprawdzić, czy wszystkie transakcje są przetwarzane. Zestaw wyników z tej procedury powinien być pusty.
Wykonaj sp_replflush, aby zamknąć połączenie z
sp_replcmds
Przeprowadź uaktualnienie serwera do najnowszej wersji programu SQL Server.
Uruchom ponownie agenta programu SQL Server i agenta czytnika dzienników, jeśli nie uruchamiają się automatycznie po uaktualnieniu.
Uruchom agenty dla replikacji scalania po aktualizacji
Po uaktualnieniu uruchom agenta migawek dla każdej publikacji scalania i agenta scalania dla każdej subskrypcji, aby zaktualizować metadane replikacji. Nie trzeba stosować nowej migawki, ponieważ nie jest konieczne ponowne inicjowanie subskrypcji. Metadane subskrypcji są aktualizowane po pierwszym uruchomieniu agenta scalania po uaktualnieniu. Oznacza to, że baza danych subskrypcji może pozostać w trybie online i aktywna podczas uaktualniania programu Publisher.
Replikacja scalająca przechowuje metadane publikacji i subskrypcji w kilku tabelach systemowych w bazach danych subskrypcji i publikacji. Uruchomienie agenta migawki aktualizuje metadane publikacji, a uruchomienie agenta scalania aktualizuje metadane subskrypcji. Wystarczy wygenerować momentkopię publikacji. Jeśli publikacja scalania używa sparametryzowanych filtrów, każda partycja ma również migawkę. Nie jest konieczne aktualizowanie tych migawek partycjonowanych.
Uruchom agentów z programu SQL Server Management Studio, Monitora replikacji lub z wiersza polecenia. Aby uzyskać więcej informacji na temat uruchamiania agenta migawek, zobacz następujące artykuły:
- Tworzenie i Stosowanie Początkowej Migawki
- uruchamianie i zatrzymywanie agenta replikacji (SQL Server Management Studio)
- Tworzenie i Stosowanie Początkowej Migawki
- Pojęcia dotyczące plików wykonywalnych agenta replikacji
Aby uzyskać więcej informacji na temat uruchamiania agenta scalania, zobacz następujące artykuły:
- synchronizowanie subskrypcji ściągania
- Synchronizacja subskrypcji typu push
Po uaktualnieniu SQL Servera w topologii korzystającej z replikacji scalania, zmień poziom zgodności dowolnej publikacji, jeśli chcesz używać nowych funkcji.
Uaktualnianie do wersji Standard, Workgroup lub Express
Przed uaktualnieniem z jednej wersji programu SQL Server do innej sprawdź, czy obecnie używane funkcje są obsługiwane w wersji, do której uaktualniasz. Aby uzyskać więcej informacji, zobacz sekcję Dotyczącą replikacji w wersjach i obsługiwanych funkcji programu SQL Server 2022.
Kroki uaktualniania topologii replikacji
Te kroki przedstawiają kolejność uaktualniania serwerów w topologii replikacji. Te same kroki mają zastosowanie niezależnie od tego, czy uruchamiasz replikację transakcyjną, czy scalaną. Jednak te kroki nie obejmują replikacji typu peer-to-peer, subskrypcji z aktualizacjami w kolejce ani subskrypcji z natychmiastowymi aktualizacjami.
Aktualizacja na miejscu
- Uaktualnij dystrybutora.
- Uaktualnij wydawcę i subskrybenta. Można je uaktualnić w dowolnej kolejności.
Notatka
W przypadku programu SQL Server 2008 (10.0.x) i programu SQL Server 2008 R2 (10.50.x) należy przeprowadzić uaktualnienie wydawcy i subskrybenta w tym samym czasie, aby dopasować je do macierzy topologii replikacji. Wydawcy lub subskrybenci SQL Server 2008 (10.0.x) i SQL Server 2008 R2 (10.50.x) nie mogą być wydawcami ani subskrybentami SQL Server 2016 (13.x) lub nowszych. Jeśli uaktualnienie w tym samym czasie nie jest możliwe, użyj uaktualnienia pośredniego, aby uaktualnić wystąpienia programu SQL Server do programu SQL Server 2014 (12.x), a następnie uaktualnij je ponownie do programu SQL Server 2016 (13.x) (lub nowszego).
Aktualizacja równoległa
- Uaktualnij dystrybutora.
- Przekonfiguruj Konfigurację dystrybucji w nowym wystąpieniu programu SQL Server.
- Uaktualnij program Publisher.
- Uaktualnij subskrybenta.
- Skonfiguruj ponownie wszystkie pary Publisher-Subscriber, w tym ponowne inicjowanie subskrybenta.
Procedura równoległej migracji dystrybutora do systemu Windows Server
Aktualizacja równoległa to jedyna ścieżka aktualizacji dostępna dla instancji SQL Server uczestniczących w klastrze awaryjnego przełączania. Poniższe kroki można wykonać w autonomicznym wystąpieniu programu SQL Server lub w ramach klastra trybu failover (FCI).
Skonfiguruj nowe wystąpienie programu SQL Server (autonomiczne lub FCI), edycję i wersję jako dystrybutora w systemie Windows Server, używając innej nazwy klastra systemu Windows oraz nazwy klastra trybu failover programu SQL Server bądź autonomicznej nazwy hosta. Należy zachować strukturę katalogów taką samą jak stary dystrybutor, aby upewnić się, że agenci replikacji wykonywalni, foldery replikacji i ścieżki plików bazy danych znajdują się w tej samej ścieżce w nowym środowisku. Zmniejsza to wszelkie wymagane kroki po migracji/uaktualnieniu.
Upewnij się, że replikacja jest zsynchronizowana, a następnie zamknij wszystkich agentów replikacji.
Wyłącz bieżącą instancję dystrybutora programu SQL Server. Jeśli jest to wystąpienie autonomiczne, zamknij serwer. Jeśli jest to wystąpienie SQL Server w trybie klastrowania pracy awaryjnej (FCI), przełącz całą rolę SQL Server w tryb offline w menedżerze klastra, w tym nazwę sieci.
Usuń wpisy obiektów komputerowych w DNS i Active Directory ze starego środowiska (bieżące wystąpienie dystrybutora).
Zmień nazwę hosta nowego serwera, aby był zgodny ze starym serwerem.
- Jeśli jest to wystąpienie klastra trybu failover programu SQL Server, zmień nazwę nowego wystąpienia klastra trybu failover programu SQL Server o tej samej nazwie serwera wirtualnego.
Skopiuj pliki bazy danych z poprzedniego wystąpienia przy użyciu przekierowania SAN, kopii zapasowej lub kopii plików.
Przełącz nowe wystąpienie programu SQL Server do trybu online.
Uruchom ponownie agentów replikacji i sprawdź, czy agenci działają pomyślnie.
Sprawdź, czy replikacja działa zgodnie z oczekiwaniami.
Użyj nośnika instalacyjnego programu SQL Server, aby przeprowadzić uaktualnienie istniejącej instancji programu SQL Server do nowej wersji.
Notatka
Aby zmniejszyć przestoje, zalecamy przeprowadzenie migracji równoległej dystrybutora jako jedno działanie, a uaktualnienie w miejscu do programu SQL Server jako inne działanie. Dzięki temu można podjąć podejście etapowe, zmniejszyć ryzyko i zminimalizować przestoje.
Synchronizacja sieci Web na potrzeby replikacji scalania
Opcja synchronizacji sieci Web na potrzeby replikacji scalania wymaga skopiowania odbiornika replikacji programu SQL Server (replisapi.dll
) do katalogu wirtualnego na serwerze usług Internet Information Services (IIS) używanym do synchronizacji. Podczas konfigurowania synchronizacji sieci Web Kreator konfigurowania synchronizacji sieci Web kopiuje plik do katalogu wirtualnego. W przypadku uaktualnienia składników programu SQL Server zainstalowanych na serwerze USŁUG IIS należy ręcznie skopiować replisapi.dll z katalogu COM do katalogu wirtualnego na serwerze usług IIS. Aby uzyskać więcej informacji na temat konfigurowania synchronizacji sieci Web, zobacz Configure Web Synchronization.
Przywracanie replikowanej bazy danych z wcześniejszej wersji
Aby upewnić się, że ustawienia replikacji są zachowywane podczas przywracania kopii zapasowej replikowanej bazy danych z poprzedniej wersji: przywracanie do serwera i bazy danych o takich samych nazwach jak serwer i baza danych, w której utworzono kopię zapasową.