Sdílet prostřednictvím


Co je omezená skupina dostupnosti?

platí pro: SQL Server 2022 (16.x)

Obsažená skupina dostupnosti je skupina dostupnosti AlwaysOn (AG), která podporuje:

  • správa objektů metadat (uživatelé, přihlášení, oprávnění, úlohy agenta SQL atd.) v rámci úrovně AG kromě úrovně instance.

  • specializované databáze odděleného systému v rámci skupiny dostupnosti AG.

Tento článek podrobně popisuje podobnosti, rozdíly a funkce obsažených skupin AG.

Přehled

Skupiny AG se obvykle skládají z jedné nebo více uživatelských databází, které mají fungovat jako koordinovaná skupina a které se replikují na některém počtu uzlů v clusteru. Pokud dojde k selhání v uzlu nebo ve stavu SQL Serveru na uzlu, který je hostitelem primární kopie, se skupina databází přesune jako jednotka do jiného uzlu repliky ve skupině dostupnosti. Všechny uživatelské databáze jsou udržovány synchronizované ve všech replikách skupin dostupnosti (AG) v synchronním nebo asynchronním režimu.

To funguje dobře pro aplikace, které pracují pouze s touto sadou uživatelských databází, ale existují problémy, když aplikace také spoléhají na objekty, jako jsou uživatelé, přihlášení, oprávnění, úlohy agenta atd., které jsou uložené v jedné ze systémových databází (master nebo msdb). Aby aplikace fungovaly hladce a předvídatelně, musí správce ručně zajistit, aby všechny změny těchto objektů byly duplikovány napříč všemi instancemi replik ve skupině dostupnosti. Pokud se nová instance přenese do AG, databáze mohou být automaticky nebo ručně nasazeny jednoduchým způsobem, ale všechna upravená nastavení systémové databáze musí být v nové instanci znovu nastavena, aby odpovídala ostatním replikám.

Obsažené skupiny AG rozšiřují koncept skupiny databází, které se replikují, aby zahrnovaly relevantní části master a msdb databází. Představte si to jako kontext provádění pro aplikace používající obsaženou AG. Myšlenka je, že obsažené AG prostředí obsahuje nastavení, která ovlivní aplikaci, jež na nich závisí. Obsažené prostředí skupiny dostupnosti se týká všech databází, se kterými aplikace komunikuje, ověřování, které používá (přihlášení, uživatelé, oprávnění), všechny naplánované úlohy, které očekává spuštění, a další nastavení konfigurace, která ovlivňují aplikaci.

Liší se od databází s omezením, které používají jiný mechanismus pro uživatelské účty a ukládají informace o uživatelích v samotné databázi. Omezené databáze replikují pouze přihlášení a uživatele, a rozsah replikovaného přihlášení nebo uživatele je omezen na tuto konkrétní databázi (a její repliky).

Naproti tomu v obsažené skupině dostupnosti můžete vytvářet uživatele, přihlášení, oprávnění atd. Na úrovni skupiny dostupnosti jsou automaticky konzistentní mezi replikami ve skupině dostupnosti a také konzistentní mezi databázemi v rámci této skupiny dostupnosti. Tím se správce nemusí ručně zabývat těmito změnami.

Rozdíly

Při práci s obsaženými skupinami dostupnosti (Availability Groups, AG) je potřeba vzít v úvahu některé praktické rozdíly, jako je vytvoření obsažených systémových databází a vynucení připojení na úrovni skupiny obsažené dostupnosti, a nikoli při připojování na úrovni instance.

Systémové databáze v uzavřeném systému

Každá skupina dostupnosti obsahuje vlastní systémové databáze master a msdb, které jsou pojmenované podle názvu skupiny dostupnosti. Například v obsahovaném AG MyContainedAGmáte databáze MyContainedAG_master a MyContainedAG_msdb. Tyto systémové databáze se automaticky zasadí do nových replik a aktualizace se do těchto databází replikují stejně jako všechny ostatní databáze ve skupině dostupnosti. To znamená, že když přidáte objekt, jako je přihlášení nebo úloha agenta, když jste připojeni k obsažené skupině dostupnosti, při selhání obsažené skupiny dostupnosti dojde k převzetí služeb jinou instancí, stále uvidíte úlohy agenta a budete schopni se ověřit pomocí přihlášení vytvořeného v obsažené skupině dostupnosti.

