Dela via


Felsöka problem med SQL Server AlwaysOn

Den här artikeln hjälper dig att lösa det vanliga problemet med AlwaysOn-konfiguration på SQL Server.

Kommentar

En guidad genomgång av den här artikeln finns i Felsöka SQL Server Always On-problem.

Ursprunglig produktversion: SQL Server 2012 Enterprise, SQL Server 2014 Enterprise, SQL Server 2016 Enterprise
Ursprungligt KB-nummer: 10179

Viktiga meddelanden

Jag behöver tips om hur du konfigurerar AlwaysOn-tillgänglighetsgrupper

Om du letar efter dokumentation om hur du konfigurerar AlwaysOn-konfiguration kan du läsa följande dokument:

Komma igång med AlwaysOn-tillgänglighetsgrupper (SQL Server) – Dokumentet innehåller svar på många frågor som du kan ha om tillgänglighetsgrupper och konfiguration. Genom att följa alla steg i den här artikeln och granska krav, begränsningar och rekommendationer för AlwaysOn-tillgänglighetsgrupper (SQL Server) kan du förhindra många problem som du kan stöta på när du konfigurerar och underhåller tillgänglighetsgrupper i din miljö.

Ytterligare resurser

Om den här informationen inte är användbar kan du läsa Mer information om AlwaysOn-tillgänglighetsgrupper.

Jag har problem med att konfigurera AlwaysOn-tillgänglighetsgrupper

Vanliga konfigurationsproblem är att AlwaysOn-tillgänglighetsgrupper är inaktiverade, konton är felaktigt konfigurerade, databasspeglingsslutpunkten inte finns, slutpunkten är otillgänglig (SQL Server-fel 1418), nätverksåtkomsten finns inte och ett kopplingsdatabaskommando misslyckas (SQL Server-fel 35250). Läs följande dokument om du vill ha hjälp med att felsöka dessa problem:

Felsöka konfiguration av AlwaysOn-tillgänglighetsgrupper (SQL Server)

Ytterligare länk: Åtgärda: Fel 41009 när du försöker skapa flera tillgänglighetsgrupper

Om problemet kvarstår kan du läsa Mer information om AlwaysOn-tillgänglighetsgrupper.

Jag har problem med lyssnarkonfiguration (19471, 19476 och andra fel)

Ett av de vanligaste konfigurationsproblemen som kunder stöter på är skapande av tillgänglighetsgrupplyssnare. Felen liknar följande:

  • Msg 19471, Level 16, State 0, Line 2The WSFC cluster could not bring the Network Name resource with DNS name '' online. DNS-namnet kan ha tagits eller har en konflikt med befintliga namntjänster, eller så kanske WSFC-klustertjänsten inte körs eller så kan det vara otillgängligt. Använd ett annat DNS-namn för att lösa namnkonflikter eller kontrollera WSFC-klusterloggen för mer information.

  • Msg 19476, Level 16, State 4, Line 2Försöket att skapa nätverksnamnet och IP-adressen för lyssnaren misslyckades. WSFC-tjänsten kanske inte körs eller kan vara otillgänglig i sitt aktuella tillstånd, eller så kan värdena för nätverksnamnet och IP-adressen vara felaktiga. Kontrollera tillståndet för WSFC-klustret och verifiera nätverksnamnet och IP-adressen med nätverksadministratören.

Merparten av tiden beror skapandefelet på lyssnaren som resulterade i tidigare meddelanden på grund av bristande behörigheter för klusternamnsobjektet (CNO) i Active Directory för att skapa och läsa lyssnardatorobjektet. Om du vill felsöka det här problemet kan du läsa följande artiklar:

Om problemet kvarstår kan du läsa Mer information om AlwaysOn-tillgänglighetsgrupper.

Automatisk redundans fungerar inte som förväntat

Om du märker att den automatiska redundansväxlingen inte fungerar som förväntat under testning eller i produktion kan du läsa: Felsöka automatiska redundansproblem i SQL Server 2012 AlwaysOn-miljöer.

