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 – Linux
Inom ramen för en tillgänglighetsgrupp (AG) är den primära rollen och den sekundära rollen för tillgänglighetsrepliker vanligtvis utbytbara, i en process som kallas redundans. Det finns tre former av överväxling: automatisk överväxling (utan dataförlust), planerad manuell överväxling (utan dataförlust) och tvingad manuell överväxling (med möjlig dataförlust), som vanligtvis kallas tvingad överväxling. Automatiska och planerade manuella redundansväxlingar bevarar alla dina data. En tillgänglighetsgrupp gör en redundansväxling på nivån för tillgänglighetsreplika. En tillgänglighetsgrupp växlar över till en av sina sekundära repliker (det nuvarande målet för växling).
Bakgrundsinformation om failover finns i Failover och redundanslägen (Always On-tillgänglighetsgrupper).
Manuell felövergång
Använd klusterhanteringsverktygen för att skifta över en AG som hanteras av en extern klusteradministratör. Om en lösning till exempel använder Pacemaker för att hantera ett Linux-kluster använder du pcs för att utföra manuella redundansväxlingar på Red Hat Enterprise Linux (RHEL) eller Ubuntu. På SUSE Linux Enterprise Server (SLES) använder du crm.
Viktig
Under normala driftförhållanden bör du inte genomföra omkoppling med Transact-SQL eller hanteringsverktyg för SQL Server som SSMS eller PowerShell. När CLUSTER_TYPE = EXTERNALär det enda acceptabla värdet för FAILOVER_MODE är EXTERNAL. Med de här inställningarna körs alla manuella eller automatiska redundansåtgärder av den externa klusterhanteraren. Instruktioner för att framtvinga failover med potentiell dataförlust finns i Force failover.
Manuella steg för växling
För att utföra en failover måste den sekundära repliken som blir den primära repliken vara synkroniserad. Om en sekundär replik är asynkron ändra tillgänglighetsläget.
Redundansväxla manuellt i två steg.
Först, växla manuellt över genom att flytta AG-resurs från den klusternod som innehar resurserna till en ny nod.
Klustret utför en failover av resurser tillhörande tillgänglighetsgruppen och lägger till en platsbegränsning för resursen. Den här begränsningen konfigurerar resursen så att den körs på den nya noden. Ta bort den här begränsningen för att kunna växla över till ett reservsystem i framtiden.
För det andra, ta bort platsbegränsningen.
Steg 1. Utför en manuell överflyttning genom att flytta tillgänglighetsgruppens resurs
För att köra det lämpliga kommandot för din distribution och manuellt överflytta en resurs i en tillgänglighetsgrupp med namnet ag_cluster till klusternoden med namnet nodeName2:
RHEL/Ubuntu-exempel
sudo pcs resource move ag_cluster-master nodeName2 --master --lifetime=30SSLES-exempel
crm resource migrate ag_cluster nodeName2 --lifetime=30S
När du använder alternativet --lifetime är platsbegränsningen som skapades för att flytta resursen tillfällig till sin natur och är giltig i 30 sekunder i föregående exempel.
Den tillfälliga begränsningen rensas inte automatiskt och kan visas i begränsningslistan, men som ett villkor som har upphört att gälla. Begränsningar som upphört att gälla påverkar inte redundansbeteendet för pacemakerklustret. Om du inte använder alternativet --lifetime när du flyttar resursen bör du ta bort en platsbegränsning som läggs till automatiskt, vilket anges i följande avsnitt.
Steg 2. Ta bort platsbegränsningen
Under en manuell redundans lägger kommandot pcsmove eller crmmigrate till en platsbegränsning för resursen som ska placeras på den nya målnoden. Om du vill se den nya begränsningen kör du följande kommando när du har flyttat resursen manuellt:
RHEL/Ubuntu-exempel
sudo pcs constraint list --fullSLES-exempel
crm config showDet här är ett exempel på begränsningen som skapas på grund av en manuell övergång.
Enabled on: Node1 (score:INFINITY) (role: Master) (id:cli-prefer-ag_cluster-master)Anmärkning
Tillgänglighetsgruppens resursnamn i pacemakerkluster på Red Hat Enterprise Linux 8.x och Ubuntu 18.04 kan likna ag_cluster-clone eftersom nomenklaturen för resurser har utvecklats för att använda promotable clone.
RHEL/Ubuntu-exempel
I följande kommando är
cli-prefer-ag_cluster-masterID för villkoret som måste tas bort.sudo pcs constraint list --fullreturnerar detta ID.sudo pcs resource clear ag_cluster-masterEller
sudo pcs constraint remove cli-prefer-ag_cluster-masterDu kan också utföra både flytt och rensning av automatiskt genererade begränsningar på en enda rad enligt följande. I följande exempel används terminologin för -avbild enligt Red Hat Enterprise Linux 8.x.
sudo pcs resource move ag_cluster-clone --master nodeName2 && sleep 30 && sudo pcs resource clear ag_cluster-cloneSLES-exempel
I följande kommando är
cli-prefer-ms-ag_clusterID för villkoret.crm config showreturnerar detta ID.crm configure delete cli-prefer-ms-ag_cluster commit
Anmärkning
Automatisk redundans lägger inte till någon platsbegränsning, så ingen rensning krävs.
Mer information finns i:
- Red Hat – Hantera klusterresurser
- Pacemaker – Flytta resurser manuellt
- Administrationsguide för SLES# – hantera klusterresurser
Framtvinga övertagande
En tvingad redundansväxling är endast avsedd för haveriberedskap. I det här fallet kan du inte redundansväxla med klusterhanteringsverktyg eftersom det primära datacentret är nere. Om du tvingar överflyttning till en osynkroniserad sekundär replik kan vissa data gå förlorade. Tvinga endast omkoppling om du behöver omedelbart återställa tjänsten till tillgänglighetsgruppen och är beredd att riskera att förlora data.
Om du inte kan använda klusterhanteringsverktygen för att kommunicera med klustret (till exempel om klustret inte svarar på grund av en katastrofhändelse i det primära datacentret) kan du behöva tvinga övergång till redundansläge för att kringgå den externa klusterhanteraren. Den här proceduren rekommenderas inte för vanliga åtgärder eftersom den riskerar dataförlust. Använd den när klusterhanteringsverktygen inte kan köra redundansåtgärden. Funktionellt liknar den här proceduren utföra en tvingad manuell redundansväxling på en tillgänglighetsgrupp i Windows.
Den här processen för att tvinga failover är specifik för SQL Server på Linux.
Kontrollera att klustret inte längre hanterar AG-resursen.
Ange resursen till ohanterat läge på målklusternoden. Det här kommandot signalerar resursagenten att stoppa resursövervakning och hantering. Till exempel:
sudo pcs resource unmanage <resourceName>Om försöket att ställa in resursläget på ohanterat läge misslyckas tar du bort resursen. Till exempel:
sudo pcs resource delete <resourceName>Anmärkning
När du tar bort en resurs tas även alla associerade begränsningar bort.
På instansen av SQL Server som är värd för den sekundära repliken anger du sessionskontextvariabeln
external_cluster.EXECUTE sp_set_session_context @key = N'external_cluster', @value = N'yes';Växla över tillgänglighetsgruppen med Transact-SQL. I följande exempel, ersätt
<MyAg>med namnet på din AG. Anslut till instansen av SQL Server som är värd för den sekundära målrepliken och kör följande kommando:ALTER AVAILABILITY GROUP <MyAg> FORCE_FAILOVER_ALLOW_DATA_LOSS;Efter en tvingad redundansväxling får tillgänglighetsgruppen ett felfritt tillstånd innan du antingen startar om klusterresursövervakningen och hanteringen eller återskapar tillgänglighetsgruppens resurs. Granska nödvändiga uppgifter efter en tvingad failover.
Starta antingen om klusterresursövervakning och -hantering:
Starta om övervakning och hantering av klusterresurser genom att köra följande kommando:
sudo pcs resource manage <resourceName> sudo pcs resource cleanup <resourceName>Om du har tagit bort klusterresursen återskapar du den. Om du vill återskapa klusterresursen följer du anvisningarna i Skapa resurs för tillgänglighetsgrupp.
Viktig
Använd inte föregående steg för haveriberedskapstest eftersom de riskerar dataförlust. Ändra istället den asynkrona repliken till synkron, och instruktionerna för normal manuell omkoppling.
Övervakning och redundansutlösare på databasnivå
För CLUSTER_TYPE=EXTERNALskiljer sig redundansutlösarens semantik från WSFC. När tillgänglighetsgruppen är på en instans av SQL Server i en WSFC, leder en övergång från ONLINE-tillståndet för databasen till att tillgänglighetsgruppens hälsotillstånd rapporterar ett fel. Som svar utlöser klusterhanteraren en redundansåtgärd. I Linux kan SQL Server-instansen inte kommunicera med klustret. Övervakning av databasens hälsotillstånd utförs utanför. Om användaren valde att övervaka felövergång och utföra felövergång på databasnivå (genom att ange alternativet DB_FAILOVER=ON när AG skapades), kontrollerar klustret databastillståndet är ONLINE varje gång den kör en övervakningsåtgärd. Klustret frågar tillståndet i sys.databases. För alla tillstånd som skiljer sig från ONLINEutlöses en redundans automatiskt (om automatiska redundansvillkor uppfylls). Den faktiska tidpunkten för omkopplingen beror på övervakningsåtgärdens frekvens och det uppdaterade databastillståndet i sys.databases..
Automatisk redundans kräver minst en synkron replik.
Relaterat innehåll
- Konfigurera Red Hat Enterprise Linux-kluster för SQL Server-tillgänglighetsgruppklusterresurser
- Konfigurera SUSE Linux Enterprise Server-kluster för SQL Server-tillgänglighetsgruppklusterresurser
- Konfigurera Ubuntu-kluster för SQL Server-tillgänglighetsgruppklusterresurser
Bidra till SQL-dokumentation
Visste du att du kan redigera SQL-innehåll själv? Om du gör det hjälper du inte bara till att förbättra vår dokumentation, utan du får även kredit som deltagare på sidan.
Mer information finns i Redigera Microsoft Learn-dokumentation.