Dela via


Tillgänglighetsrepliken är frånkopplad i en AlwaysOn-tillgänglighetsgrupp

Gäller för: SQL Server

Introduktion

  • Principnamn: Anslutningstillstånd för tillgänglighetsreplik
  • Problem: Tillgänglighetsrepliken är frånkopplad
  • Kategori: Kritisk
  • Fasettering: Tillgänglighetsreplik

Beskrivning

Den här principen kontrollerar anslutningstillståndet mellan tillgänglighetsrepliker. Principen är i ett feltillstånd när anslutningstillståndet för tillgänglighetsrepliken är DISCONNECTED. Principen är annars i ett felfritt tillstånd.

Möjliga orsaker

Den sekundära repliken är inte ansluten till den primära repliken. Det anslutna tillståndet är DISCONNECTED. Det här problemet kan orsakas av något av följande:

Möjliga lösningar

Kontrollera databasspeglingens slutpunktskonfiguration för instanserna av den primära och sekundära repliken och uppdatera den felmatchade konfigurationen. Kontrollera också om porten står i konflikt och ändra i så fall portnumret.

Följande är möjliga lösningar på det här problemet:

Anslutningsporten kan vara i konflikt med ett annat program

Kör följande kommandon för att diagnostisera portproblem:

$server_name = "server_instance"  #replace with your SQL Server instance
sqlcmd -S $server_name -E -Q "SELECT type_desc, port FROM sys.tcp_endpoints WHERE type_desc = 'DATABASE_MIRRORING'; "

Föregående kommando returnerar det portnummer som du måste använda i följande kommando.

$port = "5022"
Get-NetTCPConnection -LocalPort $port
Get-Process -Id (Get-NetTCPConnection -LocalPort $port).OwningProcess | Select-Object Name, ProductVersion, Path, Id

Krypteringstypen eller algoritmen är felmatchad

Kör det här kommandot på båda servrarna och jämför krypteringen och se till att båda är samma.

$server_name = "server_instance"  #replace with your SQL Server instance
sqlcmd -S $server_name -E -Q "SELECT name, state_desc, encryption_algorithm_desc, protocol_desc, type_desc FROM sys.database_mirroring_endpoints"

Anslutningsslutpunkten har tagits bort eller har inte startats

Kör följande kommando om speglingsslutpunkten avslutas och startas.

$server_name = "server_instance"  #replace with your SQL Server instance
sqlcmd -S $server_name -E -Q "SELECT name, state_desc, encryption_algorithm_desc, protocol_desc, type_desc FROM sys.database_mirroring_endpoints"

Kör följande kommando om du misstänker att slutpunkten inte svarar på anslutningar eller inte körs.

$server_name = "server_instance"  #use your SQL Server instance here
$server_name = "hadr_endpoint"    #replace with your endpoint name
sqlcmd -S $server_name -E -Q "ALTER ENDPOINT hadr_endpoint STATE = stopped"
sqlcmd -S $server_name -E -Q "ALTER ENDPOINT hadr_endpoint STATE = started"

Varning

Om du kör kommandot med STATE = stopped stoppas slutpunkten och always on-trafikflödet avbryts tillfälligt.

Nätverksproblem eller anslutningsproblem, eller portar blockeras i brandväggen

Använd följande kommandon för att testa anslutningen i båda riktningarna från Node1 till Node2 och Node2 till Node1:

$computer = "remote_node"      # replace with node name in your environment
$port = "5022"                 # replace with the port from your database_mirroring_endpoints
Test-NetConnection -ComputerName $computer -Port $port

Kontot är inte en domänanvändare och kan inte ansluta till domänkontrollanten och till fjärrnoden

Följ dessa steg för att testa om tjänstkontot kan ansluta till fjärrnoden. Stegen förutsätter att du inte är inloggad med tjänstkontot.

  1. Välj Starta>Windows PowerShell> högerklicka på ikonen.

  2. Välj Mer>kör som annan användare>Använd ett annat konto.

  3. Ange namn och lösenord för tjänstkontot.

  4. När Windows PowerShell har öppnats skriver du följande kommando för att kontrollera att du har loggat in med tjänstkontot:

    whoami
    
  5. Sedan kan du testa anslutningen till fjärrnoden, som i följande exempel.

    $computer = "remote_node" # replace with node name in your environment
    $port = "5022"            # replace with the port from your database_mirroring_endpoints
    Test-NetConnection -ComputerName $computer -Port $port