Důležitý

Obsahované skupiny dostupnosti jsou mechanismem pro udržení konzistentní konfigurace prostředí provádění napříč replikami této skupiny dostupnosti. nepředstavují hranici zabezpečení. Neexistuje žádná hranice, která by například neomezovala připojení z uzavřené skupiny dostupnosti k databázím mimo tuto skupinu dostupnosti.

Systémové databáze v nově vytvořené skupině dostupnosti AG nejsou kopiemi z instance, kde je spuštěn příkaz CREATE AVAILABILITY GROUP. Zpočátku jsou prázdné šablony bez jakýchkoli dat. Okamžitě po vytvoření se účty správců na instanci, která vytváří obsaženou AG, zkopírují do obsažené AG master. Tímto způsobem se správce může přihlásit do obsažené skupiny dostupnosti (AG) a nastavit zbytek konfigurace.

Pokud ve vaší instanci vytváříte místní uživatele nebo konfigurace, nezobrazí se automaticky při vytváření obsažených systémových databází a nejsou viditelné při připojení k obsažené skupině dostupnosti. Jakmile je uživatelská databáze připojená k obsažené skupině dostupnosti, stane se okamžitě nepřístupná těmto uživatelům. Musíte je ručně znovu vytvořit v systémových databázích obsažených v rámci obsahované skupiny dostupnosti, a to buď přímým připojením k databázi, nebo použitím koncového bodu posluchače. Výjimkou je, že všechna přihlášení v roli správce systému v nadřazené instanci se zkopírují do nové databáze specifické pro ag master.

Poznámka

Vzhledem k tomu, že databáze master je oddělená pro každou obsaženou skupinu dostupnosti, aktivity na úrovni serveru prováděné v kontextu obsažené skupiny dostupnosti přetrvávají pouze v obsažené systémové databázi. To zahrnuje auditování. Pokud auditujete aktivitu na úrovni serveru pomocí auditování SQL Serveru, musíte v rámci každé skupiny dostupnosti vytvořit stejné audity serverů.

Obnovení uzavřené systémové databáze

Systémovou databázi s omezením můžete obnovit jedním ze dvou různých způsobů.

  • Obnovení obsažené databáze pomocí sekundární repliky:

    1. Obnovte obsažené master a msdb databázi na instanci serveru, která je hostitelem sekundární repliky, pomocí RESTORE WITH NORECOVERY pro každou operaci obnovení. Další informace najdete v tématu Příprava sekundární databáze pro skupinu dostupnosti AlwaysOn.

    2. Připojte každou obsaženou databázi ke skupině dostupnosti. Další informace najdete v tématu Připojení sekundární databáze ke skupině dostupnosti AlwaysOn.

  • Obnovení obsažené databáze odstraněním obsažené skupiny dostupnosti:

    1. Zahoďte obsaženou ag.

    2. Obnovte databáze master a msdb v každé instanci, která se účastní skupiny dostupnosti.

    3. Znovu vytvořte obsažené AG s použitím původních uzlů a názvu pomocí syntaxe WITH (CONTAINED, REUSE_SYSTEM_DATABASES).

Připojení (uzavřené prostředí)

Je důležité rozlišovat mezi připojením k instanci a připojením ke skupině dostupnosti (AG). Jediným způsobem, jak získat přístup k prostředí obsažené skupiny dostupnosti (AG), je připojit se k naslouchacímu procesu pro obsaženou skupinu dostupnosti nebo se připojit k databázi, která je v obsažené skupině dostupnosti.

"Persist Security Info=False;
User ID=MyUser;Password=*****;
Initial Catalog=MyContainedDatabase;
Server=MyServer;"

Kde MyContainedDatabase je databáze v rámci obsažené skupiny dostupnosti, se kterou chcete pracovat.

