Přepínací propojení – Azure SQL Managed Instance

Applies to:Azure SQL Managed Instance

V tomto článku se dozvíte, jak provést převzetí služeb při selhání databáze linked mezi SQL Serverem a Azure SQL Managed Instance pomocí SQL Server Management Studio (SSMS) nebo PowerShellu pro účely havarijního zotavení nebo migrace.

Požadavky

Pokud chcete převzít služby při selhání databází do sekundární repliky prostřednictvím odkazu, potřebujete následující požadavky:

Zastavení zatížení

Pokud jste připraveni přejít na sekundární repliku databáze, nejprve zastavte všechny úlohy aplikací běžící na primární replice během doby údržby. To umožňuje replikaci databáze dohnat sekundární server, abyste mohli přejít na sekundární server bez ztráty dat. Před převzetím služeb při selhání se ujistěte, že vaše aplikace neaktuují transakce do primárního serveru.

Kontrola zpoždění replikace

Před provedením plánovaného převzetí služeb při selhání je důležité, aby sekundární replika dohnala primární repliku. Plánované převzetí služeb při selhání může vypršet časový limit a dojít k selhání, pokud sekundární replika zaostává daleko za primární.

K monitorování prodlevy replikace mezi replikami použijte následující dotaz T-SQL pro SQL Server i SQL Managed Instance:

-- Execute on SQL Server and SQL Managed Instance 
USE master
DECLARE @link_name varchar(max) = '<DAGname>'
SELECT
   ag.name [Link name], 
   ars1.role_desc [Link role],
   ars2.connected_state_desc [Link connected state],
   ars2.synchronization_health_desc [Link sync health],
   drs.secondary_lag_seconds [Link replication latency (seconds)]
FROM
   sys.availability_groups ag 
   JOIN sys.dm_hadr_availability_replica_states ars1
   ON ag.group_id = ars1.group_id
   JOIN sys.dm_hadr_availability_replica_states ars2
   ON ag.group_id = ars2.group_id
   JOIN sys.dm_hadr_database_replica_states drs
   ON ars2.replica_id = drs.replica_id
WHERE 
   ag.is_distributed = 1 AND ag.name = @link_name AND ars1.is_local = 1 AND ars2.is_local = 0
GO

Pokud je prodleva replikace vysoká, počkejte, než sekundární replika dožene primární repliku. Pokud prodleva přetrvává, může být potřeba provést další kroky pro řešení potíží, jako například zlepšit propustnost sítě propojení mezi dvěma instancemi nebo zvýšit kapacitu prostředků na sekundární replice.

Převzetí služeb při selhání databáze

Propojené databáze můžete převzít při selhání pomocí Transact-SQL (T-SQL), SQL Server Management Studio nebo PowerShellu.

Převzetí propojení při selhání můžete provést pomocí Transact-SQL počínaje SQL Server 2022 CU13 (KB5036432).

Pokud chcete pro připojení provést plánované převzetí služby po selhání, použijte na primární replice následující příkaz T-SQL:

ALTER AVAILABILITY GROUP [<DAGname>] FAILOVER

Pokud chcete na sekundární replice použít následující příkaz T-SQL pro provedení vynuceného převzetí služeb při selhání, postupujte podle těchto kroků:

ALTER AVAILABILITY GROUP [<DAGname>] FORCE_FAILOVER_ALLOW_DATA_LOSS

Důležité

Po provedení plánovaného převzetí služeb při selhání je režim replikace nastavený na asynchronní.

Přepnutí při selhání více databází

Pokud plánujete převzetí více databází z instancí na stejném serveru, pro zajištění optimálního výkonu a předvídatelnosti, převezměte při selhání 8 databází na jednu instanci najednou. Pokud máte například 10 instancí s 32 propojenými databázemi, přepněte vždy 8 databází z každé instance a tento proces opakujte, dokud nebudou všechny databáze přepnuty.

Zobrazit databázi po failoveru

Pokud jste se rozhodli zachovat propojení pro SQL Server 2022, můžete zkontrolovat, jestli distribuovaná skupina dostupnosti existuje v sekci skupiny dostupnosti v Object Explorer v SQL Server Management Studio.

Pokud jste během převzetí služeb při selhání ztratili propojení, můžete pomocí Object Explorer ověřit, že distribuovaná skupina dostupnosti už neexistuje. Pokud jste se rozhodli zachovat skupinu dostupnosti, bude databáze stále synchronizovaná.

Úklid po havárii

Pokud není vybrána možnost Odstranit odkaz po úspěšném převzetí služeb při selhání, pak převzetí služeb při selhání v SQL Serveru 2022 nenaruší propojení. Propojení můžete udržovat po převzetí služeb při selhání, což zanechá skupinu dostupnosti a distribuovanou skupinu dostupnosti aktivní. Nevyžaduje se žádná další akce.

Zrušení odkazu zruší pouze distribuovanou skupinu dostupnosti, zatímco skupina dostupnosti zůstane aktivní. Můžete se rozhodnout, že skupinu dostupnosti necháte nebo ji vypustíte.

Pokud se rozhodnete odstranit skupinu dostupnosti, nahraďte následující hodnotu a spusťte ukázkový kód T-SQL:

  • <AGName> s názvem skupiny dostupnosti na SQL Server (používá se k vytvoření odkazu).
-- Run on SQL Server
USE MASTER
GO
DROP AVAILABILITY GROUP <AGName> 
GO

Nekonzistentní stav po vynuceném převzetí při selhání

Po vynuceném převzetí služeb při selhání můžete narazit na scénář rozděleného mozku, ve kterém jsou obě repliky v primární roli, takže propojení zůstane v nekonzistentním stavu. K tomu může dojít, když dojde k převedení na sekundární repliku během havárie a pak se primární replika opět připojí.

Pokud chcete tento problém vyřešit, přečtěte si téma Oprava scénáře rozděleného mozku.

Použití odkazu:

Další informace o odkazu:

V případě jiných scénářů replikace a migrace zvažte následující: