Condividi tramite


Risolvere i problemi di configurazione dei gruppi di disponibilità AlwaysOn (SQL Server)

In questo argomento vengono fornite informazioni utili per risolvere i problemi tipici relativi alla configurazione delle istanze del server per i gruppi di disponibilità AlwaysOn. I problemi di configurazione tipici includono i gruppi di disponibilità AlwaysOn disabilitati, gli account non sono configurati correttamente, l'endpoint del mirroring del database non esiste, l'endpoint è inaccessibile (errore di SQL Server 1418), l'accesso alla rete non esiste e un comando di join del database ha esito negativo (errore di SQL Server 35250).

Annotazioni

Assicurarsi di soddisfare i prerequisiti dei gruppi di disponibilità AlwaysOn. Per altre informazioni, vedere Prerequisiti, restrizioni e consigli per i gruppi di disponibilità AlwaysOn (SQL Server).

In questo argomento:

Sezione Descrizione
I gruppi di disponibilità AlwaysOn non sono abilitati Se un'istanza di SQL Server non è abilitata per i gruppi di disponibilità AlwaysOn, l'istanza non supporta la creazione del gruppo di disponibilità e non può ospitare repliche di disponibilità.
Account Vengono illustrati i requisiti per la configurazione corretta degli account in cui è in esecuzione SQL Server.
Endponti Viene illustrato come diagnosticare i problemi relativi all'endpoint del mirroring del database di un'istanza del server.
Nome del sistema Riepiloga le alternative per specificare il nome di sistema di un'istanza del server in un URL dell'endpoint.
Accesso alla rete Documenta il requisito che ogni istanza del server che ospita una replica di disponibilità deve essere in grado di accedere alla porta di ognuna delle altre istanze del server tramite TCP.
Accesso all'endpoint (errore di SQL Server 1418) Contiene informazioni su questo messaggio di errore di SQL Server.
Errore di join del database (errore di SQL Server 35250) Si discute delle possibili cause e delle soluzioni per il mancato collegamento dei database secondari a un gruppo di disponibilità, causato dalla disattivazione della connessione alla replica primaria.
Read-Only routing non funziona correttamente
Attività correlate Contiene un elenco di argomenti orientati alle attività nella documentazione online di SQL Server 2014 particolarmente rilevanti per la risoluzione dei problemi relativi a una configurazione di un gruppo di disponibilità.
Contenuto correlato Contiene un elenco di risorse pertinenti esterne alla documentazione online di SQL Server.

I gruppi di disponibilità AlwaysOn non sono abilitati

La funzionalità Gruppi di disponibilità AlwaysOn deve essere abilitata in ognuna delle istanze di SQL Server 2014. Per altre informazioni, vedere Abilitare e disabilitare i gruppi di disponibilità AlwaysOn (SQL Server).

Gli account

Gli account in cui è in esecuzione SQL Server devono essere configurati correttamente.

  1. Gli account dispongono delle autorizzazioni corrette?

    1. Se i partner utilizzano lo stesso account utente di dominio, gli accessi utente corretti esistono automaticamente in entrambi i database master. In questo modo si semplifica la configurazione di sicurezza del database ed è consigliabile.

    2. Se due istanze del server vengono eseguite come account diversi, il login di ciascun account deve essere creato in master sull'istanza del server remoto, e a tale login devono essere concesse le autorizzazioni CONNECT per connettersi all'endpoint del mirroring del database di quell'istanza del server. Per altre informazioni, vedereConfigurare gli account di accesso per il mirroring del database o i gruppi di disponibilità AlwaysOn (SQL Server).

  2. Se SQL Server è in esecuzione come account predefinito, ad esempio sistema locale, servizio locale o servizio di rete o un account non di dominio, è necessario usare i certificati per l'autenticazione dell'endpoint. Se gli account del servizio usano account di dominio nello stesso dominio, è possibile scegliere di concedere l'accesso CONNECT per ogni account del servizio in tutte le posizioni di replica oppure è possibile usare i certificati. Per altre informazioni, consultare Usare i certificati per un endpoint del mirroring del database (Transact-SQL).

Endpointi

Gli endpoint devono essere configurati correttamente.

  1. Verificare che ogni istanza di SQL Server destinata a ospitare una replica di disponibilità (ogni posizione di replica) disponga di un endpoint per il mirroring del database. Per determinare se esiste un endpoint del mirroring del database in una determinata istanza del server, utilizzare la vista del catalogo sys.database_mirroring_endpoints. Per altre informazioni, vedere Creare un endpoint del mirroring del database per l'autenticazione di Windows (Transact-SQL) o Consentire a un endpoint del mirroring del database di usare certificati per le connessioni in uscita (Transact-SQL).

  2. Verificare che i numeri di porta siano corretti.

    Per individuare la porta attualmente associata all'endpoint di mirroring del database per un'istanza del server, usare l'istruzione Transact-SQL seguente:

    SELECT type_desc, port FROM sys.tcp_endpoints;
    GO
    
  3. Per i problemi di configurazione dei gruppi di disponibilità AlwaysOn difficili da spiegare, è consigliabile esaminare ogni istanza del server per determinare se è in ascolto sulle porte corrette. Per informazioni sulla verifica della disponibilità delle porte, vedere MSSQLSERVER_1418.

  4. Verificare che gli endpoint siano avviati (STATE=STARTED). In ogni istanza del server usare l'istruzione Transact-SQL seguente:

    SELECT state_desc FROM sys.database_mirroring_endpoints
    

    Per altre informazioni sulla colonna state_desc , vedere sys.database_mirroring_endpoints (Transact-SQL).

    Per avviare un endpoint, usare l'istruzione Transact-SQL seguente:

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

    Per altre informazioni, vedere ALTER ENDPOINT (Transact-SQL).

  5. Assicurarsi che l'account di accesso dall'altro server disponga dell'autorizzazione CONNECT. Per determinare chi dispone dell'autorizzazione CONNECT per un endpoint, in ogni istanza del server usare l'istruzione Transact-SQL seguente:

    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
    
    

