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

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

HinweisHinweis

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:

Abschnitt

Beschreibung

AlwaysOn-Verfügbarkeitsgruppen sind nicht aktiviert

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

Konten

Erläutert die Anforderungen für eine ordnungsgemäße Konfiguration der Konten, unter denen SQL Server ausgeführt wird.

Endpunkte

Erläutert, wie Probleme mit dem Datenbankspiegelungs-Endpunkt einer Serverinstanz diagnostiziert werden.

Systemname

Fasst die Alternativen zum Angeben des Systemnamens einer Serverinstanz in einer Endpunkt-URL zusammen.

Netzwerkzugriff

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.

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 Aufgaben

Enthält eine Liste aufgabenbezogener Themen in der SQL Server 2012-Onlinedokumentation, die besonders relevant für die Problembehandlung an einer Verfügbarkeitsgruppenkonfiguration sind.

Verwandte Inhalte

Enthält eine Liste von relevanten Ressourcen außerhalb der SQL Server-Onlinedokumentation.

AlwaysOn-Verfügbarkeitsgruppen sind nicht aktiviert

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

Konten

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

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Endpunkte

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 entweder 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 sys.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
    

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Systemname

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

Netzwerkzugriff

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

Endpunktzugriff (SQL Server-Fehler 1418)

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.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Fehler beim Verknüpfen der Datenbank (SQL Server-Fehler 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.

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.

Schreibgeschütztes Routing funktioniert nicht ordnungsgemäß

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

     

Bei...

Aktion

Kommentare

Link

Kontrollkästchen

dem aktuellen primären Replikat

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

Kontrollkästchen

dem aktuellen primären Replikat

Stellen 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 secondary_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)

Kontrollkästchen

jedem Replikat in read_only_routing_list

Stellen Sie sicher, dass die Windows-Firewall den Port READ_ONLY_ROUTING_URL nicht blockiert.

Konfigurieren einer Windows-Firewall für Datenbankmodulzugriff

Kontrollkästchen

jedem 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

Konfigurieren eines Servers zum Lauschen an einem bestimmten TCP-Port (SQL Server-Konfigurations-Manager)

Kontrollkästchen

jedem Replikat in read_only_routing_list

Stellen Sie sicher, dass READ_ONLY_ROUTING_URL (TCP://system-address:port) den richtigen vollqualifizierten Domänennamen (FQDN) und die Portnummer enthält.

Berechnen von read_only_routing_url für AlwaysOn

sys.availability_replicas (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)

Kontrollkästchen

Clientsystem

Überprüfen Sie, ob der Clienttreiber schreibgeschütztes Routing unterstützt.

AlwaysOn-Clientkonnektivität (SQL Server)

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wirdNach oben

Verwandte Aufgaben

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Verwandte Inhalte

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Siehe auch

Konzepte

Transportsicherheit für Datenbankspiegelung und AlwaysOn-Verfügbarkeitsgruppen (SQL Server)

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

Andere Ressourcen

Client-Netzwerkkonfiguration