Problembehandlung für die AlwaysOn-Verfügbarkeitsgruppenkonfiguration (SQL Server)Troubleshoot Always On Availability Groups Configuration (SQL Server)

GILT FÜR: JaSQL Server NeinAzure SQL-Datenbank NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: YesSQL Server NoAzure SQL Database NoAzure Synapse Analytics (SQL DW) NoParallel Data Warehouse

Dieses Thema enthält Informationen, um Sie beim Beheben typischer Probleme beim Konfigurieren von Serverinstanzen für Always On-VerfügbarkeitsgruppenAlways On availability groupszu unterstützen.This topic provides information to help you troubleshoot typical problems with configuring server instances for Always On-VerfügbarkeitsgruppenAlways On availability groups. Typische Konfigurationsprobleme: Always On-VerfügbarkeitsgruppenAlways On availability groups ist deaktiviert, Konten werden falsch konfiguriert, der Datenbankspiegelungs-Endpunkt ist nicht vorhanden, auf den Endpunkt kann nicht zugegriffen werden (SQL Server-Fehler 1418), Netzwerkzugriff ist nicht vorhanden und der Befehl zum Verknüpfen der Datenbank schlägt fehl (SQL Server-Fehler 35250).Typical configuration problems include Always On-VerfügbarkeitsgruppenAlways On availability groups is disabled, accounts are incorrectly configured, the database mirroring endpoint does not exist, the endpoint is inaccessible (SQL Server Error 1418), network access does not exist, and a join database command fails (SQL Server Error 35250).

Hinweis

Stellen Sie sicher, dass die Always On-VerfügbarkeitsgruppenAlways On availability groups -Voraussetzungen erfüllt sind.Ensure that you are meeting the Always On-VerfügbarkeitsgruppenAlways On availability groups prerequisites. Weitere Informationen finden Sie unter Voraussetzungen, Einschränkungen und Empfehlungen für AlwaysOn-Verfügbarkeitsgruppen (SQL Server)zu unterstützen.For more information, see Prerequisites, Restrictions, and Recommendations for Always On Availability Groups (SQL Server).

In diesem Thema:In This Topic:

SectionSection BESCHREIBUNGDescription
AlwaysOn-Verfügbarkeitsgruppen ist nicht aktiviertAlways On Availability Groups Is Not Enabled Wenn eine Instanz von SQL ServerSQL Server nicht für Always On-VerfügbarkeitsgruppenAlways On availability groupsaktiviert ist, wird von der Instanz die Verfügbarkeitsgruppenerstellung nicht unterstützt. Es können außerdem keine Verfügbarkeitsreplikate gehostet werden.If an instance of SQL ServerSQL Server is not enabled for Always On-VerfügbarkeitsgruppenAlways On availability groups, the instance does not support availability group creation and cannot host any availability replicas.
KontenAccounts Erläutert die Anforderungen für eine ordnungsgemäße Konfiguration der Konten, unter denen SQL ServerSQL Server ausgeführt wird.Discusses requirements for correctly configuring the accounts under which SQL ServerSQL Server is running.
EndpunkteEndpoints Erläutert, wie Probleme mit dem Datenbankspiegelungs-Endpunkt einer Serverinstanz diagnostiziert werden.Discusses how to diagnose issues with the database mirroring endpoint of a server instance.
SystemnameSystem name Fasst die Alternativen zum Angeben des Systemnamens einer Serverinstanz in einer Endpunkt-URL zusammen.Summarizes the alternatives for specifying the system name of a server instance in an endpoint URL.
NetzwerkzugriffNetwork access Dokumentiert die Anforderung, dass jeder Serverinstanz, die ein Verfügbarkeitsreplikat hostet, der Zugriff auf den Port aller anderen Serverinstanzen über TCP ermöglicht werden muss.Documents the requirement that each server instance that is hosting an availability replica must be able to access the port of each of the other server instances over TCP.
Endpunktzugriff (SQL Server-Fehler 1418)Endpoint Access (SQL Server Error 1418) Enthält Informationen zu dieser SQL ServerSQL Server -Fehlermeldung.Contains information about this SQL ServerSQL Server error message.
Fehler beim Verknüpfen der Datenbank (SQL Server-Fehler 35250)Join Database Fails (SQL Server Error 35250) Erläutert die möglichen Ursachen und die Lösung des Fehlers beim Verknüpfen von sekundären Datenbanken mit einer Verfügbarkeitsgruppe aufgrund einer inaktiven Verbindung mit dem primären Replikat.Discusses the possible causes and resolution of a failure to join secondary databases to an availability group because the connection to the primary replica is not active.
Schreibgeschütztes Routing funktioniert nicht ordnungsgemäßRead-Only Routing is Not Working Correctly
Verwandte AufgabenRelated Tasks Enthält eine Liste aufgabenbezogener Themen in der SQL Server 2019 (15.x)SQL Server 2019 (15.x) -Onlinedokumentation, die besonders relevant für die Problembehandlung an einer Verfügbarkeitsgruppenkonfiguration sind.Contains a list of task-oriented topics in SQL Server 2019 (15.x)SQL Server 2019 (15.x) Books Online that are particularly relevant to troubleshooting an availability group configuration.
Verwandte InhalteRelated Content Enthält eine Liste von relevanten Ressourcen außerhalb der SQL ServerSQL Server -Onlinedokumentation.Contains a list of relevant resources that are external to SQL ServerSQL Server Books Online.