Felaktig konfiguration av Maximalt antal fel under den angivna perioden är en av de främsta orsakerna till att primärt inte automatiskt redväxlar över till den sekundära. Standardvärdet för den här inställningen är N-1, där N är antalet repliker. Mer information finns i Gränsen för maximala fel i redundanskluster (grupp).

Om problemet kvarstår kan du läsa Mer information om AlwaysOn-tillgänglighetsgrupper.

Jag har problem med att ansluta till AlwaysOn-tillgänglighetsgrupper

När du har konfigurerat tillgänglighetsgruppens lyssnare för en AlwaysOn-tillgänglighetsgrupp i SQL Server 2012 kanske du inte kan pinga lyssnaren eller ansluta till den från ett program. Du kan få ett fel som liknar följande:

Sqlcmd: Fel: Microsoft SQL Native Client : Tidsgränsen för inloggning har upphört att gälla.

Om du vill felsöka detta och liknande fel läser du följande:

Mer informationslänkar:

Om problemet kvarstår kan du läsa Mer information om AlwaysOn-tillgänglighetsgrupper.

Jag har problem med att konfigurera AlwaysOn-tillgänglighetsgrupper i min virtuella Azure-dator (IaaS)

  1. Många problem som rör Always On uppstår på grund av felaktig konfiguration av lyssnaren. Om du har anslutningsproblem med lyssnaren

    1. Se till att du läser alla begränsningar för ILB-lyssnaren och följer alla steg som beskrivs i följande artikel med särskild uppmärksamhet på beroendekonfiguration, IP-adress och olika andra parametrar i PowerShell-skriptet.

    2. Om du är osäker kanske du vill ta bort och återskapa lyssnaren enligt ovanstående dokument.

  2. Om du nyligen har flyttat den virtuella datorn till en annan tjänst eller om IP-adresserna har ändrats måste du uppdatera värdet för IP-adressresursen för att återspegla den nya adressen och du måste återskapa den lastbalanserade slutpunkten för tillgänglighetsgruppen. Du kan uppdatera IP-adressen med hjälp av Get kommandona eller Set enligt följande:

    Get-ClusterResource "IPResourceName" | Set-ClusterParameter -name Address -value "w.x.y.z"
    

Rekommenderade dokument:

Om problemet kvarstår kan du läsa Mer information om AlwaysOn-tillgänglighetsgrupper.

Det tar lång tid att redundansväxlar från primär till sekundär eller vice versa

Efter en automatisk redundansväxling eller en planerad manuell redundansväxling utan dataförlust i en tillgänglighetsgrupp kan det hända att redundanstiden överskrider ditt mål för återställningstid (RTO). Information om hur du felsöker orsaker och potentiella lösningar finns i Felsöka: Tillgänglighetsgruppen har överskridit RTO.

Om problemet kvarstår kan du läsa Mer information om AlwaysOn-tillgänglighetsgrupper.

Ändringar på den primära repliken återspeglas antingen inte i eller är långsamma att replikera till den sekundära repliken

Du kanske märker att ändringar på den primära repliken inte sprids till sekundärt i tid. Prova följande för att felsöka och lösa dessa problem:

Om problemet kvarstår kan du läsa Mer information om AlwaysOn-tillgänglighetsgrupper.

Så här hanterar du storleken på transaktionsloggen för mina tillgänglighetsgruppsdatabaser

Du kan minska storleken på transaktionsloggen genom att konfigurera regelbundna säkerhetskopior på antingen primära eller sekundära servrar.

Mer information finns i följande avsnitt:

Om den här informationen inte är användbar kan du läsa Mer information om AlwaysOn-tillgänglighetsgrupper.

Primära eller sekundära servrar slås i matchningstillstånd eller så uppstår oväntade redundansväxlingar

Om problemet kvarstår kan du läsa Mer information om AlwaysOn-tillgänglighetsgrupper.

Det går inte att ansluta resurser

Kontrollera om det tar lång tid att återställa databaserna genom att granska meddelandena i SQL ErrorLog.

Om problemet kvarstår kan du läsa Mer information om AlwaysOn-tillgänglighetsgrupper.

