Upgrade nebo oprava replikovaných databází
platí pro:SQL Server – jenom Windows
SQL Server podporuje upgrade replikovaných databází z předchozích verzí SQL Serveru; Při upgradu uzlu se nevyžaduje zastavení aktivity v jiných uzlech.
Požadavky
Ujistěte se, že dodržujete pravidla týkající se podporovaných verzí v topologii:
Distributor může být libovolná verze, pokud je větší nebo rovna verzi Publisheru (v mnoha případech je Distributor stejná instance jako Publisher).
Vydavatelská verze může být libovolná, pokud je menší nebo rovna verzi distributora.
Vydavatel a distributor musí být tentýž subjekt. Oba jsou SQL Server, nebo obě jsou Azure SQL Managed Instance.
Verze odběratele závisí na typu publikace:
Odběratel transakční publikace může být libovolná verze ve dvou verzích aplikace Publisher. Například: SQL Server 2012 (11.x) Publisher může mít předplatitele SQL Serveru 2014 (12.x) a SQL Server 2016 (13.x). a SQL Server 2016 (13.x) Publisher můžou mít předplatitele SQL Serveru 2014 (12.x) a SQL Serveru 2012 (11.x).
Předplatitel slučovací publikace může mít libovolnou verzi, která je stejná nebo nižší než verze vydavatelská, podle toho, která je podporována v rámci životního cyklu podpory verzí.
Cesty aktualizace
Cesta upgradu na SQL Server se liší v závislosti na vzoru nasazení. SQL Server nabízí obecně dvě cesty upgradu:
Vedle sebe: Nasaďte paralelní prostředí a přesuňte databáze spolu s přidruženými objekty na úrovni instance, jako jsou přihlášení, úlohy atd. do nového prostředí.
Místní upgrade: Umožňuje instalačnímu médiu SQL Serveru upgradovat stávající instalaci SQL Serveru nahrazením bitů SQL Serveru a upgradem databázových objektů. V prostředích se skupinami dostupnosti (AG) nebo instancemi clusteru pro převzetí služeb při selhání (FCI) se upgrade na místě kombinuje s postupným upgradem, aby se minimalizovala doba výpadku.
Běžným způsobem pro paralelní upgrady topologií replikace je přesunovat páry vydavatel-odběratel po částech do nového paralelního prostředí, spíše než přesouvat celou topologii. Tento fázovaný přístup pomáhá řídit výpadky a minimalizuje dopad v určitém rozsahu pro firmu závislou na replikaci.
Většina tohoto článku se týká upgradu verze SQL Serveru. Při opravách SQL Serveru pomocí aktualizace Service Pack nebo kumulativní aktualizace by se ale měl také použít místní proces upgradu.
Poznámky
Aktualizace topologie replikace je vícekrokový proces. Před spuštěním upgradu ve skutečném produkčním prostředí doporučujeme vyzkoušet upgrade repliky topologie replikace v testovacím prostředí. To vám pomůže vyžehlit veškerou provozní dokumentaci, která je nutná k bezproblémovému zpracování upgradu, aniž by během skutečného procesu upgradu došlo k nákladným a dlouhým výpadkům. Během upgradu topologie replikace můžete výrazně snížit prostoje s využitím dostupnostních skupin (AG) a/nebo instancí přechodu na jiný cluster (FCI) pro jejich produkční prostředí. Kromě toho doporučujeme před pokusem o upgrade provést zálohování všech databází, včetně msdb
, master
, distribučních databází a uživatelských databází, které se účastní replikace.
Pokud máte distribuční databázi v instanci clusteru s failoverem, ujistěte se, že všechny zúčastněné uzly používají stejný build. Nedoporučujeme nastavit, ve kterém je jeden uzel verzí SQL Serveru starší než SQL Server 2016 (13.x) SP2-CU3 nebo SQL Server 2017 (14.x) CU6 a druhý uzel je SQL Server verze novější než SQL Server 2016 (13.x) SP2-CU3 nebo SQL Server 2017 (14.x) CU6. Počínaje SQL Serverem 2016 (13.x) SP2-CU3 a SQL Serverem 2017 (14.x) CU6 je přidána podpora pro použití distribuční databáze ve skupině dostupnosti a pro nové objekty (tabulky, uložené procedury) v distribučních databázích. Pokud je vaše distribuční databáze v instanci clusteru s podporou převzetí služeb při selhání a provádíte fázovanou migraci (a nemůžete upgradovat všechny uzly na stejnou verzi SQL Serveru), doporučujeme během krátkého časového období migrace provádět úlohy, jako je přidání nového odběratele, předplatného, vydavatele nebo publikace na uzlu, který má novější verzi SQL Serveru.
Matice replikace
Matice kompatibility transakční replikace a replikace snímků
Vydavatel | distributor | předplatitele |
---|---|---|
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) | 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 platí pro službu Azure SQL Managed Instance nakonfigurovanou pomocí zásad aktualizace SQL Serveru 2022.
AUTD platí pro službu Azure SQL Managed Instance nakonfigurovanou se zásadou aktualizace Always-up-to-date.
Matice kompatibility replikačního sloučení
Vydavatel | distributor | předplatitele |
---|---|---|
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) |
Úvahy o upgradu
Před upgradem spusťte agenta Log Reader pro transakční replikaci.
Před upgradem SQL Serveru je nutné zajistit, aby všechny potvrzené transakce z publikovaných tabulek byly zpracovány agentem čtenáře protokolu. Chcete-li zajistit, aby byly všechny transakce zpracovány, proveďte následující kroky pro každou databázi, která obsahuje transakční publikace:
Ujistěte se, že je pro databázi spuštěný agent Log Reader. Ve výchozím nastavení agent běží nepřetržitě.
Zastavte aktivitu uživatelů u publikovaných tabulek.
Počkejte, než agent Log Reader zkopíruje transakce do distribuční databáze a pak zastaví agenta.
Spuštěním sp_replcmds ověřte, že se zpracovávají všechny transakce. Sada výsledků z tohoto postupu by měla být prázdná.
Spuštěním sp_replflush ukončete připojení z
sp_replcmds
Proveďte upgrade serveru na nejnovější verzi SQL Serveru.
Pokud se po upgradu nespustí automaticky, restartujte agenta SQL Serveru a agenta čtenáře protokolů.
Spuštění agentů pro slučovací replikaci po upgradu
Po upgradu spusťte Agenta snímků pro každou slučovací publikaci a Agenta sloučení pro každé předplatné, aby se aktualizovala metadata replikace. Nový snímek nemusíte používat, protože není nutné znovu inicializovat předplatná. Metadata předplatného se aktualizují při prvním spuštění agenta sloučení po upgradu. To znamená, že databáze předplatného může zůstat online a aktivní během upgradu aplikace Publisher.
Replikace se slučováním ukládá metadata publikací a odběrů do několika systémových tabulek v databázích publikací a odběrů. Spuštění snapshotového agenta aktualizuje metadata publikování a spuštění slučovacího agenta aktualizuje metadata odběru. Vyžaduje se pouze vygenerování snímku publikace. Pokud slučovací publikace používá parametrizované filtry, každý oddíl má také snímek. Tyto dělené snímky není nutné aktualizovat.
Spusťte agenty ze sady SQL Server Management Studio, nástroje Replication Monitor nebo z příkazového řádku. Další informace o spuštění agenta snímků najdete v následujících článcích:
- vytvoření a použití počátečního snímku
- spuštění a zastavení agenta replikace (SQL Server Management Studio)
- vytvoření a použití počátečního snímku
- Spustitelné soubory agenta replikace - Koncepty
Další informace o spuštění agenta sloučení najdete v následujících článcích:
Po upgradu SQL Serveru v topologii, která používá slučovací replikaci, změňte úroveň kompatibility publikace všech publikací, pokud chcete používat nové funkce.
Upgrade na edice Standard, Workgroup nebo Express
Před upgradem z jedné edice SQL Serveru na jinou ověřte, že funkce, které aktuálně používáte, jsou podporované v edici, na kterou upgradujete. Další informace najdete v části Replikace v edicích a podporovaných funkcích systému SQL Server 2022.
Kroky k aktualizaci topologie replikace
Tyto kroky popisují pořadí, ve kterém mají být upgradovány servery v topologii replikace. Stejný postup platí bez ohledu na to, jestli spouštíte transakční nebo slučovací replikaci. Tyto kroky ale nepokrývají replikaci peer-to-peer, aktualizaci předplatných ve frontě ani okamžité aktualizace předplatných.
Aktualizace na místě
- Upgradujte distributora.
- Upgradujte vydavatele a odběratele. Ty je možné upgradovat v libovolném pořadí.
Poznámka
Pro SQL Server 2008 (10.0.x) a SQL Server 2008 R2 (10.50.x) je nutné upgradovat vydavatele a odběratele současně, aby byly v souladu s maticí topologie replikace. Vydavatelé SQL Serveru 2008 (10.0.x) a SQL Server 2008 R2 (10.50.x) ani předplatitelé nemůžou mít vydavatele ANI předplatitele SQL Serveru 2016 (13.x) (nebo novější). Pokud není možný upgrade současně, použijte zprostředkující upgrade, abyste upgradovali instance SQL Serveru na SQL Server 2014 (12.x), a poté je znovu upgradujte na SQL Server 2016 (13.x) (nebo novější).
Souběžný upgrade
- Upgradujte distributora.
- Překonfigurujte Konfigurace distribuce v nové instanci SQL Serveru.
- Aktualizujte software pro publikování.
- Upgradujte odběratele.
- Překonfigurujte všechny páry Publisher-Subscriber, včetně opětovné inicializace odběratele.
Postup souběžné migrace distributora na Windows Server
Jedinou dostupnou cestou upgradu pro instance SQL Serveru, které se účastní failover clusteru, je paralelní upgrade. Následující kroky lze provést na samostatné instanci SQL Serveru nebo na jedné v rámci instance převzetí služeb při selhání (FCI).
Nastavte novou instanci SQL Serveru (buď samostatnou, nebo FCI), edici a verzi jako distributora na Windows Serveru s jiným clusterem Windows a názvem FCI SQL Serveru nebo samostatným názvem hostitele. Pokud chcete zajistit, aby se agenti replikace s spustitelnými soubory, složkami replikace a cestami k souborům databáze našli na stejné cestě v novém prostředí, musíte zachovat adresářovou strukturu stejně jako starý distributor. Tím se sníží všechny požadované kroky po migraci nebo upgradu.
Ujistěte se, že je vaše replikace synchronizovaná, a pak ukončete všechny agenty replikace.
Vypněte aktuální instanci distributora SQL Serveru. Pokud se jedná o samostatnou instanci, vypněte server. Pokud se jedná o FCI SQL Serveru, přepněte celou roli SQL Serveru do režimu offline ve Správci clusteru, včetně názvu sítě.
Odeberte položky objektů počítače DNS a Active Directory pro staré prostředí (aktuální instance distributora).
Změňte název hostitele nového serveru tak, aby odpovídal názvu původního serveru.
- Pokud se jedná o FCI SQL Serveru, přejmenujte novou FCI SQL Serveru se stejným názvem virtuálního serveru jako stará instance.
Zkopírujte soubory databáze z předchozí instance pomocí přesměrování sítě SAN, kopie úložiště nebo kopírování souboru.
Přeneste novou instanci SQL Serveru do režimu online.
Restartujte všechny agenty replikace a ověřte, jestli jsou agenti úspěšně spuštěni.
Ověřte, jestli replikace funguje podle očekávání.
Pomocí instalačního média SQL Serveru spusťte místní upgrade instance SQL Serveru na novou verzi SQL Serveru.
Poznámka
Pokud chcete snížit prostoje, doporučujeme provést souběžnou migraci distributora jednou činností a místní upgrade na SQL Server jako samostatnou činností. To vám umožní provést fázovaný přístup, snížit riziko a minimalizovat výpadky.
Synchronizace přes web pro slučovací replikaci
Možnost webové synchronizace pro slučovací replikaci vyžaduje, abyste zkopírovali SQL Server Replication Listener (replisapi.dll
) do virtuálního adresáře na serveru Internetových informačních služeb (IIS), který je používán pro synchronizaci. Když nakonfigurujete synchronizaci webu, Průvodce konfigurací synchronizace webu zkopíruje soubor do virtuálního adresáře. Pokud upgradujete součásti SYSTÉMU SQL Server nainstalované na serveru služby IIS, musíte ručně zkopírovat replisapi.dll z adresáře COM do virtuálního adresáře na serveru služby IIS. Další informace o konfiguraci synchronizace webu naleznete v tématu Konfigurace webové synchronizace.
Obnovení replikované databáze ze starší verze
Chcete-li zajistit zachování nastavení replikace při obnovování zálohy replikované databáze z předchozí verze: obnovení na server a databázi se stejnými názvy jako server a databáze, ve kterých byla záloha provedena.
Související obsah
- replikace SQL Serveru
- Nejčastější dotazy ke správě replikace
- zpětná kompatibilita replikace
- Podporované upgrady verzí a edic (SQL Server 2022)
- Upgradovat SQL Server
- Aktualizace topologie replikace na SQL Server 2016