AlwaysOn-Verfügbarkeitsgruppen ist nicht aktiviertAlways On Availability Groups Is Not Enabled

Die Funktion Always On-VerfügbarkeitsgruppenAlways On availability groups muss auf allen Instanzen von SQL Server 2019 (15.x)SQL Server 2019 (15.x)aktiviert werden.The Always On-VerfügbarkeitsgruppenAlways On availability groups feature must be enabled on each of the instances of SQL Server 2019 (15.x)SQL Server 2019 (15.x). Weitere Informationen finden Sie unter Aktivieren und Deaktivieren von Always On-Verfügbarkeitsgruppen (SQL Server).For more information, see Enable and Disable Always On Availability Groups (SQL Server).

KontenAccounts

Die Konten, unter denen SQL ServerSQL Server ausgeführt wird, müssen ordnungsgemäß konfiguriert sein.The accounts under which SQL ServerSQL Server is running must be correctly configured.

  1. Verfügen die Konten über die richtigen Berechtigungen?Do the accounts have the correct permissions?

    1. Falls die Partner unter demselben Domänenbenutzerkonto ausgeführt werden, sind die richtigen Benutzeranmeldenamen automatisch in beiden master -Datenbanken vorhanden.If the partners run as the same domain user account, the correct user logins exist automatically in both master databases. Dadurch wird die Sicherheitskonfiguration der Datenbank vereinfacht und wird somit empfohlen.This simplifies the security configuration the database and is recommended.

    2. Wenn zwei Serverinstanzen als unterschiedliche Konten ausgeführt werden, muss die Anmeldung für die Konten in master auf der Remoteserverinstanz erstellt werden, und dieser Anmeldung müssen CONNECT-Berechtigungen gewährt werden, damit eine Verbindung mit dem Datenbankspiegelungs-Endpunkt dieser Serverinstanz hergestellt werden kann.If two server instances run as different accounts, the login each account must be created in master on the remote server instance, and that login must be granted CONNECT permissions to connect to the database mirroring endpoint of that server instance. Weitere Informationen finden Sie unter Einrichten von Anmeldekonten für die Datenbankspiegelung oder Always On-Verfügbarkeitsgruppen (SQL Server).For more information, seeSet Up Login Accounts for Database Mirroring or Always On Availability Groups (SQL Server).

  2. Wenn SQL ServerSQL Server als integriertes Konto, z. B. Lokales System, Lokaler Dienst oder Netzwerkdienst, oder als Nicht-Domänenkonto ausgeführt wird, müssen Sie Zertifikate zur Endpunktauthentifizierung verwenden.If SQL ServerSQL Server is running as a built-in account, such as Local System, Local Service, or Network Service, or a nondomain account, you must use certificates for endpoint authentication. Wenn die Dienstkonten Domänenkonten in derselben Domäne verwenden, können Sie CONNECT-Zugriff für jedes Dienstkonto an allen Replikatspeicherorten gewähren oder Zertifikate verwenden.If your service accounts are using domain accounts in the same domain, you can choose to grant CONNECT access for each service account on all the replica locations or you can use certificates. Weitere Informationen finden Sie unter Verwenden von Zertifikaten für einen Datenbankspiegelungs-Endpunkt (Transact-SQL).For more information, seeUse Certificates for a Database Mirroring Endpoint (Transact-SQL).

