Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Du kan pausa en tillgänglighetsdatabas i AlwaysOn-tillgänglighetsgrupper med hjälp av SQL Server Management Studio, Transact-SQL eller PowerShell i SQL Server. Observera att ett pauskommando måste utfärdas på den serverinstans som är värd för databasen för att pausas eller återupptas.
Effekten av ett pauskommando beror på om du pausar en sekundär databas eller en primär databas enligt följande:
Suspenderad databas | Effekten av pauskommando |
---|---|
Sekundär databas | Endast den lokala sekundära databasen pausas och dess synkroniseringstillstånd blir EJ SYNKRONISERAD. Andra sekundära databaser påverkas inte. Den pausade databasen slutar att ta emot och tillämpa data (loggposter) och börjar hamna bakom den primära databasen. Befintliga anslutningar på den läsbara sekundära förblir användbara. Nya anslutningar till den inaktiverade databasen på den läsbara sekundära filen tillåts inte förrän dataflytten återupptas. Det här beteendet gäller endast när anslutningar öppnas med lyssnare och skrivskyddad routning. Den primära databasen är fortfarande tillgänglig. Om du pausar varje motsvarande sekundär databas, körs den primära databasen sårbar. ** Viktigt ** När en sekundär databas stoppas, kommer skickakön för den motsvarande primära databasen att ackumulera osända transaktionsloggposter. Anslutningar till den sekundära repliken returnerar data som var tillgängliga när dataflytten avbröts. |
Primär databas | Den primära databasen stoppar dataflytten till varje ansluten sekundär databas. Den primära databasen fortsätter att köras i ett exponerat läge. Den primära databasen är fortfarande tillgänglig för klienter och befintliga anslutningar på en läsbar sekundär förblir användbara och nya anslutningar kan göras. |
Notera
Om du inaktiverar en alwayson-sekundär databas påverkas inte tillgängligheten för den primära databasen direkt. Om du inaktiverar en sekundär databas kan det dock påverka redundans- och failoverfunktionerna för den primära databasen. Detta står i kontrast till databasspegling, där speglingstillståndet pausas på både speglingsdatabasen och huvuddatabasen. Om du pausar en Always On-primärdatabas pausas dataflytten på alla motsvarande sekundära databaser, och redundans- och failover-funktioner upphör för den databasen tills den primära databasen återupptas.
Innan du börjar:
Om du vill pausa en databas med hjälp av:
Uppföljning:undvika en fullständig transaktionslogg
Innan du börjar
Begränsningar och inskränkningar
Ett SUSPEND-kommando returneras så snart det har godkänts av repliken som är värd för måldatabasen, men att pausa databasen sker asynkront.
Förutsättningar
Du måste vara ansluten till den serverinstans som är värd för den databas som du vill pausa. Om du vill pausa en primär databas och motsvarande sekundära databaser ansluter du till den serverinstans som är värd för den primära repliken. Om du vill pausa en sekundär databas och lämna den primära databasen tillgänglig ansluter du till den sekundära repliken.
Rekommendationer
Under flaskhalsar kan det vara praktiskt att tillfälligt pausa en eller flera sekundära databaser för att förbättra prestanda för den primära repliken. Så länge en sekundär databas förblir satt på paus kan inte transaktionsloggen för motsvarande primära databas trunkeras. Detta gör att loggposter ackumuleras på den primära databasen. Därför rekommenderar vi att du snabbt återupptar eller tar bort en inaktiverad sekundär databas. För mer information, se Uppföljning: Undvika en fullständig transaktionslogg, senare i detta ämne.
Säkerhet
Behörigheter
Kräver ALTER-behörighet för databasen.
Kräver behörighet för att ÄNDRA TILLGÄNGLIGHETSGRUPP på tillgänglighetsgruppen, KONTROLLERA TILLGÄNGLIGHETSGRUPP-behörighet, ändra valfri tillgänglighetsgrupp-behörighet, eller KONTROLLERA SERVRAR-behörighet.
Använda SQL Server Management Studio
Så här inaktiverar du en databas
I Object Explorer ansluter du till den serverinstans som är värd för tillgänglighetsrepliken där du vill pausa en databas och expanderar serverträdet. Mer information finns i Krav, tidigare i det här avsnittet.
Expandera noden Always On High Availability och noden Availability Groups.
Expandera tillgänglighetsgruppen.
Expandera noden Tillgänglighetsdatabaser, högerklicka på den aktuella databasen och klicka på Pausa dataflytt.
I dialogrutan Pausa dataflytt klickar du på OK.
Object Explorer anger att databasen pausas genom att ändra databasikonen så att en pausindikator visas.
Not
Om du vill pausa ytterligare databaser på den här replikplatsen upprepar du steg 4 och 5 för varje databas.
Använda Transact-SQL
Så här inaktiverar du en databas
Anslut till den serverinstans som är värd för repliken vars databas du vill pausa. Mer information finns i Krav, tidigare i det här avsnittet.
Pausa databasen med hjälp av följande ALTER DATABASE--instruktion:
ALTER DATABASE database_name SET HADR SUSPEND;
Använda PowerShell
Så här inaktiverar du en databas
Ändra katalog (cd) till den serverinstans som är värd för repliken vars databas du vill pausa. Mer information finns i Krav, tidigare i det här avsnittet.
Använd cmdleten Suspend-SqlAvailabilityDatabase för att pausa tillgänglighetsgruppen.
Följande kommando pausar till exempel datasynkronisering för tillgänglighetsdatabasen
MyDb3
i tillgänglighetsgruppenMyAg
på serverinstansen med namnetComputer\Instance
.Suspend-SqlAvailabilityDatabase ` -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\AvailabilityDatabases\MyDb3
Anteckning
Om du vill visa syntaxen för en cmdlet använder du cmdleten Get-Help i SQL Server PowerShell-miljön. Mer information finns i Hämta hjälp för SQL Server PowerShell.
Konfigurera och använda SQL Server PowerShell-providern
Uppföljning: Undvika en fullständig transaktionslogg
Normalt, när en automatisk kontrollpunkt utförs på en databas, trunkeras dess transaktionslogg till den kontrollpunkten efter nästa loggsäkerhetskopia. Men medan en sekundär databas pausas förblir alla aktuella loggposter aktiva i den primära databasen. Om transaktionsloggen fylls (antingen för att den når sin maximala storlek eller om serverinstansen får slut på utrymme) kan databasen inte utföra fler uppdateringar.
För att undvika det här problemet bör du göra något av följande:
Lägg till mer loggutrymme för den primära databasen.
Återuppta den sekundära databasen innan loggen fylls. Mer information finns i Återuppta en tillgänglighetsdatabas (SQL Server).
Ta bort den sekundära databasen. Mer information finns i Ta bort en sekundär databas från en tillgänglighetsgrupp (SQL Server).
Felsöka en fullständig transaktionslogg
Relaterade uppgifter
Se även
översikt över AlwaysOn-tillgänglighetsgrupper (SQL Server)
Återuppta en tillgänglighetsdatabas (SQL Server)