Problembehandlung für die AlwaysOn-Verfügbarkeitsgruppenkonfiguration (SQL Server)

 

DIESES THEMA GILT FÜR:jaSQL Server (ab 2016)neinAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data Warehouse

Dieses Thema enthält Informationen, um Sie beim Beheben typischer Probleme beim Konfigurieren von Serverinstanzen für AlwaysOn-Verfügbarkeitsgruppen zu unterstützen. Typische Konfigurationsprobleme: AlwaysOn-Verfügbarkeitsgruppen 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).

System_CAPS_ICON_note.jpg Hinweis


Stellen Sie sicher, dass die AlwaysOn-Verfügbarkeitsgruppen-Voraussetzungen erfüllt sind. Weitere Informationen finden Sie unter Voraussetzungen, Einschränkungen und Empfehlungen für AlwaysOn-Verfügbarkeitsgruppen(SQL Server).

In diesem Thema:

AbschnittBeschreibung
AlwaysOn-Verfügbarkeitsgruppen ist nicht aktiviertWenn eine Instanz von SQL Server nicht für AlwaysOn-Verfügbarkeitsgruppen aktiviert ist, wird von der Instanz die Verfügbarkeitsgruppenerstellung nicht unterstützt. Es können außerdem keine Verfügbarkeitsreplikate gehostet werden.
KontenErläutert die Anforderungen für eine ordnungsgemäße Konfiguration der Konten, unter denen SQL Server ausgeführt wird.
EndpunkteErläutert, wie Probleme mit dem Datenbankspiegelungs-Endpunkt einer Serverinstanz diagnostiziert werden.
SystemnameFasst die Alternativen zum Angeben des Systemnamens einer Serverinstanz in einer Endpunkt-URL zusammen.
NetzwerkzugriffDokumentiert die Anforderung, dass jeder Serverinstanz, die ein Verfügbarkeitsreplikat hostet, der Zugriff auf den Port aller anderen Serverinstanzen über TCP ermöglicht werden muss.
Endpunktzugriff (SQL Server-Fehler 1418)Enthält Informationen zu dieser SQL Server-Fehlermeldung.
Fehler beim Verknüpfen der Datenbank (SQL Server-Fehler 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.
Schreibgeschütztes Routing funktioniert nicht ordnungsgemäß
Verwandte AufgabenEnthält eine Liste aufgabenbezogener Themen in der SQL Server 2016-Onlinedokumentation, die besonders relevant für die Problembehandlung an einer Verfügbarkeitsgruppenkonfiguration sind.
Verwandte InhalteEnthält eine Liste von relevanten Ressourcen außerhalb der SQL Server-Onlinedokumentation.

Die Funktion AlwaysOn-Verfügbarkeitsgruppen muss auf allen Instanzen von SQL Server 2016 aktiviert werden. Weitere Informationen finden Sie unter Aktivieren und Deaktivieren von AlwaysOn-Verfügbarkeitsgruppen (SQL Server).

Die Konten, unter denen SQL Server ausgeführt wird, müssen ordnungsgemäß konfiguriert sein.

  1. Verfügen die Konten über die richtigen Berechtigungen?

    1. Falls die Partner unter demselben Domänenbenutzerkonto ausgeführt werden, sind die richtigen Benutzeranmeldenamen automatisch in beiden master -Datenbanken vorhanden. Dadurch wird die Sicherheitskonfiguration der Datenbank vereinfacht und wird somit empfohlen.

    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. Weitere Informationen finden Sie unter Einrichten von Anmeldekonten für die Datenbankspiegelung oder AlwaysOn-Verfügbarkeitsgruppen (SQL Server).

  2. Wenn SQL 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. 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. Weitere Informationen finden Sie unter Verwenden von Zertifikaten für einen Datenbankspiegelungs-Endpunkt (Transact-SQL).

Endpunkte müssen ordnungsgemäß konfiguriert sein.

  1. Stellen Sie sicher, dass jede Instanz von SQL Server, die ein Verfügbarkeitsreplikat hosten wird (jeder Replikatspeicherort) einen Datenbankspiegelungs-Endpunkt besitzt. Um festzustellen, ob auf einer bestimmten Serverinstanz bereits ein Datenbankspiegelungs-Endpunkt vorhanden ist, verwenden Sie die Katalogsicht sys.database_mirroring_endpoints. Weitere Informationen finden Sie unter Erstellen eines Endpunkts der Datenbankspiegelung für Windows-Authentifizierung (Transact-SQL) oder Ermöglichen des Verwendens von Zertifikaten für ausgehende Verbindungen für einen Datenbankspiegelungs-Endpunkt (Transact-SQL).

  2. Überprüfen Sie, ob die Portnummern richtig sind.

    Verwenden Sie die folgende Transact-SQL -Anweisung, um den Port zu identifizieren, der derzeit dem Endpunkt der Datenbankspiegelung einer Serverinstanz zugeordnet ist:

    SELECT type_desc, port FROM sys.tcp_endpoints;  
    GO  
    
    
  3. Bei Problemen mit der Einrichtung von AlwaysOn-Verfügbarkeitsgruppen, 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. Informationen zum Überprüfen der Verfügbarkeit von Ports finden Sie unter MSSQLSERVER_1418.

  4. Stellen Sie sicher, dass die Endpunkte gestartet wurden (STATE=STARTED). Verwenden Sie auf jeder Serverinstanz folgende Transact-SQL-Anweisung:

    SELECT state_desc FROM sys.database_mirroring_endpoints  
    
    

    Weitere Informationen zur state_desc-Spalte finden Sie unter database_mirroring_endpoints (Transact-SQL).

    Verwenden Sie die folgende Transact-SQL-Anweisung, um einen Endpunkt zu starten:

    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).

  5. Stellen Sie sicher, dass der Anmeldename auf dem anderen Server über CONNECT-Berechtigungen verfügt. Führen Sie auf jeder Serverinstanz die folgende Transact-SQL -Anweisung aus, um zu ermitteln, wer über CONNECT-Berechtigungen für einen Endpunkt verfügt:

    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  
    
    
    