EndpointsEndpoints

Endpunkte müssen ordnungsgemäß konfiguriert sein.Endpoints must be correctly configured.

  1. Stellen Sie sicher, dass jede Instanz von SQL ServerSQL Server , die ein Verfügbarkeitsreplikat hosten wird (jeder Replikatspeicherort) einen Datenbankspiegelungs-Endpunkt besitzt.Make sure that each instance of SQL ServerSQL Server that is going to host an availability replica (each replica location) has a database mirroring endpoint. Um festzustellen, ob auf einer bestimmten Serverinstanz bereits ein Datenbankspiegelungs-Endpunkt vorhanden ist, verwenden Sie die Katalogsicht sys.database_mirroring_endpoints .To determine whether a database mirroring endpoint exists on a given server instance, use the sys.database_mirroring_endpoints catalog view. Weitere Informationen finden Sie unter Create a Database Mirroring Endpoint for Windows Authentication (Transact-SQL) (Erstellen eines Endpunkts der Datenbankspiegelung für Windows-Authentifizierung (Transact-SQL)) oder Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (Transact-SQL) (Ermöglichen des Verwendens von Zertifikaten für ausgehende Verbindungen für einen Datenbankspiegelungs-Endpunkt (Transact-SQL)).For more information, see either Create a Database Mirroring Endpoint for Windows Authentication (Transact-SQL) or Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (Transact-SQL).

  2. Überprüfen Sie, ob die Portnummern richtig sind.Check that the port numbers are correct.

    Verwenden Sie die folgende Transact-SQLTransact-SQL -Anweisung, um den Port zu identifizieren, der derzeit dem Endpunkt der Datenbankspiegelung einer Serverinstanz zugeordnet ist:To identify the port currently associated with database mirroring endpoint of a server instance, use the following Transact-SQLTransact-SQL statement:

    SELECT type_desc, port FROM sys.tcp_endpoints;  
    GO  
    
  3. Bei Problemen mit der Einrichtung von Always On-VerfügbarkeitsgruppenAlways On availability groups , die schwer zu erklären sind, empfiehlt es sich, jede Serverinstanz zu prüfen, um zu ermitteln, ob von der Serverinstanz die richtigen Ports überwacht werden.For Always On-VerfügbarkeitsgruppenAlways On availability groups setup issues that are difficult to explain, we recommend that you inspect each server instance to determine whether it is listening on the correct ports.

  4. Stellen Sie sicher, dass die Endpunkte gestartet wurden (STATE=STARTED).Make sure that the endpoints are started (STATE=STARTED). Verwenden Sie auf jeder Serverinstanz folgende Transact-SQLTransact-SQL -Anweisung:On each server instance, use the following Transact-SQLTransact-SQL statement:

    SELECT state_desc FROM sys.database_mirroring_endpoints  
    

    Weitere Informationen zur state_desc-Spalte finden Sie unter database_mirroring_endpoints (Transact-SQL).For more information about the state_desc column, see sys.database_mirroring_endpoints (Transact-SQL).

    Verwenden Sie die folgende Transact-SQLTransact-SQL -Anweisung, um einen Endpunkt zu starten:To start an endpoint, use the following Transact-SQLTransact-SQL statement:

    ALTER ENDPOINT Endpoint_Mirroring   
    STATE = STARTED   
    AS TCP (LISTENER_PORT = <port_number>)  
    FOR database_mirroring (ROLE = ALL);  
    GO  
    

    Weitere Informationen finden Sie unter ALTER ENDPOINT (Transact-SQL).For more information, see ALTER ENDPOINT (Transact-SQL).

  5. Stellen Sie sicher, dass der Anmeldename auf dem anderen Server über CONNECT-Berechtigungen verfügt.Make sure that the login from the other server has CONNECT permission. Führen Sie auf jeder Serverinstanz die folgende Transact-SQLTransact-SQL -Anweisung aus, um zu ermitteln, wer über CONNECT-Berechtigungen für einen Endpunkt verfügt:To determine who has CONNECT permission for an endpoint, on each server instance use the following Transact-SQLTransact-SQL statement:

    SELECT 'Metadata Check';  
    SELECT EP.name, SP.STATE,   
       CONVERT(nvarchar(38), suser_name(SP.grantor_principal_id))   
          AS GRANTOR,   
       SP.TYPE AS PERMISSION,  
       CONVERT(nvarchar(46),suser_name(SP.grantee_principal_id))   
          AS GRANTEE   
       FROM sys.server_permissions SP , sys.endpoints EP  
       WHERE SP.major_id = EP.endpoint_id  
       ORDER BY Permission,grantor, grantee;   
    GO  
    
    

