Risolvere i problemi relativi alla configurazione di Gruppi di disponibilità Always On (SQL Server)Troubleshoot Always On Availability Groups Configuration (SQL Server)

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2016)noDatabase SQL di AzurenoAzure SQL Data WarehousenoParallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

In questo argomento vengono fornite informazioni per la risoluzione dei problemi tipici relativi alla configurazione delle istanze del server per Gruppi di disponibilità Always OnAlways On availability groups.This topic provides information to help you troubleshoot typical problems with configuring server instances for Gruppi di disponibilità Always OnAlways On availability groups. Tra i problemi di configurazione tipici sono inclusi la disabilitazione di Gruppi di disponibilità Always OnAlways On availability groups , 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).Typical configuration problems include Gruppi di disponibilità Always OnAlways On availability groups is disabled, accounts are incorrectly configured, the database mirroring endpoint does not exist, the endpoint is inaccessible (SQL Server Error 1418), network access does not exist, and a join database command fails (SQL Server Error 35250).

Nota

Verificare che vengano soddisfatti i prerequisiti Gruppi di disponibilità Always OnAlways On availability groups .Ensure that you are meeting the Gruppi di disponibilità Always OnAlways On availability groups prerequisites. Per altre informazioni, vedere Prerequisiti, restrizioni e consigli per i gruppi di disponibilità Always On (SQL Server).For more information, see Prerequisites, Restrictions, and Recommendations for Always On Availability Groups (SQL Server).

Contenuto dell'argomentoIn This Topic:

SezioneSection DescrizioneDescription
Funzionalità Gruppi di disponibilità Always On non abilitataAlways On Availability Groups Is Not Enabled Se un'istanza di SQL ServerSQL Server non è abilitata per Gruppi di disponibilità Always OnAlways On availability groups, l'istanza non supporta la creazione del gruppo di disponibilità e non è in grado di ospitare alcuna replica di disponibilità.If an instance of SQL ServerSQL Server is not enabled for Gruppi di disponibilità Always OnAlways On availability groups, the instance does not support availability group creation and cannot host any availability replicas.
AccountsAccounts Illustra i requisiti per la corretta configurazione degli account in cui viene eseguito SQL ServerSQL Server .Discusses requirements for correctly configuring the accounts under which SQL ServerSQL Server is running.
EndpointEndpoints Illustra come diagnosticare problemi relativi all'endpoint del mirroring del database di un'istanza del server.Discusses how to diagnose issues with the database mirroring endpoint of a server instance.
Nome di sistemaSystem name Riepiloga le alternative per la specifica del nome di sistema di un'istanza del server in un URL endpoint.Summarizes the alternatives for specifying the system name of a server instance in an endpoint URL.
Accesso alla reteNetwork access 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.Documents the requirement that each server instance that is hosting an availability replica must be able to access the port of each of the other server instances over TCP.
Accesso all'endpoint (errore di SQL Server 1418)Endpoint Access (SQL Server Error 1418) Contiene informazioni su questo messaggio di errore di SQL ServerSQL Server .Contains information about this SQL ServerSQL Server error message.
Errore nella creazione del join del database (errore di SQL Server 35250)Join Database Fails (SQL Server Error 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.Discusses the possible causes and resolution of a failure to join secondary databases to an availability group because the connection to the primary replica is not active.
Il routing di sola lettura non funziona correttamenteRead-Only Routing is Not Working Correctly
Attività correlateRelated Tasks Contiene un elenco di argomenti orientati alle attività nella documentazione online di SQL Server 2017SQL Server 2017 particolarmente rilevanti per risolvere i problemi relativi a una configurazione del gruppo di disponibilità.Contains a list of task-oriented topics in SQL Server 2017SQL Server 2017 Books Online that are particularly relevant to troubleshooting an availability group configuration.
Contenuto correlatoRelated Content Contiene un elenco di risorse rilevanti esterne alla documentazione online di SQL ServerSQL Server .Contains a list of relevant resources that are external to SQL ServerSQL Server Books Online.

Funzionalità Gruppi di disponibilità Always On non abilitata Always On Availability Groups Is Not Enabled

La funzionalità Gruppi di disponibilità Always OnAlways On availability groups deve essere abilitata su ognuna delle istanze di SQL Server 2017SQL Server 2017.The Gruppi di disponibilità Always OnAlways On availability groups feature must be enabled on each of the instances of SQL Server 2017SQL Server 2017. Per altre informazioni, vedere Abilitare e disabilitare la funzionalità Gruppi di disponibilità AlwaysOn (SQL Server).For more information, see Enable and Disable Always On Availability Groups (SQL Server).

Accounts Accounts

È necessario configurare correttamente gli account utilizzati per l'esecuzione di SQL ServerSQL Server .The accounts under which SQL ServerSQL Server is running must be correctly configured.

  1. Autorizzazioni corrette per gli accountDo the accounts have the correct permissions?

    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 .If the partners run as the same domain user account, the correct user logins exist automatically in both master databases. Questa scelta semplifica la configurazione della sicurezza del database ed è quella consigliata.This simplifies the security configuration the database and is recommended.

    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.If two server instances run as different accounts, the login each account must be created in master on the remote server instance, and that login must be granted CONNECT permissions to connect to the database mirroring endpoint of that server instance. Per altre informazioni, vedere Configurare gli account di accesso per il mirroring del database o i gruppi di disponibilità Always On (SQL Server).For more information, seeSet Up Login Accounts for Database Mirroring or Always On Availability Groups (SQL Server).

  2. Se SQL ServerSQL 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.If SQL ServerSQL Server is running as a built-in account, such as Local System, Local Service, or Network Service, or a nondomain account, you must use certificates for endpoint authentication. 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.If your service accounts are using domain accounts in the same domain, you can choose to grant CONNECT access for each service account on all the replica locations or you can use certificates. Per altre informazioni, vedere Usare certificati per un endpoint del mirroring del database (Transact-SQL).For more information, seeUse Certificates for a Database Mirroring Endpoint (Transact-SQL).

Endpoint Endpoints

È necessario configurare correttamente gli endpoint.Endpoints must be correctly configured.

  1. Verificare che ogni istanza di SQL ServerSQL Server che ospiterà una replica di disponibilità (ogni percorso di replica) disponga di un endpoint del mirroring del database.Make sure that each instance of SQL ServerSQL Server that is going to host an availability replica (each replica location) has a database mirroring endpoint. 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.To determine whether a database mirroring endpoint exists on a given server instance, use the sys.database_mirroring_endpoints catalog view. Per altre informazioni, vedere Creare un endpoint del mirroring del database per l'autenticazione Windows (Transact-SQL) oppure Impostare l'endpoint del mirroring del database per l'uso di certificati per le connessioni in uscita (Transact-SQL).For more information, see either Create a Database Mirroring Endpoint for Windows Authentication (Transact-SQL) or Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (Transact-SQL).

  2. Verificare che i numeri di porta siano corretti.Check that the port numbers are correct.

    Per individuare la porta attualmente associata all'endpoint di mirroring del database per un'istanza del server, utilizzare l'istruzione Transact-SQLTransact-SQL seguente:To identify the port currently associated with database mirroring endpoint of a server instance, use the following Transact-SQLTransact-SQL statement:

    SELECT type_desc, port FROM sys.tcp_endpoints;  
    GO  
    
  3. Per i problemi di impostazione di Gruppi di disponibilità Always OnAlways On availability groups che sono difficili da diagnosticare, è consigliabile controllare ogni istanza del server per verificare che sia in attesa sulle porte corrette.For Gruppi di disponibilità Always OnAlways On availability groups setup issues that are difficult to explain, we recommend that you inspect each server instance to determine whether it is listening on the correct ports.

  4. Verificare che gli endpoint siano stati avviati (STATE=STARTED).Make sure that the endpoints are started (STATE=STARTED). Utilizzare l'istruzione Transact-SQLTransact-SQL seguente su ogni istanza del server:On each server instance, use the following Transact-SQLTransact-SQL statement:

    SELECT state_desc FROM sys.database_mirroring_endpoints  
    

    Per altre informazioni sulla colonna state_desc, vedere sys.database_mirroring_endpoints (Transact-SQL).For more information about the state_desc column, see sys.database_mirroring_endpoints (Transact-SQL).

    Per avviare un endpoint, utilizzare l'istruzione Transact-SQLTransact-SQL seguente:To start an endpoint, use the following Transact-SQLTransact-SQL statement:

    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).For more information, see ALTER ENDPOINT (Transact-SQL).

  5. Verificare che l'account di accesso dell'altro server disponga dell'autorizzazione CONNECT.Make sure that the login from the other server has CONNECT permission. Per individuare gli account che dispongono dell'autorizzazione CONNECT per un endpoint, utilizzare l'istruzione Transact-SQLTransact-SQL seguente su ogni istanza del server:To determine who has CONNECT permission for an endpoint, on each server instance use the following Transact-SQLTransact-SQL statement:

    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  
    

System Name System Name

Quale nome di sistema di un'istanza del server in un URL endpoint, è possibile utilizzare qualsiasi nome che identifichi univocamente il sistema.For the system name of a server instance in an endpoint URL, you can use any name that unambiguously identifies the system. 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).The server address can be a system name (if the systems are in the same domain), a fully qualified domain name, or an IP address (preferably, a static IP address). L'utilizzo del nome di dominio completo è una soluzione efficace.Using the fully qualified domain name is guaranteed to work. Per altre informazioni, vedere Specificare l'URL dell'endpoint quando si aggiunge o si modifica una replica di disponibilità (SQL Server).For more information, see Specify the Endpoint URL When Adding or Modifying an Availability Replica (SQL Server).

Network Access Network Access

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.Each server instance that is hosting an availability replica must be able to access the port of each of the other server instance over TCP. Questo requisito è particolarmente importante quando le istanze del server appartengono a domini diversi non trusted.This is especially important if the server instances are in different domains that do not trust each other (untrusted domains).

Accesso all'endpoint (errore di SQL Server 1418) Endpoint Access (SQL Server Error 1418)

Questo messaggio di SQL ServerSQL 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.This SQL ServerSQL Server message indicates that the server network address specified in the endpoint URL cannot be reached or does not exist, and it suggests that you verify the network address name and reissue the command.

Errore nella creazione del join del database (errore di SQL Server 35250) Join Database Fails (SQL Server Error 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.This section discusses the possible causes and resolution of a failure to join secondary databases to the availability group because the connection to the primary replica is not active.

Soluzione:Resolution:

  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).Check the firewall setting to see if whether allows the endpoint port communication between the server instances that host primary replica and the secondary replica (port 5022 by default).

  2. Controllare se l'account del servizio di rete dispone di autorizzazione CONNECT all'endpoint.Check whether the network service account has connect permission to the endpoint.

Il routing di sola lettura non funziona correttamente Read-Only Routing is Not Working Correctly

Verificare le seguenti impostazioni relative ai valori di configurazione e correggerle se necessario.Verify the following configuration values settings and correct them if necessary.

In...On… AzioneAction CommentiComments CollegamentoLink
Casella di controlloCheckbox Replica primaria correnteCurrent primary replica Assicurarsi che il listener del gruppo di disponibilità sia online.Ensure that the availability group listener is online. Per verificare se il listener è online:To verify whether the listener is online:

SELECT * FROM sys.dm_tcp_listener_states;

Per riavviare un listener offline:To restart an offline listener:

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

ALTER AVAILABILITY GROUP (Transact-SQL)ALTER AVAILABILITY GROUP (Transact-SQL)
Casella di controlloCheckbox Replica primaria correnteCurrent primary replica Verificare che READ_ONLY_ROUTING_LIST contenga solo le istanze del server che ospitano una replica secondaria leggibile.Ensure that the READ_ONLY_ROUTING_LIST contains only server instances that are hosting a readable secondary replica. Per identificare repliche secondarie leggibili: sys.availability_replicas (colonnasecondary_role_allow_connections_desc )To identify readable secondary replicas: sys.availability_replicas (secondary_role_allow_connections_desc column)

Per visualizzare un elenco di routing di sola lettura: sys.availability_read_only_routing_listsTo view a read-only routing list: sys.availability_read_only_routing_lists

Per modificare un elenco di routing di sola lettura: ALTER AVAILABILITY GROUPTo change a read-only routing list: ALTER AVAILABILITY GROUP
sys.availability_replicas (Transact-SQL)sys.availability_replicas (Transact-SQL)

sys.availability_read_only_routing_lists (Transact-SQL)sys.availability_read_only_routing_lists (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)ALTER AVAILABILITY GROUP (Transact-SQL)
Casella di controlloCheckbox Ogni replica in read_only_routing_listEvery replica in the read_only_routing_list Verificare che Windows Firewall non blocchi la porta READ_ONLY_ROUTING_URL.Ensure that the Windows firewall is not blocking the READ_ONLY_ROUTING_URL port. Configurazione di Windows Firewall per l'accesso al Motore di databaseConfigure a Windows Firewall for Database Engine Access
Casella di controlloCheckbox Ogni replica in read_only_routing_listEvery replica in the read_only_routing_list In Gestione configurazione SQL ServerSQL Server verificare quanto segue:In SQL ServerSQL Server Configuration Manager, verify that:

La connettività remota di SQL Server è abilitata.SQL Server remote connectivity is enabled.

TCP/IP è abilitato.TCP/IP is enabled.

Gli indirizzi IP sono configurati correttamente.The IP addresses are configured correctly.
Visualizzare o modificare le proprietà del server (SQL Server)View or Change Server Properties (SQL Server)

Configurare un server per l'attesa su una porta TCP specifica (Gestione configurazione SQL Server)Configure a Server to Listen on a Specific TCP Port (SQL Server Configuration Manager)
Casella di controlloCheckbox Ogni replica in read_only_routing_listEvery replica in the 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.Ensure that the READ_ONLY_ROUTING_URL (TCP://system-address:port) contains the correct fully-qualified domain name (FQDN) and port number. Calcolo di read_only_routing_url per Always OnCalculating read_only_routing_url for Always On

sys.availability_replicas (Transact-SQL)sys.availability_replicas (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)ALTER AVAILABILITY GROUP (Transact-SQL)
Casella di controlloCheckbox Sistema clientClient system Verificare che il driver client supporti il routing di sola lettura.Verify that the client driver supports read-only routing. Connettività client Always On (SQL Server)Always On Client Connectivity (SQL Server)

Vedere ancheSee Also

Sicurezza trasporto per il mirroring del database e i gruppi di disponibilità Always On (SQL Server) Transport Security for Database Mirroring and Always On Availability Groups (SQL Server)
Configurazione di rete dei client Client Network Configuration
Prerequisiti, restrizioni e consigli per i gruppi di disponibilità AlwaysOn (SQL Server)Prerequisites, Restrictions, and Recommendations for Always On Availability Groups (SQL Server)