Gerepliceerde databases upgraden of patchen
van toepassing op:SQL Server- - alleen Windows
SQL Server ondersteunt het upgraden van gerepliceerde databases uit eerdere versies van SQL Server; het is niet vereist om de activiteit op andere knooppunten te stoppen terwijl een knooppunt wordt bijgewerkt.
Voorwaarden
Zorg ervoor dat u voldoet aan de regels met betrekking tot welke versies worden ondersteund in een topologie:
Een distributeur kan elke versie zijn zolang deze maar gelijk is aan of groter is dan de versie van de uitgever (in veel gevallen is de distributeur dezelfde instantie als de uitgever).
Een uitgever kan elke versie zijn zolang deze kleiner is dan of gelijk is aan de distributeurversie.
Abonneeversie is afhankelijk van het type publicatie:
Een abonnee op een transactionele publicatie kan elke versie zijn die binnen twee versies van de uitgeversversie valt. Bijvoorbeeld: een SQL Server 2012 (11.x) Publisher kan SQL Server 2014 (12.x) en SQL Server 2016 -abonnees (13.x) hebben; en een SQL Server 2016 (13.x) Publisher kan SQL Server 2014 (12.x) en SQL Server 2012 -abonnees (11.x) hebben.
Een abonnee op een samengevoegde publicatie kan alle versies zijn die gelijk zijn aan of lager zijn dan de uitgever-versie, afhankelijk van wat wordt ondersteund volgens de levenscyclus van de versies.
Upgradepaden
Het upgradepad naar SQL Server verschilt, afhankelijk van het implementatiepatroon. SQL Server biedt twee upgradepaden in het algemeen:
Naast elkaar: Implementeer een parallelle omgeving en verplaats databases samen met de bijbehorende objecten op exemplaarniveau, zoals aanmeldingen, taken, enzovoort, naar de nieuwe omgeving.
In-place upgrade: Hiermee staat u toe dat de installatiemedia van SQL Server de bestaande SQL Server-installatie upgraden door SQL Server-bits te vervangen en de databaseobjecten bij te werken. Voor omgevingen met beschikbaarheidsgroepen (AG's) of failoverclusterexemplaren (FCI's) wordt een in-place upgrade gecombineerd met een rolling upgrade om downtime te minimaliseren.
Een algemene benadering voor upgrades van replicatietopologieën naast elkaar is het verplaatsen van uitgevers-abonneeparen in delen naar de nieuwe omgeving naast elkaar, in plaats van een verplaatsing van de hele topologie. Deze gefaseerde benadering helpt bij het beheren van downtime en minimaliseert de impact voor het bedrijf afhankelijk van replicatie.
Het grootste deel van dit artikel is gericht op het upgraden van de versie van SQL Server. Het in-place upgradeproces moet echter ook worden gebruikt bij het patchen van SQL Server met een servicepack of cumulatieve update.
Opmerkingen
Een replicatietopologie bijwerken is een proces met meerdere stappen. U wordt aangeraden een upgrade uit te voeren van een replica van uw replicatietopologie in een testomgeving voordat u de upgrade uitvoert in de werkelijke productieomgeving. Dit helpt alle operationele documentatie die nodig is voor het afhandelen van de upgrade soepel te afhandelen zonder dure en lange downtime tijdens het daadwerkelijke upgradeproces. U kunt downtime aanzienlijk verminderen met het gebruik van AG's en/of FCI's voor hun productieomgevingen tijdens het upgraden van hun replicatietopologie. Daarnaast raden we u aan back-ups te maken van alle databases, waaronder msdb
, master
, distributiedatabases en de gebruikersdatabases die deelnemen aan replicatie voordat u de upgrade uitvoert.
Wanneer u een distributiedatabase in een failoverclusterinstantie heeft, moet u ervoor zorgen dat alle deelnemende knooppunten dezelfde build gebruiken. We raden geen installatie aan waarin één knooppunt een SQL Server-versie is die ouder is dan SQL Server 2016 (13.x) SP2-CU3 of SQL Server 2017 (14.x) CU6 en het andere knooppunt een SQL Server-versie is die hoger is dan SQL Server 2016 (13.x) SP2-CU3 of SQL Server 2017 (14.x) CU6. Vanaf SQL Server 2016 (13.x) SP2-CU3 en SQL Server 2017 (14.x) CU6 wordt ondersteuning toegevoegd voor het gebruik van een distributiedatabase in een AG en voor nieuwe objecten (tabellen, opgeslagen procedures) in distributiedatabases. Als uw distributiedatabase zich in een failoverclusterexemplaren bevindt en u een gefaseerde migratie uitvoert (en u niet alle knooppunten kunt upgraden naar dezelfde versie van SQL Server), raden we u aan om voor de beperkte migratietaken accounttaken uit te voeren, zoals het toevoegen van een nieuwe abonnee, abonnement, uitgever of publicatie op het knooppunt met de latere versie van SQL Server.
Replicatiematrix
Compatibiliteitsmatrix voor transactionele en momentopnamereplicatie
Publisher - | Distributeur | Abonnee |
---|---|---|
Azure SQL Managed InstanceAUTD | Azure SQL Managed InstanceAUTD | Azure SQL Database Azure SQL Managed InstanceAUTD Azure SQL Managed Instance2022 SQL Server 2022 (16.x) SQL Server 2019 (15.x) |
Azure SQL Managed Instance2022 | Azure SQL Managed InstanceAUTD Azure SQL Managed Instance2022 |
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 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 InstanceAUTD 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) | 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 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 Is van toepassing op Azure SQL Managed Instance dat is geconfigureerd met het updatebeleid voor SQL Server 2022. AUTD- Geldt voor Azure SQL Managed Instance die is geconfigureerd met het Always-up-to-date updatebeleid.
Compatibiliteitsmatrix voor replicatie samenvoegen
Publisher - | Distributeur | Abonnee |
---|---|---|
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) |
Overwegingen bij de upgrade
De logboeklezeragent uitvoeren voor transactionele replicatie vóór de upgrade
Voordat u SQL Server bijwerkt, moet u ervoor zorgen dat alle doorgevoerde transacties uit gepubliceerde tabellen zijn verwerkt door de Logboeklezeragent. Voer de volgende stappen uit voor elke database die transactionele publicaties bevat om ervoor te zorgen dat alle transacties worden verwerkt:
Zorg ervoor dat de Loglezer-agent draait voor de database. Standaard draait de agent continu.
Stop de gebruikersactiviteit voor gepubliceerde tabellen.
Laat de logboeklezeragent transacties kopiëren naar de distributiedatabase en stop de agent.
Voer sp_replcmds uit om te controleren of alle transacties worden verwerkt. De resultatenset van deze procedure moet leeg zijn.
Voer sp_replflush uit om de verbinding te sluiten vanuit
sp_replcmds
Voer de serverupgrade uit naar de nieuwste versie van SQL Server.
Start SQL Server Agent en de logboeklezeragent opnieuw op als deze niet automatisch worden gestart na de upgrade.
Agents uitvoeren voor samenvoegreplicatie na de upgrade
Voer na de upgrade de momentopnameagent uit voor elke samenvoegpublicatie en de samenvoegagent voor elk abonnement om de replicatiemetagegevens bij te werken. U hoeft de nieuwe momentopname niet toe te passen, omdat het niet nodig is om abonnementen opnieuw te initialiseren. De metagegevens van het abonnement worden bijgewerkt wanneer de samenvoegagent voor het eerst wordt uitgevoerd na de upgrade. Dit betekent dat de abonnementsdatabase online en actief kan blijven tijdens de Publisher-upgrade.
Met samenvoegreplicatie worden publicatie- en abonnementsmetagegevens opgeslagen in verschillende systeemtabellen in de publicatie- en abonnementsdatabases. Het uitvoeren van de momentopname-agent werkt de metagegevens van de publicatie bij, en het uitvoeren van de samenvoeg-agent werkt de metagegevens van de abonnementen bij. Het is alleen vereist om een momentopname van een publicatie te genereren. Als een samenvoegpublicatie gebruikmaakt van geparameteriseerde filters, heeft elke partitie ook een momentopname. Het is niet nodig om deze gepartitioneerde momentopnamen bij te werken.
Voer de agents uit vanuit SQL Server Management Studio, Replication Monitor of vanaf de opdrachtregel. Zie de volgende artikelen voor meer informatie over het uitvoeren van de momentopname-agent:
- De eerste momentopname maken en toepassen
- een replicatieagent (SQL Server Management Studio) starten en stoppen
- De eerste momentopname maken en toepassen
- Concepten voor uitvoerbare bestanden van de replicatieagent
Zie de volgende artikelen voor meer informatie over het uitvoeren van de Merge Agent:
Na het upgraden van SQL Server in een topologie die gebruikmaakt van samenvoegreplicatie, wijzigt u het compatibiliteitsniveau van de publicatie van publicaties als u nieuwe functies wilt gebruiken.
Upgrade uitvoeren naar Standard-, Werkgroep- of Express-edities
Voordat u een upgrade uitvoert van de ene editie van SQL Server naar een andere, controleert u of de functionaliteit die u momenteel gebruikt, wordt ondersteund in de editie waarnaar u een upgrade uitvoert. Zie de sectie over replicatie in edities en ondersteunde functies van SQL Server 2022voor meer informatie.
Stappen voor het upgraden van een replicatietopologie
Deze stappen geven een overzicht van de volgorde waarin servers in een replicatietopologie moeten worden bijgewerkt. Dezelfde stappen zijn van toepassing, ongeacht of u transactionele replicatie of samenvoeging uitvoert. Deze stappen hebben echter geen betrekking op peer-to-peer-replicatie, abonnementen waarbij de updates in de wachtrij staan, noch op abonnementen waarbij de updates onmiddellijk worden doorgevoerd.
Upgraden op locatie
- Upgrade de distributeur.
- Werk de uitgever en de abonnee bij. Deze kunnen in elke volgorde worden bijgewerkt.
Notitie
Voor SQL Server 2008 (10.0.x) en SQL Server 2008 R2 (10.50.x) moet de upgrade van de uitgever en abonnee tegelijkertijd worden uitgevoerd om overeen te komen met de replicatietopologiematrix. SQL Server 2008 (10.0.x) en SQL Server 2008 R2 (10.50.x) uitgevers of abonnees kunnen geen UITGEVER of abonnee van SQL Server 2016 (13.x) (of hoger) hebben. Als een upgrade op hetzelfde moment niet mogelijk is, gebruikt u een tussenliggende upgrade om de SQL Server-exemplaren te upgraden naar SQL Server 2014 (12.x) en voert u een upgrade uit naar SQL Server 2016 (13.x) (of hoger).
Upgrade naast elkaar
- Upgrade de distributeur.
- Hernoem Distributie op het nieuwe SQL Server-exemplaar.
- Voer een upgrade uit van Publisher.
- Voer een upgrade uit voor de abonnee.
- Configureer alle Publisher-Subscriber paren opnieuw, inclusief herinitialisatie van de abonnee.
Stappen voor side-by-side migratie van de distributeur naar Windows Server
Een nevenupgrade is het enige upgradepad dat beschikbaar is voor SQL Server-exemplaren in een failovercluster. De volgende stappen kunnen worden uitgevoerd op een zelfstandig SQL Server-exemplaar of een exemplaar binnen een failoverclusterexemplaar (FCI).
Stel een nieuw SQL Server-exemplaar (zelfstandig of FCI), editie en versie in als uw distributeur in Windows Server met een andere Windows-cluster en SQL Server FCI-naam of zelfstandige hostnaam. U moet de mapstructuur hetzelfde houden als de oude distributeur om ervoor te zorgen dat de uitvoerbare bestanden, replicatiemappen en databasebestandspaden van de replicatieagent op hetzelfde pad in de nieuwe omgeving worden gevonden. Dit vermindert alle vereiste stappen na de migratie/upgrade.
Zorg ervoor dat uw replicatie is gesynchroniseerd en sluit vervolgens alle replicatieagents af.
Sluit het huidige SQL Server Distributor-exemplaar af. Als dit een zelfstandig exemplaar is, sluit u de server af. Als dit een SQL Server FCI is, neemt u de volledige SQL Server-functie offline in clusterbeheer, inclusief de netwerknaam.
Verwijder de DNS- en Active Directory-computerobjectvermeldingen voor de oude (huidige distributeurinstantie) omgeving.
Wijzig de hostnaam van de nieuwe server zodat deze overeenkomt met die van de oude server.
- Als dit een SQL Server FCI is, wijzigt u de naam van de nieuwe SQL Server FCI met dezelfde naam van de virtuele server als het oude exemplaar.
Kopieer de databasebestanden van de vorige instantie door middel van SAN-omleiding, opslagkopie of bestandskopie.
Breng het nieuwe SQL Server-exemplaar online.
Herstart alle replicatieagenten en controleer of de agenten correct worden uitgevoerd.
Controleer of replicatie werkt zoals verwacht.
Gebruik de INSTALLATIEmedia van SQL Server om een in-place upgrade van uw SQL Server-exemplaar uit te voeren naar de nieuwe versie van SQL Server.
Notitie
Om de downtime te verminderen, raden we u aan om de naast elkaar van de distributeur uit te voeren als één activiteit, en de in-place upgrade naar SQL Server als een andere activiteit. Hiermee kunt u een gefaseerde benadering nemen, risico's verminderen en downtime minimaliseren.
Websynchronisatie voor samenvoegingsreplicatie
Voor de optie websynchronisatie voor samenvoegingsreplicatie moet u de SQL Server Replication Listener (replisapi.dll
) kopiëren naar de virtuele map op de IIS-server (Internet Information Services) die wordt gebruikt voor synchronisatie. Wanneer u websynchronisatie configureert, kopieert de wizard Websynchronisatie configureren het bestand naar de virtuele map. Als u de SQL Server-onderdelen die op de IIS-server zijn geïnstalleerd, bijwerken, moet u handmatig replisapi.dll van de COM-map kopiëren naar de virtuele map op de IIS-server. Zie Websynchronisatie configurerenvoor meer informatie over het configureren van websynchronisatie.
Een gerepliceerde database herstellen vanuit een eerdere versie
Om ervoor te zorgen dat de replicatie-instellingen behouden blijven bij het herstellen van een back-up van een gerepliceerde database uit een vorige versie: herstellen naar een server en database met dezelfde namen als de server en database waarop de back-up is gemaakt.