System NameSystem Name

Für den Systemnamen einer Serverinstanz in einer Endpunkt-URL können Sie jeden beliebigen Namen verwenden, der das System eindeutig bezeichnet.For the system name of a server instance in an endpoint URL, you can use any name that unambiguously identifies the system. Die Serveradresse kann ein Systemname sein (wenn sich die Systeme in derselben Domäne befinden), ein vollqualifizierter Domänenname oder eine IP-Adresse (vorzugsweise eine statische IP-Adresse).The server address can be a system name (if the systems are in the same domain), a fully qualified domain name, or an IP address (preferably, a static IP address). Bei Verwendung des vollqualifizierten Domänennamens ist eine problemfreie Funktionsweise sichergestellt.Using the fully qualified domain name is guaranteed to work. Weitere Informationen finden Sie unter Angeben der Endpunkt-URL beim Hinzufügen oder Ändern eines Verfügbarkeitsreplikats (SQL Server)zu unterstützen.For more information, see Specify the Endpoint URL When Adding or Modifying an Availability Replica (SQL Server).

Network AccessNetwork Access

Jeder Serverinstanz, die ein Verfügbarkeitsreplikat hostet, muss der Zugriff auf den Port aller anderen Serverinstanzen über TCP ermöglicht werden.Each server instance that is hosting an availability replica must be able to access the port of each of the other server instance over TCP. Dies ist insbesondere von Bedeutung, wenn sich die Serverinstanzen in unterschiedlichen Domänen befinden, die sich nicht vertrauen (nicht vertrauenswürdige Domänen).This is especially important if the server instances are in different domains that do not trust each other (untrusted domains).

Endpunktzugriff (SQL Server-Fehler 1418)Endpoint Access (SQL Server Error 1418)

In dieser Meldung in SQL ServerSQL Server wird angegeben, dass die in der Endpunkt-URL angegebene Servernetzwerkadresse nicht erreicht werden kann oder nicht vorhanden ist. Es wird vorgeschlagen, den Namen der Netzwerkadresse zu überprüfen und den Befehl erneut auszugeben.This SQL ServerSQL Server message indicates that the server network address specified in the endpoint URL cannot be reached or does not exist, and it suggests that you verify the network address name and reissue the command.

Fehler beim Verknüpfen der Datenbank (SQL Server-Fehler 35250)Join Database Fails (SQL Server Error 35250)

Dieser Abschnitt erläutert die möglichen Ursachen und die Lösung des Fehlers beim Verknüpfen von sekundären Datenbanken mit einer Verfügbarkeitsgruppe aufgrund einer inaktiven Verbindung mit dem primären Replikat.This section discusses the possible causes and resolution of a failure to join secondary databases to the availability group because the connection to the primary replica is not active.

Lösung:Resolution:

  1. Überprüfen Sie die Firewalleinstellung, um zu ermitteln, ob die Endpunktportkommunikation zwischen den Serverinstanzen, auf denen das primäre Replikat gehostet wird, und dem sekundären Replikat (standardmäßig Port 5022) möglich ist.Check the firewall setting to see if whether allows the endpoint port communication between the server instances that host primary replica and the secondary replica (port 5022 by default).

  2. Überprüfen Sie, ob das Netzwerkdienstkonto über Verbindungsberechtigung für den Endpunkt verfügt.Check whether the network service account has connect permission to the endpoint.

Schreibgeschütztes Routing funktioniert nicht ordnungsgemäßRead-Only Routing is Not Working Correctly

Überprüfen Sie die folgenden Konfigurationswerteinstellungen und korrigieren Sie sie gegebenenfalls.Verify the following configuration values settings and correct them if necessary.

Am...On... ActionAction KommentareComments LinkLink
KontrollkästchenCheckbox dem aktuellen primären ReplikatCurrent primary replica Stellen Sie sicher, dass der Listener der Verfügbarkeitsgruppe online ist.Ensure that the availability group listener is online. So überprüfen Sie, ob der Listener online ist:To verify whether the listener is online:

SELECT * FROM sys.dm_tcp_listener_states;

