Condividi tramite


Risolvere i problemi relativi alla configurazione di 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à di Always On. I problemi di configurazione tipici includono Always On i gruppi di disponibilità sono disabilitati, gli account sono configurati in modo non corretto, l'endpoint del mirroring non esiste, l'endpoint non è accessibile (errore SQL Server 1418), l'accesso alla rete non esiste e un comando del database di join ha esito negativo (errore SQL Server 35250).

Contenuto dell'argomento:

Sezione Descrizione
Funzionalità Gruppi di disponibilità AlwaysOn non abilitata Se un'istanza di SQL Server non è abilitata per Always On gruppi di disponibilità, l'istanza non supporta la creazione del gruppo di disponibilità e non può ospitare repliche di disponibilità.
Account Illustra i requisiti per la corretta configurazione degli account con cui viene eseguito SQL Server.
Endpoints Illustra come diagnosticare problemi relativi all'endpoint del mirroring del database di un'istanza del server.
Nome di sistema Riepiloga le alternative per la specifica del nome di sistema di un'istanza del server in un URL endpoint.
Accesso alla rete Documenta il requisito in base a cui ogni istanza del server che ospita una replica di disponibilità deve essere in grado di accedere alla porta di ciascuna altra istanza del server su TCP.
Accesso all'endpoint (errore di SQL Server 1418) Contiene informazioni su questo messaggio di errore di SQL Server.
Errore nella creazione del join del database (errore di SQL Server 35250) Illustra le possibili cause e la risoluzione di un errore nella creazione di join dei database secondari a un gruppo di disponibilità perché la connessione alla replica primaria non è attiva.
Il routing di sola lettura 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 alla configurazione di un gruppo di disponibilità.
Contenuto correlato Contiene un elenco di risorse rilevanti esterne alla documentazione online di SQL Server.

Funzionalità Gruppi di disponibilità AlwaysOn non abilitata

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

Account

È necessario configurare correttamente gli account usati per l'esecuzione di SQL Server.

  1. Autorizzazioni corrette per gli account

    1. Se i partner vengono eseguiti con lo stesso account utente di dominio, gli account di accesso corretti saranno disponibili automaticamente in ambedue i database master . Questa scelta semplifica la configurazione della sicurezza del database ed è quella consigliata.

    2. Se due istanze del server vengono eseguite con account diversi, è necessario creare l'accesso per ogni account nel database master nell'istanza del server remoto e a tale account di accesso è necessario concedere le autorizzazioni CONNECT per la connessione all'endpoint del mirroring del database di tale 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 utilizzano account di dominio nello stesso dominio, è possibile scegliere di concedere l'accesso CONNECT per ogni account del servizio su tutti i percorsi di replica oppure utilizzare certificati. Per altre informazioni, vedere Usare certificati per un endpoint del mirroring del database (Transact-SQL).

Endpoint

È necessario configurare correttamente gli endpoint.

  1. Verificare che ogni istanza di SQL Server che ospiterà una replica di disponibilità (ogni percorso di replica) disponga di un endpoint del mirroring del database. Per determinare se in una determinata istanza del server è presente un endpoint del mirroring del database, usare 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 i 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 Always On problemi di configurazione dei gruppi di disponibilità 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 stati avviati (STATE=STARTED). Usare l'istruzione Transact-SQL seguente in ogni istanza del server:

    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. Verificare che l'account di accesso dell'altro server disponga dell'autorizzazione CONNECT. Per individuare gli account che dispongono dell'autorizzazione CONNECT per un endpoint, usare l'istruzione Transact-SQL seguente in ogni istanza del server:

    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 di sistema

Quale nome di sistema di un'istanza del server in un URL endpoint, è possibile utilizzare qualsiasi nome che identifichi univocamente 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'utilizzo del nome di dominio completo è una soluzione efficace. 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 ciascuna altra istanza del server su TCP. Questo requisito è particolarmente importante quando le istanze del server appartengono a domini diversi non trusted.

Accesso all'endpoint (errore di SQL Server 1418)

Questo messaggio 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 nella creazione del join del database (errore di SQL Server 35250)

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

Risoluzione:

  1. Controllare l'impostazione del firewall per verificare se è consentita 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 di autorizzazione CONNECT all'endpoint.

Il routing di sola lettura non funziona correttamente

Verificare le seguenti impostazioni relative ai valori di configurazione e correggerle se necessario.

In... Azione Commenti Collegamento
Casella di controllo Casella Replica primaria corrente Assicurarsi che il listener 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)

ALTER AVAILABILITY GROUP (Transact-SQL)
Casella di controllo Casella Replica primaria corrente Verificare che READ_ONLY_ROUTING_LIST contenga solo le 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)

ALTER AVAILABILITY GROUP (Transact-SQL)
Casella di controllo Casella Ogni replica in read_only_routing_list Verificare che Windows Firewall non blocchi la porta READ_ONLY_ROUTING_URL. - Configurare Windows Firewall per l'accesso al motore di database
Casella di controllo Casella Ogni replica in 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 Casella Ogni replica in 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 di read_only_routing_url per AlwaysOn

sys.availability_replicas (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)
Casella di controllo Casella Sistema client Verificare che il driver client supporti il routing di sola lettura. - Connettività client AlwaysOn (SQL Server)

Attività correlate

Contenuto correlato

Vedere anche

Sicurezza del trasporto per il mirroring del database e gruppi di disponibilità AlwaysOn (SQL Server)Prerequisiti, restrizioni e raccomandazioni per i gruppi di disponibilità AlwaysOn (SQL Server)