Pozastavení databáze dostupnosti (SQL Server)
platí pro:SQL Server
Databázi dostupnosti ve skupinách dostupnosti AlwaysOn můžete pozastavit pomocí aplikace SQL Server Management Studio, Transact-SQL nebo PowerShellu na SQL Serveru. Všimněte si, že příkaz pro pozastavení musí být vydán v instanci serveru, která je hostitelem databáze, aby byla pozastavena nebo obnovena.
Účinek příkazu pozastavení závisí na tom, zda pozastavíte sekundární databázi nebo primární databázi následujícím způsobem:
Pozastavená databáze | Účinek příkazu Pozastavit |
---|---|
Sekundární databáze | Pozastaví se pouze místní sekundární databáze a její stav synchronizace se nesynchronuje. Jiné sekundární databáze nejsou ovlivněny. Pozastavená databáze přestane přijímat a používat data (záznamy protokolu) a začne zaostávat za primární databází. Stávající připojení na sekundární čitelné síti zůstanou použitelná. Nová připojení k pozastavené databázi v sekundární čitelné oblasti nejsou povolená, dokud nebude možné pokračovat v přesunu dat. Toto chování platí jenom v případě, že se připojení otevírají pomocí naslouchacího procesu a směrování jen pro čtení. Primární databáze zůstane k dispozici. Pokud pozastavíte každou z odpovídajících sekundárních databází, primární databáze zůstane vystavena. ** Důležité ** Zatímco sekundární databáze je pozastavena, fronta odesílání odpovídající primární databáze bude hromadit nezasílané záznamy transakčního protokolu. Připojení k sekundární replice vrací data, která byla k dispozici v době pozastavení přesunu dat. |
Primární databáze | Primární databáze zastaví přesun dat do každé připojené sekundární databáze. Primární databáze pokračuje v režimu zveřejnění. Primární databáze zůstává dostupná pro klienty a stávající připojení v sekundární čitelné oblasti zůstanou použitelná a dají se vytvořit nová připojení. |
Poznámka
Pozastavení sekundární databáze AlwaysOn nemá přímý vliv na dostupnost primární databáze. Pozastavení sekundární databáze ale může mít vliv na možnosti redundance a převzetí služeb při selhání pro primární databázi. To je na rozdíl od zrcadlení databáze, kde je stav zrcadlení pozastaven na databázi zrcadla i na hlavní databázi. Pozastavení primární databáze AlwaysOn pozastaví přesun dat ve všech odpovídajících sekundárních databázích a možnosti redundance a převzetí služeb při selhání pro tuto databázi přestanou fungovat, dokud se primární databáze neobnoví.
Než začnete:
Pozastavení databáze pomocí:
SQL Server Management Studio (správa databázového serveru SQL)
dohled:vyhnout se úplnému protokolu transakcí
Než začnete
Omezení a restrikce
Příkaz SUSPEND se vrátí ihned po přijetí replikou, která hostuje cílovou databázi, ale ve skutečnosti se databáze pozastaví asynchronně.
Požadavky
Musíte být připojeni k instanci serveru, která je hostitelem databáze, kterou chcete pozastavit. Pokud chcete pozastavit primární databázi a odpovídající sekundární databáze, připojte se k instanci serveru, která je hostitelem primární repliky. Pokud chcete pozastavit sekundární databázi a ponechat primární databázi dostupnou, připojte se k sekundární replice.
Doporučení
Během kritických bodů může být pozastavení jedné nebo více sekundárních databází krátce užitečné ke zlepšení výkonu na primární replice. Pokud sekundární databáze zůstane pozastavená, transakční protokol odpovídající primární databáze nelze zkrátit. To způsobí, že se záznamy protokolu nahromáždí v primární databázi. Proto doporučujeme rychle obnovit nebo odebrat pozastavenou sekundární databázi. Další informace najdete v Pokračování: Vyhněte se úplnému transakčnímu protokoludále v tomto tématu.
Bezpečnost
Dovolení
Vyžaduje oprávnění ALTER pro databázi.
Vyžaduje oprávnění ALTER AVAILABILITY GROUP pro skupinu dostupnosti, oprávnění CONTROL AVAILABILITY GROUP, oprávnění ALTER ANY AVAILABILITY GROUP nebo oprávnění CONTROL SERVER.
Použití aplikace SQL Server Management Studio
Pozastavit databázi
V Průzkumníku objektů se připojte k instanci serveru, která je hostitelem repliky dostupnosti, na které chcete pozastavit databázi, a rozbalte strom serveru. Další informace naleznete v tématu Požadavky, dříve v tomto tématu.
Rozbalte uzel Always On High Availability a uzel Skupiny dostupnosti .
Rozšiřte skupinu dostupnosti.
Rozbalte uzel Databáze dostupnosti, klikněte pravým tlačítkem myši na databázi a klikněte na Pozastavit přesun dat.
V dialogovém okně Pozastavit přesun dat klepněte na tlačítko OK.
Průzkumník objektů označuje, že databáze je pozastavena změnou ikony databáze tak, aby se zobrazil indikátor pozastavení.
Poznámka
Pokud chcete pozastavit další databáze v tomto umístění repliky, opakujte kroky 4 a 5 pro každou databázi.
Použití Transact-SQL
Pozastavení databáze
Připojte se k instanci serveru, která je hostitelem repliky, jejíž databázi chcete pozastavit. Další informace naleznete v tématu Požadavky, dříve v tomto tématu.
Pozastavte databázi pomocí následujícího příkazu ALTER DATABASE:
ALTER DATABASE database_name SET HADR SUSPEND;
Použití PowerShellu
Pozastavení databáze
Změňte adresář (cd) na instanci serveru, která je hostitelem repliky, jejíž databázi chcete pozastavit. Další informace naleznete v tématu Požadavky, dříve v tomto tématu.
K pozastavení skupiny dostupnosti použijte rutinu Suspend-SqlAvailabilityDatabase.
Následující příkaz například pozastaví synchronizaci dat pro databázi dostupnosti
MyDb3
ve skupině dostupnostiMyAg
na instanci serveru s názvemComputer\Instance
.Suspend-SqlAvailabilityDatabase ` -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\AvailabilityDatabases\MyDb3
Poznámka
Pokud chcete zobrazit syntaxi rutiny, použijte rutinu Get-Help v prostředí SQL Server PowerShell. Další informace najdete v tématu Získání nápovědy k SQL Serveru PowerShell.
Nastavení a použití poskytovatele SQL Serveru PowerShellu
Následné kroky: Vyhněte se zaplnění transakčního protokolu.
Za normálních okolností se při provádění automatického kontrolního bodu v databázi jeho transakční protokol zkrátí na tento kontrolní bod po dalším zálohování protokolu. Pokud je však sekundární databáze pozastavená, všechny aktuální záznamy protokolu zůstanou v primární databázi aktivní. Pokud se transakční protokol zaplní (protože dosáhne maximální velikosti nebo instance serveru vyčerpá místo), databáze nemůže provádět žádné další aktualizace.
Abyste se tomuto problému vyhnuli, měli byste udělat jednu z těchto věcí:
Přidejte další prostor pro logy pro primární databázi.
Před vyplněním protokolu obnovte sekundární databázi. Další informace naleznete v tématu Obnovení Databáze Dostupnosti (SQL Server).
Odeberte sekundární databázi. Další informace najdete v tématu Odebrání sekundární databáze ze skupiny dostupnosti (SQL Server).
Řešení potíží s úplným transakčním protokolem
Související úkoly
Viz také
přehled skupin dostupnosti AlwaysOn (SQL Server)
obnovení databáze dostupnosti (SQL Server)