So starten Sie einen Offlinelistener neu:To restart an offline listener:

ALTER AVAILABILITY GROUP myAG RESTART LISTENER 'myAG_Listener';
sys.dm_tcp_listener_states (Transact-SQL)sys.dm_tcp_listener_states (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)ALTER AVAILABILITY GROUP (Transact-SQL)
KontrollkästchenCheckbox dem aktuellen primären ReplikatCurrent primary replica Stellen Sie sicher, dass READ_ONLY_ROUTING_LIST nur Serverinstanzen enthält, die ein lesbares sekundäres Replikat hosten.Ensure that the READ_ONLY_ROUTING_LIST contains only server instances that are hosting a readable secondary replica. So identifizieren Sie lesbare sekundäre Replikate: sys.availability_replicas (Spalteecondary_role_allow_connections_desc )To identify readable secondary replicas: sys.availability_replicas (secondary_role_allow_connections_desc column)

So zeigen Sie eine schreibgeschützte Routingliste an: sys.availability_read_only_routing_listsTo view a read-only routing list: sys.availability_read_only_routing_lists

So ändern Sie eine schreibgeschützte Routingliste: ALTER AVAILABILITY GROUPTo change a read-only routing list: ALTER AVAILABILITY GROUP
sys.availability_replicas (Transact-SQL)sys.availability_replicas (Transact-SQL)

sys.availability_read_only_routing_lists (Transact-SQL)sys.availability_read_only_routing_lists (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)ALTER AVAILABILITY GROUP (Transact-SQL)
KontrollkästchenCheckbox jedem Replikat in read_only_routing_listEvery replica in the read_only_routing_list Stellen Sie sicher, dass die Windows-Firewall den Port READ_ONLY_ROUTING_URL nicht blockiert.Ensure that the Windows firewall is not blocking the READ_ONLY_ROUTING_URL port. - Konfigurieren einer Windows-Firewall für Datenbank-Engine-ZugriffConfigure a Windows Firewall for Database Engine Access
KontrollkästchenCheckbox jedem Replikat in read_only_routing_listEvery replica in the read_only_routing_list Überprüfen Sie in SQL ServerSQL Server Configuration Manager die folgenden Aspekte:In SQL ServerSQL Server Configuration Manager, verify that:

SQL Server-Remoteverbindung ist aktiviert.SQL Server remote connectivity is enabled.

TCP/IP ist aktiviert.TCP/IP is enabled.

Die IP-Adressen sind ordnungsgemäß konfiguriert.The IP addresses are configured correctly.
- Anzeigen oder Ändern von Servereigenschaften (SQL Server)View or Change Server Properties (SQL Server)

Konfigurieren eines Servers zur Überwachung eines bestimmten TCP-Ports (SQL Server-Konfigurations-Manager)Configure a Server to Listen on a Specific TCP Port (SQL Server Configuration Manager)
KontrollkästchenCheckbox jedem Replikat in read_only_routing_listEvery replica in the read_only_routing_list Stellen Sie sicher, dass die READ_ONLY_ROUTING_URL (TCP://Systemadresse:Port) den richtigen vollqualifizierten Domänennamen (FQDN) und die richtige Portnummer enthält.Ensure that the READ_ONLY_ROUTING_URL (TCP://system-address:port) contains the correct fully-qualified domain name (FQDN) and port number. - Berechnen von „read_only_routing_url“ für AlwaysOnCalculating read_only_routing_url for Always On

sys.availability_replicas (Transact-SQL)sys.availability_replicas (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)ALTER AVAILABILITY GROUP (Transact-SQL)
KontrollkästchenCheckbox ClientsystemClient system Überprüfen Sie, ob der Clienttreiber schreibgeschütztes Routing unterstützt.Verify that the client driver supports read-only routing. - AlwaysOn-Clientkonnektivität (SQL Server)Always On Client Connectivity (SQL Server)

Weitere InformationenSee Also

Transportsicherheit für Datenbankspiegelung und Always On-Verfügbarkeitsgruppen (SQL Server) Transport Security for Database Mirroring and Always On Availability Groups (SQL Server)
Client-Netzwerkkonfiguration Client Network Configuration
Voraussetzungen, Einschränkungen und Empfehlungen für Always On-Verfügbarkeitsgruppen (SQL Server)Prerequisites, Restrictions, and Recommendations for Always On Availability Groups (SQL Server)