To znamená, že musíte vytvořit naslouchací proces pro obsažené skupiny dostupnosti, aby se efektivně používala obsažená skupina dostupnosti. Pokud se připojíte k jedné z instancí hostování obsažené skupiny dostupnosti, nikoli přímo k obsažené skupině dostupnosti prostřednictvím naslouchacího procesu, jste v prostředí instance a ne v obsažené skupině dostupnosti.

Pokud je například vaše skupina dostupnosti MyContainedAG hostovaná na serveru SERVER\MSSQLSERVERa místo připojení k naslouchacímu procesu MyContainedAG_Listenerse připojíte k instanci pomocí SERVER\MSSQLSERVER, nacházíte se v prostředí instance a ne v prostředí MyContainedAG. To znamená, že podléháte obsahu (uživatelům, oprávněním, úlohám atd.), které se nacházejí v systémových databázích instance. Pokud chcete získat přístup k obsahu nalezenému v obsažených systémových databázích obsažené skupiny dostupnosti, připojte se místo toho k naslouchacímu procesu skupiny dostupnosti (napříkladMyContainedAG_Listener). Když jste připojeni k instanci prostřednictvím naslouchacího procesu obsažené skupiny dostupnosti, při interakci s masterjste skutečně přesměrováni do databáze master (například MyContainedAG_master).

Směrování pouze pro čtení a uzavřené skupiny dostupnosti

Pokud nakonfigurujete směrování jen pro čtení pro přesměrování připojení se záměrem čtení na sekundární repliku (viz Konfigurace směrování jen pro čtení pro skupinu dostupnosti AlwaysOn) a chcete se připojit pomocí přihlášení vytvořeného pouze v obsažené skupině dostupnosti, je potřeba vzít v úvahu některé další aspekty:

  • Je nutné zadat databázi, která je součástí obsažené skupiny dostupnosti v připojovacím řetězci.
  • Uživatel zadaný v připojovacím řetězci musí mít oprávnění pro přístup k databázím v obsažené skupině dostupnosti.

Například v následujícím připojovacím řetězci, kde AdventureWorks je databáze v rámci obsažené skupiny dostupnosti, která má MyContainedListenera kde MyUser je uživatel definovaný v obsažené skupině dostupnosti a žádná z zúčastněných instancí:

"Persist Security Info=False;
User ID=MyUser;Password=*****;
Initial Catalog=AdventureWorks;
Server=MyContainedListener;
ApplicationIntent=ReadOnly"

Tento připojovací řetězec vás připojí ke čitelné sekundární části konfigurace směrování ReadOnly a budete v kontextu obsažené skupiny dostupnosti.

Rozdíly mezi připojením k instanci a připojením k obsažené skupině dostupnosti

  • Při připojení k obsažené skupině dostupnosti uživatelé uvidí pouze databáze v obsažené skupině dostupnosti a tempdb.
  • Na úrovni instance jsou jména obsažených AG master a msdb[contained AG]_mastera [contained AG]_msdb. Uvnitř obsažené skupiny dostupnosti jsou jejich názvy master a msdb.
  • ID databáze pro obsaženou AG master je uvnitř obsažené AG 1, ale při připojení k instanci je to něco jiného.
  • I když uživatelé nevidí databáze mimo uzavřenou AG v sys.databases při připojení k uzavřené AG, můžou k těmto databázím přistupovat pomocí třídílného názvu nebo příkazu USE.
  • Konfiguraci serveru prostřednictvím sp_configure lze číst z obsaženého připojení AG, ale lze ji zapisovat pouze z úrovně instance.
  • Z uzavřených připojení skupiny dostupnosti může správce systému provádět operace na úrovni instance, jako je vypnutí SQL Serveru.
  • Většinu operací na úrovni databáze, koncového bodu nebo skupiny dostupnosti je možné provádět pouze z připojení instancí, nikoli z připojení skupiny dostupnosti.

Interakce s dalšími funkcemi

Při používání určitých funkcí s obsaženými skupinami AG je potřeba vzít v úvahu další aspekty a některé funkce se v současné době nepodporují.

Nepodporováno