Für den Systemnamen einer Serverinstanz in einer Endpunkt-URL können Sie jeden beliebigen Namen verwenden, der das System eindeutig bezeichnet. 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). Bei Verwendung des vollqualifizierten Domänennamens ist eine problemfreie Funktionsweise sichergestellt. Weitere Informationen finden Sie unter Angeben der Endpunkt-URL beim Hinzufügen oder Ändern eines Verfügbarkeitsreplikats (SQL Server).

Jeder Serverinstanz, die ein Verfügbarkeitsreplikat hostet, muss der Zugriff auf den Port aller anderen Serverinstanzen über TCP ermöglicht werden. Dies ist insbesondere von Bedeutung, wenn sich die Serverinstanzen in unterschiedlichen Domänen befinden, die sich nicht vertrauen (nicht vertrauenswürdige Domänen).

In dieser Meldung in SQL 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. Weitere Informationen finden Sie unter MSSQLSERVER_1418.

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.

Lösung:

  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.

  2. Überprüfen Sie, ob das Netzwerkdienstkonto über Verbindungsberechtigung für den Endpunkt verfügt.

Überprüfen Sie die folgenden Konfigurationswerteinstellungen und korrigieren Sie sie gegebenenfalls.

Bei...AktionKommentareLink
Checkboxdem aktuellen primären ReplikatStellen Sie sicher, dass der Listener der Verfügbarkeitsgruppe online ist.So überprüfen Sie, ob der Listener online ist:

 SELECT * FROM sys.dm_tcp_listener_states;

 So starten Sie einen Offlinelistener neu:

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

 ALTER AVAILABILITY GROUP (Transact-SQL)
Checkboxdem aktuellen primären ReplikatStellen Sie sicher, dass READ_ONLY_ROUTING_LIST nur Serverinstanzen enthält, die ein lesbares sekundäres Replikat hosten.So identifizieren Sie lesbare sekundäre Replikate: sys.availability_replicas (Spalte econdary_role_allow_connections_desc)

 So zeigen Sie eine schreibgeschützte Routingliste an: sys.availability_read_only_routing_lists

 So ändern Sie eine schreibgeschützte Routingliste: ALTER AVAILABILITY GROUP
sys.availability_replicas (Transact-SQL)

 sys.availability_read_only_routing_lists (Transact-SQL)

 ALTER AVAILABILITY GROUP (Transact-SQL)
Checkboxjedem Replikat in read_only_routing_listStellen Sie sicher, dass die Windows-Firewall den Port READ_ONLY_ROUTING_URL nicht blockiert.Konfigurieren einer Windows-Firewall für Datenbankmodulzugriff
Checkboxjedem Replikat in read_only_routing_listÜberprüfen Sie in SQL Server Configuration Manager die folgenden Aspekte:

SQL Server-Remoteverbindung ist aktiviert.

TCP/IP ist aktiviert.

Die IP-Adressen sind ordnungsgemäß konfiguriert.
Anzeigen oder Ändern von Servereigenschaften (SQL Server)

 Konfigurieren eines Servers zur Überwachung eines bestimmten TCP-Ports (SQL Server-Konfigurations-Manager)
Checkboxjedem Replikat in read_only_routing_listStellen Sie sicher, dass die READ_ONLY_ROUTING_URL (TCP://Systemadresse:Port) den richtigen vollqualifizierten Domänennamen (FQDN) und die richtige Portnummer enthält.Berechnen von „read_only_routing_url“ für AlwaysOn

 sys.availability_replicas (Transact-SQL)

 ALTER AVAILABILITY GROUP (Transact-SQL)
CheckboxClientsystemÜberprüfen Sie, ob der Clienttreiber schreibgeschütztes Routing unterstützt.AlwaysOn-Clientkonnektivität (SQL Server)

Transportsicherheit für Datenbankspiegelung und AlwaysOn-Verfügbarkeitsgruppen (SQL Server)
Client-Netzwerkkonfiguration
Voraussetzungen, Einschränkungen und Empfehlungen für AlwaysOn-Verfügbarkeitsgruppen (SQL Server)

Community-Beiträge

HINZUFÜGEN
Anzeigen: