Risolvere i problemi relativi alla configurazione di Gruppi di disponibilità AlwaysOn (SQL Server)

In questo argomento vengono fornite informazioni per la risoluzione dei problemi tipici relativi alla configurazione delle istanze del server per Gruppi di disponibilità AlwaysOn. Tra i problemi di configurazione tipici sono inclusi la disabilitazione di Gruppi di disponibilità AlwaysOn, la configurazione errata degli account, l'endpoint del mirroring del database inesistente, l'endpoint inaccessibile (errore di SQL Server 1418), l'accesso alla rete inesistente e l'esito negativo di un comando di creazione di join del database (errore di SQL Server 35250).

[!NOTA]

Verificare che vengano soddisfatti i prerequisiti Gruppi di disponibilità AlwaysOn. Per ulteriori informazioni, vedere Prerequisiti, restrizioni e consigli per i gruppi di disponibilità AlwaysOn (SQL Server).

Contenuto dell'argomento:

Sezione

Descrizione

Funzionalità Gruppi di disponibilità AlwaysOn non abilitata

Se un'istanza di SQL Server non è abilitata per Gruppi di disponibilità AlwaysOn, l'istanza non supporta la creazione del gruppo di disponibilità e non è in grado di ospitare alcuna replica di disponibilità.

Account

Illustra i requisiti per la corretta configurazione degli account in cui viene eseguito SQL Server.

Endpoint

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 2012 particolarmente rilevanti per risolvere i problemi relativi a una configurazione del 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à Gruppi di disponibilità AlwaysOn deve essere abilitata su ognuna delle istanze di SQL Server 2012. Per ulteriori informazioni, vedere Abilitare e disabilitare la funzionalità Gruppi di disponibilità AlwaysOn (SQL Server).

Account

È necessario configurare correttamente gli account utilizzati 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 ulteriori informazioni, vedere Configurare gli account di accesso per il mirroring del database o i gruppi di disponibilità AlwaysOn (SQL Server).

  2. Se SQL Server viene eseguito come account predefinito, ad esempio Sistema locale, Servizio locale o Servizio di rete, oppure come account non di dominio, è necessario utilizzare 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 ulteriori informazioni, vedere Utilizzare certificati per un endpoint del mirroring del database (Transact-SQL).

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

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, utilizzare la vista del catalogo sys.database_mirroring_endpoints. Per ulteriori informazioni, vedere Creare un endpoint del mirroring del database per l'autenticazione Windows (Transact-SQL) o Impostazione dell'endpoint del mirroring del database per l'utilizzo di 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, utilizzare l'istruzione Transact-SQL seguente:

    SELECT type_desc, port FROM sys.tcp_endpoints;
    GO
    
  3. Per i problemi di impostazione di Gruppi di disponibilità AlwaysOn che sono difficili da diagnosticare, è consigliabile controllare ogni istanza del server per verificare che sia in attesa sulle porte corrette. Per informazioni sulla verifica della disponibilità delle porte, vedere MSSQLSERVER_1418.

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

    SELECT state_desc FROM sys.database_mirroring_endpoints
    

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

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

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

    Per ulteriori 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, utilizzare l'istruzione Transact-SQL seguente su 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
    

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

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 ulteriori informazioni, vedere Specifica dell'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 di SQL Server indica che l'indirizzo di rete del server specificato nell'URL endpoint non è raggiungibile o non esiste, pertanto si consiglia di controllare il nome dell'indirizzo di rete e quindi eseguire nuovamente il comando. Per ulteriori informazioni, vedere MSSQLSERVER_1418.

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

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.

Soluzione:

  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

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

Replica primaria corrente

Verificare che READ_ONLY_ROUTING_LIST contenga solo le istanze del server che ospitano una replica secondaria leggibile.

  • Per identificare 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

Ogni replica in read_only_routing_list

Verificare 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 in read_only_routing_list

In Gestione configurazione SQL Server verificare quanto segue:

  • La connettività remota di SQL Server è abilitata.

  • TCP/IP è abilitato.

  • Gli indirizzi IP sono configurati correttamente.

Visualizzare o modificare le proprietà del server

Configurazione di un server per l'attesa su una porta TCP specifica (Gestione configurazione SQL Server)

Casella di controllo

Ogni replica in read_only_routing_list

Verificare che READ_ONLY_ROUTING_URL (TCP://system-address:port) contenga il nome di dominio completo (FQDN) e il numero di porta corretti.

Calcolo di read_only_routing_url per AlwaysOn

sys.availability_replicas (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)

Casella di controllo

Sistema client

Verificare che il driver client supporti il routing di sola lettura.

Connettività client AlwaysOn (SQL Server)

Icona freccia utilizzata con il collegamento Torna all'inizioInizio pagina

Attività correlate

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

Contenuto correlato

Icona freccia utilizzata con il collegamento Torna all'inizio[Torna all'inizio]

Vedere anche

Concetti

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

Prerequisiti, restrizioni e consigli per i gruppi di disponibilità AlwaysOn (SQL Server)

Altre risorse

Configurazione di rete dei client