Vanliga frågor och svar

  1. Går det att ha två lyssnare för en tillgänglighetsgrupp?

    Ja, du kan konfigurera flera lyssnare för samma tillgänglighetsgrupp. Se Skapa flera lyssnare för samma tillgänglighetsgrupp (Goden Yao).

  2. Är det möjligt att ha ett separat NIC-kort för alltid vid trafik och klientanslutning?

    Ja, du kan ha ett dedikerat nätverkskort för AlwaysOn-trafik. Se Konfigurera tillgänglighetsgrupp för att kommunicera i ett dedikerat nätverk.

  3. Vilka utgåvor stöder AlwaysOn-redundansklusterinstanser?

    Det här avsnittet i SQL Server Books Online innehåller mer information: Utgåvor och funktioner som stöds för SQL Server 2016.

  4. Hur återställs du om det uppstår ett fel på alla noder i klustret?

    Se WSFC-haveriberedskap via forcerat kvorum (SQL Server).

  5. Var hittar jag information om stöd för distribuerade transaktioner i tillgänglighetsgruppens konfigurationer?

    Se Transaktioner – tillgänglighetsgrupper och databasspegling.

  6. Hur uppdaterar jag AlwaysOn-konfigurationer?

    Se Uppgradera AlwaysOn-tillgänglighetsgruppreplikinstanser.

  7. Hur lägger du till en TDE-aktiverad databas (transparent datakryptering) i tillgänglighetsgruppens konfiguration?

    Information om hur du lägger till TDE-aktiverad databas i tillgänglighetsgruppen finns i Konfigurera AlwaysOn för en TDE-databas.

  8. Hur konfigurerar du aviseringar för att kontrollera om den sekundära släpar efter den primära?

    Du kan använda följande skript:

    SELECT ag.name AS ag_name, ar.replica_server_name AS ag_replica_server,
    dr_state.database_id AS database_id,
    is_ag_replica_local = CASE
        WHEN ar_state.is_local = 1 THEN N'LOCAL'
        ELSE 'REMOTE'
        END,
    ag_replica_role = CASE
        WHEN ar_state.role_desc IS NULL THEN N'DISCONNECTED'
        ELSE ar_state.role_desc
        END,
    dr_state.last_hardened_lsn, dr_state.last_hardened_time,
    datediff(s,last_hardened_time, getdate()) AS 'seconds behind primary'
    FROM (( sys.availability_groups AS ag
    JOIN sys.availability_replicas AS ar
        ON ag.group_id = ar.group_id)
    JOIN sys.dm_hadr_availability_replica_states AS ar_state
        ON ar.replica_id = ar_state.replica_id)
    JOIN sys.dm_hadr_database_replica_states dr_state
        ON ag.group_id = dr_state.group_id AND dr_state.replica_id = ar_state.replica_id
    
  9. Hur aviseras du om databasens tillstånd är annat än synkroniserat?

    Du kan använda följande skript:

    SELECT ag.name AS ag_name, ar.replica_server_name AS ag_replica_server,
    dr_state.database_id AS database_id,
    is_ag_replica_local = CASE
        WHEN ar_state.is_local = 1 THEN N'LOCAL'
        ELSE 'REMOTE'
        END,
    ag_replica_role = CASE
        WHEN ar_state.role_desc IS NULL THEN N'DISCONNECTED'
        ELSE ar_state.role_desc
        END,
    ar_state.connected_state_desc, ar.availability_mode_desc, dr_state.synchronization_state_desc
    FROM (( sys.availability_groups AS ag
    JOIN sys.availability_replicas AS ar
        ON ag.group_id = ar.group_id )
    JOIN sys.dm_hadr_availability_replica_states AS ar_state
        ON ar.replica_id = ar_state.replica_id)
    JOIN sys.dm_hadr_database_replica_states dr_state
        ON ag.group_id = dr_state.group_id AND dr_state.replica_id = ar_state.replica_id
    

    Du kan också granska följande länkar för ytterligare metoder för att övervaka AlwaysOn-grupper:

Mer information om AlwaysOn-tillgänglighetsgrupper