Nome sistema

Per il nome di sistema di un'istanza del server in un URL dell'endpoint, è possibile usare qualsiasi nome che identifichi in modo univoco il sistema. L'indirizzo del server può essere un nome di sistema (se i sistemi si trovano nello stesso dominio), un nome di dominio completo o un indirizzo IP (preferibilmente un indirizzo IP statico). L'uso del nome di dominio completamente qualificato garantisce il funzionamento. Per altre informazioni, vedere Specificare l'URL dell'endpoint quando si aggiunge o si modifica una replica di disponibilità (SQL Server).

Accesso alla rete

Ogni istanza del server che ospita una replica di disponibilità deve essere in grado di accedere alla porta di ogni altra istanza del server tramite TCP. Ciò è particolarmente importante se le istanze del server si trovano in domini diversi che non si considerano attendibili tra loro (domini non attendibili).

Accesso all'endpoint (errore di SQL Server 1418)

Questo messaggio di SQL Server indica che l'indirizzo di rete del server specificato nell'URL dell'endpoint non può essere raggiunto o non esiste e suggerisce di verificare il nome dell'indirizzo di rete e di eseguire nuovamente il comando. Per altre informazioni, vedere MSSQLSERVER_1418.

Errore di join del database (errore di SQL Server 35250)

In questa sezione vengono illustrate le possibili cause e la risoluzione di un errore di aggiunta di database secondari al gruppo di disponibilità perché la connessione alla replica primaria non è attiva.

Risoluzione:

  1. Controllare l'impostazione del firewall per verificare se consente la comunicazione della porta dell'endpoint tra le istanze del server che ospitano la replica primaria e la replica secondaria (porta 5022 per impostazione predefinita).

  2. Controllare se l'account del servizio di rete dispone dell'autorizzazione di connessione all'endpoint.

Read-Only routing non funziona correttamente

Verificare le impostazioni dei valori di configurazione seguenti e correggerle, se necessario.

Su... Azione Commenti Collegamento
Casella di controllo Replica primaria attuale Assicurarsi che l'ascoltatore del gruppo di disponibilità sia online. Per verificare se il listener è online:

SELECT * FROM sys.dm_tcp_listener_states;

Per riavviare un listener offline:

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

MODIFICA GRUPPO DI DISPONIBILITÀ (Transact-SQL)
Casella di controllo Replica primaria attuale Assicurarsi che il READ_ONLY_ROUTING_LIST contenga solo istanze del server che ospitano una replica secondaria leggibile. Per identificare le repliche secondarie leggibili: sys.availability_replicas (colonna "secondary_role_allow_connections_desc" )

Per visualizzare un elenco di routing di sola lettura: sys.availability_read_only_routing_lists

Per modificare un elenco di routing di sola lettura: ALTER AVAILABILITY GROUP
sys.availability_replicas (Transact-SQL)

sys.availability_read_only_routing_lists (Transact-SQL)

MODIFICA GRUPPO DI DISPONIBILITÀ (Transact-SQL)
Casella di controllo Ogni replica nella lista di instradamento in sola lettura Assicurarsi che Windows Firewall non blocchi la porta READ_ONLY_ROUTING_URL. - Configurazione di Windows Firewall per l'accesso al Motore di database
Casella di controllo Ogni replica nel read_only_routing_list In Gestione Configurazione SQL Server, verificare che:

La connettività remota di SQL Server è abilitata.

TCP/IP è abilitato.

Gli indirizzi IP sono configurati correttamente.
- Visualizzare o modificare le proprietà del server (SQL Server)

Configurazione di un server per l'attesa su una porta TCP specifica (Gestione configurazione SQL Server)
Casella di controllo Ogni replica nel "read_only_routing_list" Assicurarsi che il READ_ONLY_ROUTING_URL (TCP://system-address:port) contenga il nome di dominio completo (FQDN) corretto e il numero di porta. - Calcolo delle read_only_routing_url per AlwaysOn

sys.availability_replicas (Transact-SQL)

MODIFICA GRUPPO DI DISPONIBILITÀ (Transact-SQL)
Casella di controllo Sistema client Verificare che il driver client supporti il routing di sola lettura. - Connettività Client AlwaysOn (SQL Server)

Attività correlate

Contenuto correlato

Vedere anche

Protezione della sicurezza di trasporto per il mirroring del database e i gruppi di disponibilità AlwaysOn (SQL Server)Configurazione della rete clientPrerequisiti, restrizioni e consigli per i gruppi di disponibilità AlwaysOn (SQL Server)