Uppgradera eller korrigera replikerade databaser
gäller för:SQL Server – endast Windows
SQL Server stöder uppgradering av replikerade databaser från tidigare versioner av SQL Server. Det krävs inte för att stoppa aktiviteten vid andra noder medan en nod uppgraderas.
Förutsättningar
Se till att du följer reglerna för vilka versioner som stöds i en topologi:
En distributör kan vara vilken version som helst så länge den är större än eller lika med Publisher-versionen (i många fall är distributören samma instans som utgivaren).
En utgivare kan vara vilken version som helst så länge den är mindre än eller lika med distributörsversionen.
Prenumerantversionen beror på typen av publikation:
En prenumerant på en transaktionspublikation kan vara vilken version som helst inom två versioner av Publisher-versionen. Till exempel: en SQL Server 2012-utgivare (11.x) kan ha SQL Server 2014 (12.x) och SQL Server 2016 (13.x) prenumeranter; och en SQL Server 2016(13.x) Publisher kan ha SQL Server 2014 (12.x) och SQL Server 2012 (11.x) prenumeranter.
En prenumerant på en sammanslagningspublikation kan ha alla versioner som är lika med eller lägre än utgivareversionen, beroende på vad som stöds enligt versionernas livscykelstöd.
Uppgradera sökvägar
Uppgraderingssökvägen till SQL Server skiljer sig beroende på distributionsmönstret. SQL Server erbjuder två uppgraderingsvägar i allmänhet:
Sida vid sida: Distribuera en parallell miljö och flytta databaser tillsammans med associerade objekt på instansnivå, till exempel inloggningar, jobb osv. till den nya miljön.
Uppgradering på plats: Tillåt att SQL Server-installationsmediet uppgraderar den befintliga SQL Server-installationen genom att ersätta SQL Server-bitarna och uppgradera databasobjekten. För miljöer som kör tillgänglighetsgrupper (AG:er) eller redundansklusterinstanser (FCIs) kombineras en uppgradering på plats med en löpande uppgradering för att minimera stilleståndstiden.
En vanlig metod för sida-vid-sida-uppgraderingar av replikeringstopologier är att flytta utgivare-prenumerantpar stegvis till den nya sida-vid-sida-miljön, i stället för en förflyttning av hela topologin. Den här stegvisa metoden hjälper till att styra stilleståndstiden och minimerar påverkan i viss utsträckning för verksamheten som är beroende av replikering.
De flesta av de här artiklarna handlar om att uppgradera versionen av SQL Server. Uppgraderingsprocessen på plats bör dock också användas vid korrigering av SQL Server med ett service pack eller kumulativ uppdatering.
Anmärkningar
Att uppgradera en replikeringstopologi är en process i flera steg. Vi rekommenderar att du försöker uppgradera en replik av replikeringstopologin i en testmiljö innan du kör uppgraderingen i den faktiska produktionsmiljön. Detta hjälper dig att reda ut all driftdokumentation som krävs för att hantera uppgraderingen smidigt utan att orsaka dyra och långa driftstopp under själva uppgraderingsprocessen. Du kan minska stilleståndstiden avsevärt med hjälp av AG:er och/eller FCI:er för deras produktionsmiljöer samtidigt som du uppgraderar replikeringstopologin. Dessutom rekommenderar vi att du säkerhetskopierar alla databaser, inklusive msdb
, master
, distributionsdatabaser och de användardatabaser som deltar i replikeringen innan du försöker uppgradera.
När du har en distributionsdatabas i en redundansklusterinstans kontrollerar du att alla deltagande noder använder samma version. Vi rekommenderar inte en installation där en nod är en SQL Server-version tidigare än SQL Server 2016 (13.x) SP2-CU3 eller SQL Server 2017 (14.x) CU6 och den andra noden är en SQL Server-version senare än SQL Server 2016 (13.x) SP2-CU3 eller SQL Server 2017 (14.x) CU6. Från och med SQL Server 2016 (13.x) SP2-CU3 och SQL Server 2017 (14.x) CU6 läggs stöd till för att använda en distributionsdatabas i en tillgänglighetsgrupp och för nya objekt (tabeller, lagrade procedurer) i distributionsdatabaser. Om distributionsdatabasen finns i en redundansklusterinstans och du utför en stegvis migrering (och du inte kan uppgradera alla noder till samma version av SQL Server) för den smala migreringstiden rekommenderar vi att du utför kontouppgifter som att lägga till en ny prenumerant, prenumeration, utgivare eller publikation på noden som har den senare versionen av SQL Server.
Replikeringsmatris
Kompatibilitetsmatris för transaktions- och ögonblicksbildreplikering
Utgivare | distributör | Prenumerant |
---|---|---|
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 gäller för Azure SQL Managed Instance som konfigurerats med uppdateringsprincipen SQL Server 2022. AUTD gäller för Azure SQL Managed Instance som konfigurerats med Always-up-to-date uppdateringsprincipen.
Sammanfoga replikeringskompatibilitetsmatris
Utgivare | distributör | Prenumerant |
---|---|---|
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) |
Uppgraderingsöverväganden
Kör Log Reader Agent för transaktionsreplikering före uppgradering
Innan du uppgraderar SQL Server måste du se till att alla incheckade transaktioner från publicerade tabeller bearbetades av Log Reader Agent. Kontrollera att alla transaktioner bearbetas genom att utföra följande steg för varje databas som innehåller transaktionspublikationer:
Kontrollera att loggläsaragenten körs för databasen. Som standard körs agenten kontinuerligt.
Stoppa användaraktiviteten i publicerade tabeller.
Tillåt tid för Log Reader-agenten att kopiera transaktioner till distributionsdatabasen och stoppa sedan agenten.
Kör sp_replcmds för att verifiera att alla transaktioner bearbetas. Resultatuppsättningen från den här proceduren ska vara tom.
Kör sp_replflush för att stänga anslutningen från
sp_replcmds
Utför serveruppgradering till den senaste versionen av SQL Server.
Starta om SQL Server-agenten och loggläsaragenten om de inte startas automatiskt efter uppgraderingen.
Köra agenter för sammanslagningsreplikering efter uppgraderingen
Efter uppgraderingen kör du Ögonblicksbildsagenten för varje sammanslagningspublikation och Sammanslagningsagenten för varje prenumeration för att uppdatera replikeringsmetadata. Du behöver inte tillämpa den nya ögonblicksbilden eftersom det inte är nödvändigt att initiera prenumerationer igen. Prenumerationsmetadata uppdateras första gången sammanslagningsagenten körs efter uppgraderingen. Det innebär att prenumerationsdatabasen kan vara online och aktiv under publisher-uppgraderingen.
Sammanslagen replikering lagrar metadata för publiceringar och prenumerationer i flera systemtabeller i publikations- och prenumerationsdatabaserna. Körning av ögonblicksbildsagenten uppdaterar publiceringsmetadata och körning av sammanslagningsagenten uppdaterar prenumerationsmetadata. Det krävs bara för att generera en ögonblicksbild av publikationen. Om en sammanslagningspublikation använder parametriserade filter har varje partition också en ögonblicksbild. Det är inte nödvändigt att uppdatera dessa partitionerade ögonblicksbilder.
Kör agenterna från SQL Server Management Studio, Replikeringsövervakaren eller från kommandoraden. Mer information om hur du kör Ögonblicksbildsagenten finns i följande artiklar:
- Skapa och tillämpa den första ögonblicksbilden
- Starta och stoppa en replikeringsagent (SQL Server Management Studio)
- Skapa och tillämpa den första ögonblicksbilden
- Replikeringsagentens exekverbara filer
Mer information om hur du kör sammanslagningsagenten finns i följande artiklar:
När du har uppgraderat SQL Server i en topologi som använder sammanslagningsreplikering ändrar du publikationskompatibilitetsnivån för eventuella publikationer om du vill använda nya funktioner.
Uppgradera till Standard-, Workgroup- eller Express-utgåvor
Innan du uppgraderar från en utgåva av SQL Server till en annan kontrollerar du att de funktioner som du använder för närvarande stöds i den utgåva som du uppgraderar till. Mer information finns i avsnittet om replikering i -utgåvor och funktioner som stöds i SQL Server 2022.
Steg för att uppgradera en replikeringstopologi
De här stegen beskriver i vilken ordning servrar i en replikeringstopologi ska uppgraderas. Samma steg gäller oavsett om du kör transaktions- eller sammanslagningsreplikering. De här stegen omfattar dock inte Peer-to-Peer-replikering, köade uppdateringsprenumerationer eller omedelbara uppdateringar av prenumerationer.
Uppgradering på plats
- Uppgradera distributören.
- Uppgradera utgivaren och prenumeranten. Dessa kan uppgraderas i valfri ordning.
Notera
För SQL Server 2008 (10.0.x) och SQL Server 2008 R2 (10.50.x) måste uppgraderingen av utgivaren och prenumeranten göras samtidigt för att anpassas till replikeringstopologimatrisen. SQL Server 2008 (10.0.x) och SQL Server 2008 R2 (10.50.x) utgivare eller prenumeranter kan inte ha en SQL Server 2016 (13.x) (eller senare) utgivare eller prenumerant. Om du inte kan uppgradera samtidigt kan du använda en mellanliggande uppgradering för att uppgradera SQL Server-instanserna till SQL Server 2014 (12.x) och sedan uppgradera dem igen till SQL Server 2016 (13.x) (eller senare).
Uppgradering sida vid sida
- Uppgradera distributören.
- Konfigurera om Konfigurera distribution på den nya SQL Server-instansen.
- Uppgradera utgivaren.
- Uppgradera prenumeranten.
- Konfigurera om alla Publisher-Subscriber-par, inklusive återinitiering av prenumeranten.
Steg för migrering sida vid sida av distributören till Windows Server
En sida vid sida-uppgradering är den enda uppgraderingssökväg som är tillgänglig för SQL Server-instanser som deltar i ett redundanskluster. Följande steg kan utföras på antingen en fristående SQL Server-instans eller en i en redundansklusterinstans (FCI).
Konfigurera en ny SQL Server-instans (antingen fristående eller FCI), utgåva och version som distributör på Windows Server med ett annat Windows-kluster och SQL Server FCI-namn eller fristående värdnamn. Du måste behålla katalogstrukturen på samma sätt som den gamla distributören för att säkerställa att körbara replikeringsagenter, replikeringsmappar och databasfilsökvägar hittas på samma sökväg i den nya miljön. Detta minskar alla steg efter migreringen/uppgraderingen som krävs.
Se till att replikeringen synkroniseras och stäng sedan av alla replikeringsagenter.
Stäng av den aktuella SQL Server Distributor-instansen. Om det här är en fristående instans stänger du av servern. Om det här är en SQL Server FCI tar du hela SQL Server-rollen offline i klusterhanteraren, inklusive nätverksnamnet.
Ta bort DNS- och Active Directory-objektposterna för den gamla miljön (aktuell distributörsinstans).
Ändra värdnamnet för den nya servern så att det matchar den gamla serverns.
- Om detta är en SQL Server FCI byter du namn på den nya SQL Server FCI med samma virtuella servernamn som den gamla instansen.
Kopiera databasfilerna från den tidigare instansen med san-omdirigering, lagringskopiering eller filkopia.
Aktivera den nya SQL Server-instansen.
Starta om alla replikeringsagenter och kontrollera om agenterna körs framgångsrikt.
Kontrollera om replikeringen fungerar som förväntat.
Använd SQL Server-installationsmediet för att köra en uppgradering på plats av SQL Server-instansen till den nya versionen av SQL Server.
Notera
För att minska stilleståndstiden rekommenderar vi att du utför migrering parallellt av distributören som en aktivitet, och direktuppgradering till SQL Server som en annan aktivitet. På så sätt kan du använda en stegvis metod, minska risken och minimera stilleståndstiden.
Webbsynkronisering för sammanslagningsreplikering
Webbsynkroniseringsalternativet för sammanslagningsreplikering kräver att du kopierar SQL Server Replication Listener (replisapi.dll
) till den virtuella katalogen på IIS-servern (Internet Information Services) som används för synkronisering. När du konfigurerar webbsynkronisering kopierar guiden Konfigurera webbsynkronisering filen till den virtuella katalogen. Om du uppgraderar SQL Server-komponenterna som är installerade på IIS-servern måste du manuellt kopiera replisapi.dll från COM-katalogen till den virtuella katalogen på IIS-servern. Mer information om hur du konfigurerar webbsynkronisering finns i Konfigurera webbsynkronisering.
Återställa en replikerad databas från en tidigare version
För att säkerställa att replikeringsinställningarna behålls när du återställer en säkerhetskopia av en replikerad databas från en tidigare version: återställ till en server och databas med samma namn som den server och databas där säkerhetskopieringen gjordes.
Relaterat innehåll
- SQL Server-replikering
- Replikeringsadministration: vanliga frågor och svar
- Bakåtkompatibilitet för replikering
- versions- och versionsuppgraderingar som stöds (SQL Server 2022)
- Uppgradera SQL Server-
- Uppgradera en replikeringstopologi till SQL Server 2016