V současné době nejsou u obsažené skupiny dostupnosti podporované následující funkce SQL Serveru:

  • Replikace SQL Serveru libovolného typu (transakční, slučovací, snímek atd.)
  • Distribuované skupiny dostupnosti
  • Přeprava protokolů, kde je cílová databáze v obsažené AG. Přenos protokolů se zdrojovou databází v obsažené skupině dostupnosti je podporováno.

Změna zachytávání dat

Zachytávání změn dat (CDC) se implementuje jako úlohy agenta SQL, takže agent SQL musí být spuštěn na všech instancích s replikami v uzavřené skupině dostupnosti.

Pokud chcete použít zachytávání dat změn s obsaženou skupinou dostupnosti, připojte se při konfiguraci CDC k naslouchacímu procesu skupiny dostupnosti, aby metadata CDC byla nakonfigurována s využitím obsažených systémových databází.

Přenášení protokolů

Odesílání protokolů je možné nakonfigurovat, pokud je zdrojová databáze v obsažené skupině dostupnosti. Cílový server pro odesílání protokolu ale není podporován v rámci obsažené skupiny dostupnosti. Kromě toho existuje další krok pro úpravu úlohy odeslání protokolu po nakonfigurování CDC.

Pokud chcete nakonfigurovat přepravu protokolů s obsaženou skupinou dostupnosti, postupujte takto:

  1. Připojte se k naslouchacímu procesu posluchače skupiny dostupnosti (AG).
  2. Nakonfigurujte expediční protokolu stejně jako obvykle.
  3. Po nakonfigurování úlohy odesílání protokolu upravte úlohu tak, aby se před vytvořením zálohy připojila k naslouchací službě AG.

Transparentní šifrování dat (TDE)

Pokud chcete použít transparentní šifrování dat (TDE) s databázemi v obsažené skupině dostupnosti, ručně nainstalujte hlavní klíč databáze (DMK) do obsažené master databáze v rámci obsažené skupiny dostupnosti.

Databáze, které používají TDE (transparentní šifrování dat), spoléhají na certifikáty v databázi master k dešifrování šifrovacího klíče databáze (DEK). Bez takového certifikátu nemůže SQL Server dešifrovat databáze šifrované transparentním šifrováním dat ani je přenést do režimu online. Ve skupině obsažené dostupnosti SQL Server zkontroluje obě dvě databáze master pro DMK, databázi instance master a obsaženou databázi master v rámci skupiny obsažené dostupnosti pro dešifrování databáze. Pokud certifikát nemůže najít v jiném umístění, sql Server nemůže databázi přenést do režimu online.

Pokud chcete přenést DMK z databáze master instance do obsažené databáze master, přečtěte si téma Přesunutí databáze chráněné Transparentním šifrováním dat (TDE) do jiného SQL Serveru, zejména části zaměřené na přenos DMK ze starého serveru na nový.

Balíčky SSIS & plány údržby

Používání balíčků SSIS, včetně údržbových plánů, není podporováno u obsahovaných skupin dostupnosti.

Změny DDL

Jediné změny DDL se týkají workflow CREATE AVAILABILITY GROUP. Existují dvě nové klauzule WITH:

<with_option_spec> ::=
CONTAINED |
REUSE_SYSTEM_DATABASES

OBSAH

Určuje, že vytvořená skupina dostupnosti by měla být obsažená skupina dostupnosti.

REUSE_SYSTEM_DATABASES

Tato možnost je platná pouze pro uzavřené skupiny dostupnosti a určuje, že nově vytvořená skupina dostupnosti by měla znovu použít existující uzavřené systémové databáze pro předchozí uzavřenou skupinu dostupnosti se stejným názvem. Pokud jste například měli obsaženou AG s názvem MyContainedAGa chtěli ji odstranit a znovu vytvořit, můžete tuto možnost použít k využití obsahu původních systémových databází obsaženého systému.

Změny na úřadě pro motorová vozidla

Existují dva doplňky k dynamickým spravovacím zobrazením souvisejícím s obsaženými skupinami dostupnosti (AGs):

  • DMV sys.dm_exec_sessions má přidaný sloupec: contained_availability_group_id
  • Zobrazení katalogu sys.availability_groups obsahuje přidaný sloupec: is_contained