Usare i gruppi di failover automatico per consentire il failover trasparente e coordinato di più databaseUse auto-failover groups to enable transparent and coordinated failover of multiple databases

I gruppi di failover automatico sono una funzionalità del database SQL che consente di gestire la replica e il failover di un gruppo di database in un server di database SQL o di tutti i database in un'istanza gestita in un'altra area.Auto-failover groups is a SQL Database feature that allows you to manage replication and failover of a group of databases on a SQL Database server or all databases in a managed instance to another region. Si tratta di un'astrazione dichiarativa basata sulla funzionalità di replica geografica attiva esistente, progettata per semplificare la distribuzione e la gestione di database con replica geografica su larga scala.It is a declarative abstraction on top of the existing active geo-replication feature, designed to simplify deployment and management of geo-replicated databases at scale. È possibile avviare manualmente il failover oppure delegarlo al servizio del database SQL in base a criteri definiti dall'utente.You can initiate failover manually or you can delegate it to the SQL Database service based on a user-defined policy. Grazie a questa seconda opzione è possibile ripristinare automaticamente più database correlati in un'area secondaria dopo un errore irreversibile o un altro evento imprevisto che comporta la perdita parziale o completa di disponibilità del servizio del database SQL nell'area primaria.The latter option allows you to automatically recover multiple related databases in a secondary region after a catastrophic failure or other unplanned event that results in full or partial loss of the SQL Database service’s availability in the primary region. Un gruppo di failover può includere uno o più database, in genere utilizzati dalla stessa applicazione.A failover group can include one or multiple databases, typically used by the same application. È inoltre possibile usare i database secondari leggibili per l'offload dei carichi di lavoro delle query di sola lettura.Additionally, you can use the readable secondary databases to offload read-only query workloads. Poiché i gruppi di failover automatico coinvolgono più database, questi ultimi devono essere configurati nel server primario.Because auto-failover groups involve multiple databases, these databases must be configured on the primary server. I gruppi di failover automatico supportano la replica di tutti i database nel gruppo in un solo server secondario in un'area diversa.Auto-failover groups support replication of all databases in the group to only one secondary server in a different region.

Nota

Se si usano database singoli o in pool in un server di database SQL e si intende avere più database secondari nella stessa area geografica o in aree diverse, usare la replica geografica attiva.When working with single or pooled databases on a SQL Database server and you want multiple secondaries in the same or different regions, use active geo-replication.

Se si usano gruppi di failover automatico con criteri di failover automatico, eventuali interruzioni che influiscono su uno o più database nel gruppo determinano un failover automatico.When you are using auto-failover groups with automatic failover policy, any outage that impacts one or several of the databases in the group results in automatic failover. In genere si tratta di eventi imprevisti che non possono essere automaticamente mitigati dalle operazioni di disponibilità elevata automatiche predefinite.Typically these are incidents that cannot be self-mitigated by the built-in automatic high availability operations. Gli esempi di trigger di failover includono un evento imprevisto causato da un anello del tenant SQL o da un anello di controllo inattivo a causa di una perdita di memoria del kernel del sistema operativo in diversi nodi di calcolo o di un evento imprevisto causato da uno o più anelli del tenant inattivi a causa di un cavo di rete errato durante il ro rimozione delle autorizzazioni per l'hardware utine.The examples of failover triggers include an incident caused by a SQL tenant ring or control ring being down due to an OS kernel memory leak on several compute nodes, or an incident caused by one or more tenant rings being down because a wrong network cable was cut during routine hardware decommissioning. Per altre informazioni, vedere disponibilità elevata del database SQL.For more information, see SQL Database High Availability.

I gruppi di failover automatico forniscono anche endpoint di listener di sola lettura e di sola scrittura che rimangono invariati durante i failover.In addition, auto-failover groups provide read-write and read-only listener end-points that remain unchanged during failovers. Se si usa l'attivazione di failover manuale o automatica, il failover trasforma tutti i database secondari nel gruppo in database primari.Whether you use manual or automatic failover activation, failover switches all secondary databases in the group to primary. Dopo aver completato il failover del database, il record DNS viene automaticamente aggiornato per reindirizzare gli endpoint alla nuova area.After the database failover is completed, the DNS record is automatically updated to redirect the endpoints to the new region. Per i dati RPO e RTO specifici consultare la panoramica della continuità aziendale.For the specific RPO and RTO data, see Overview of Business Continuity.

Se si usano gruppi di failover automatico con criteri di failover automatico, eventuali interruzioni che influiscono sui database nel server di database SQL o nell'istanza gestita determinano un failover automatico.When you are using auto-failover groups with automatic failover policy, any outage that impacts databases in the SQL Database server or managed instance results in automatic failover. È possibile gestire il gruppo di failover automatico mediante:You can manage auto-failover group using:

Dopo il failover, verificare che nel nuovo database primario siano configurati i requisiti di autenticazione relativi al server e al database.After failover, ensure the authentication requirements for your server and database are configured on the new primary. Per tutti i dettagli, vedere l'articolo sulla sicurezza del database SQL di Azure dopo il ripristino di emergenza.For details, see SQL Database security after disaster recovery.

Per ottenere una reale continuità aziendale, l'aggiunta di ridondanza dei database tra i data center rappresenta solo una parte della soluzione.To achieve real business continuity, adding database redundancy between datacenters is only part of the solution. Per ripristinare un'applicazione (servizio) end-to-end dopo un problema grave, è necessario effettuare il ripristino di tutti i componenti del servizio e gli eventuali servizi dipendenti.Recovering an application (service) end-to-end after a catastrophic failure requires recovery of all components that constitute the service and any dependent services. Esempi di questi componenti includono il software client (ad esempio, un browser con JavaScript personalizzato), front-end Web, spazio di archiviazione e DNS.Examples of these components include the client software (for example, a browser with a custom JavaScript), web front ends, storage, and DNS. È fondamentale che tutti i componenti siano resilienti agli stessi problemi e diventino disponibili entro I'obiettivo del tempo di ripristino (RTO) dell'applicazione.It is critical that all components are resilient to the same failures and become available within the recovery time objective (RTO) of your application. È perciò necessario identificare tutti i servizi dipendenti e comprendere quali garanzie e funzionalità vengono fornite.Therefore, you need to identify all dependent services and understand the guarantees and capabilities they provide. È quindi necessario intraprendere le azioni appropriate per assicurare il funzionamento del servizio durante il failover dei servizi da cui dipende.Then, you must take adequate steps to ensure that your service functions during the failover of the services on which it depends. Per altre informazioni sulla progettazione di soluzioni per il ripristino di emergenza, vedere Progettazione di applicazioni per il ripristino di emergenza cloud con la replica geografica attiva in database SQL.For more information about designing solutions for disaster recovery, see Designing Cloud Solutions for Disaster Recovery Using active geo-replication.

Funzionalità e terminologia dei gruppi di failover automaticoAuto-failover group terminology and capabilities

  • Gruppo di failover (nebbia)Failover group (FOG)

    Un gruppo di failover è un gruppo denominato di database gestito da un singolo server di database SQL o all'interno di una singola istanza gestita di cui è possibile eseguire il failover come unità in un'altra area nel caso in cui tutti o alcuni database primari non siano più disponibili a causa di un'interruzione nell'area primaria.A failover group is a named group of databases managed by a single SQL Database server or within a single managed instance that can fail over as a unit to another region in case all or some primary databases become unavailable due to an outage in the primary region. Quando viene creato per le istanze gestite, un gruppo di failover contiene tutti i database utente nell'istanza e pertanto è possibile configurare un solo gruppo di failover in un'istanza di.When created for managed instances, a failover group contains all user databases in the instance and therefore only one failover group can be configured on an instance.

    Importante

    Il nome del gruppo di failover deve essere univoco a livello globale all' .database.windows.net interno del dominio.The name of the failover group must be globally unique within the .database.windows.net domain.

  • Server di database SQLSQL Database servers

    Con i server di database SQL è possibile inserire alcuni o tutti i database utente di un singolo server di database SQL in un gruppo di failover.With SQL Database servers, some or all of the user databases on a single SQL Database server can be placed in a failover group. Un server di database SQL supporta anche più gruppi di failover in un singolo server di database SQL.Also, a SQL Database server supports multiple failover groups on a single SQL Database server.

  • Server/istanza primariaPrimary

    Il server di database SQL o l'istanza gestita che ospita i database primari nel gruppo di failover.The SQL Database server or managed instance that hosts the primary databases in the failover group.

  • Server/istanza secondariaSecondary

    Il server di database SQL o l'istanza gestita che ospita i database secondari nel gruppo di failover.The SQL Database server or managed instance that hosts the secondary databases in the failover group. Il server o l'istanza secondaria non può trovarsi nella stessa area del server o dell'istanza primaria.The secondary cannot be in the same region as the primary.

  • Aggiunta di database singoli al gruppo di failoverAdding single databases to failover group

    È possibile inserire più database singoli nello stesso server di database SQL all'interno dello stesso gruppo di failover.You can put several single databases on the same SQL Database server into the same failover group. Se si aggiunge un database singolo al gruppo di failover, viene creato automaticamente un database secondario usando la stessa edizione e le stesse dimensioni di calcolo nel server secondario.If you add a single database to the failover group, it automatically creates a secondary database using the same edition and compute size on secondary server. Tale server è stato specificato quando è stato creato il gruppo di failover.You specified that server when the failover group was created. Se si aggiunge un database che ha già un database secondario nel server secondario, tale collegamento della replica geografica viene ereditato dal gruppo.If you add a database that already has a secondary database in the secondary server, that geo-replication link is inherited by the group. Quando si aggiunge un database che dispone già di un database secondario in un server che non fa parte del gruppo di failover, viene creato un nuovo database secondario nel server secondario.When you add a database that already has a secondary database in a server that is not part of the failover group, a new secondary is created in the secondary server.

    Importante

    In un'istanza gestita tutti i database utente vengono replicati.In a managed instance, all user databases are replicated. Non è possibile selezionare un subset di database utente per la replica nel gruppo di failover.You cannot pick a subset of user databases for replication in the failover group.

  • Aggiunta di database nel pool elastico al gruppo di failoverAdding databases in elastic pool to failover group

    È possibile inserire tutti o alcuni database all'interno di un pool elastico nello stesso gruppo di failover.You can put all or several databases within an elastic pool into the same failover group. Se il database primario si trova in un pool elastico, il database secondario viene creato automaticamente nel pool elastico con lo stesso nome (pool secondario).If the primary database is in an elastic pool, the secondary is automatically created in the elastic pool with the same name (secondary pool). È necessario assicurarsi che il server secondario contenga un pool elastico con lo stesso identico nome e capacità sufficiente per ospitare i database secondari che verranno creati dal gruppo di failover.You must ensure that the secondary server contains an elastic pool with the same exact name and enough free capacity to host the secondary databases that will be created by the failover group. Se si aggiunge un database nel pool che ha già un database secondario nel pool secondario, tale collegamento della replica geografica viene ereditato dal gruppo.If you add a database in the pool that already has a secondary database in the secondary pool, that geo-replication link is inherited by the group. Quando si aggiunge un database che ha già un database secondario in un server che non fa parte del gruppo di failover, viene creato un nuovo database secondario nel pool secondario.When you add a database that already has a secondary database in a server that is not part of the failover group, a new secondary is created in the secondary pool.

  • Zona DNSDNS zone

    ID univoco generato automaticamente quando viene creata una nuova istanza.A unique ID that is automatically generated when a new instance is created. Viene eseguito il provisioning di un certificato con più domini (SAN) per questa istanza per autenticare le connessioni client a qualsiasi istanza nella stessa zona DNS.A multi-domain (SAN) certificate for this instance is provisioned to authenticate the client connections to any instance in the same DNS zone. Le due istanze gestite nello stesso gruppo di failover devono condividere la zona DNS.The two managed instances in the same failover group must share the DNS zone.

    Nota

    Per i gruppi di failover creati per i server di database SQL non è necessario un ID zona DNS.A DNS zone ID is not required for failover groups created for SQL Database servers.

  • Listener di lettura/scrittura del gruppo di failoverFailover group read-write listener

    Record DNS CNAME che punta all'URL del database primario corrente.A DNS CNAME record that points to the current primary's URL. Viene creato automaticamente quando viene creato il gruppo di failover e consente al carico di lavoro SQL di lettura/scrittura di riconnettersi in modo trasparente al database primario quando viene modificato il database primario dopo il failover.It is created automatically when the failover group is created and allows the read-write SQL workload to transparently reconnect to the primary database when the primary changes after failover. Quando il gruppo di failover viene creato in un server di database SQL, il record CNAME DNS per l'URL del listener <fog-name>.database.windows.netviene formato come.When the failover group is created on a SQL Database server, the DNS CNAME record for the listener URL is formed as <fog-name>.database.windows.net. Quando il gruppo di failover viene creato in un'istanza gestita, il record CNAME DNS per l'URL del listener viene <fog-name>.zone_id.database.windows.netformato come.When the failover group is created on a managed instance, the DNS CNAME record for the listener URL is formed as <fog-name>.zone_id.database.windows.net.

  • Listener di sola lettura del gruppo di failoverFailover group read-only listener

    Un record CNAME DNS che punta al listener di sola lettura che punta all'URL del database secondario.A DNS CNAME record formed that points to the read-only listener that points to the secondary's URL. Viene creato automaticamente quando viene creato il gruppo di failover e consente al carico di lavoro SQL di sola lettura di connettersi in modo trasparente al database secondario usando le regole di bilanciamento del carico specificate.It is created automatically when the failover group is created and allows the read-only SQL workload to transparently connect to the secondary using the specified load-balancing rules. Quando il gruppo di failover viene creato in un server di database SQL, il record CNAME DNS per l'URL del listener <fog-name>.secondary.database.windows.netviene formato come.When the failover group is created on a SQL Database server, the DNS CNAME record for the listener URL is formed as <fog-name>.secondary.database.windows.net. Quando il gruppo di failover viene creato in un'istanza gestita, il record CNAME DNS per l'URL del listener viene <fog-name>.zone_id.secondary.database.windows.netformato come.When the failover group is created on a managed instance, the DNS CNAME record for the listener URL is formed as <fog-name>.zone_id.secondary.database.windows.net.

  • Criteri di failover automaticoAutomatic failover policy

    Per impostazione predefinita un gruppo di failover viene configurato con criteri di failover automatico.By default, a failover group is configured with an automatic failover policy. Il servizio del database SQL attiva il failover dopo che è stato rilevato l'errore ed è scaduto il periodo di prova.The SQL Database service triggers failover after the failure is detected and the grace period has expired. Il sistema deve verificare che l'interruzione del servizio non può essere risolta dall'infrastruttura con disponibilità elevata incorporata del servizio del database SQL a causa dell'entità dell'impatto.The system must verify that the outage cannot be mitigated by the built-in high availability infrastructure of the SQL Database service due to the scale of the impact. Se si desidera controllare il flusso di lavoro del failover dall'applicazione, è possibile disattivare il failover automatico.If you want to control the failover workflow from the application, you can turn off automatic failover.

  • Criteri di failover di sola letturaRead-only failover policy

    Per impostazione predefinita, il failover del listener di sola lettura è disabilitato.By default, the failover of the read-only listener is disabled. Verificare che le prestazioni del database primario non siano interessate quando il database secondario è offline.It ensures that the performance of the primary is not impacted when the secondary is offline. Ciò significa anche che le sessioni di sola lettura non sono in grado di connettersi fino a quando il database secondario non viene recuperato.However, it also means the read-only sessions will not be able to connect until the secondary is recovered. Se non è possibile tollerare i tempi di inattività per le sessioni di sola lettura e si è pronti a usare temporaneamente il database primario per il traffico di sola lettura e di lettura/scrittura a scapito della potenziale riduzione delle prestazioni del database primario, è possibile abilitare il failover per il listener di sola lettura configurando AllowReadOnlyFailoverToPrimary la proprietà.If you cannot tolerate downtime for the read-only sessions and are OK to temporarily use the primary for both read-only and read-write traffic at the expense of the potential performance degradation of the primary, you can enable failover for the read-only listener by configuring the AllowReadOnlyFailoverToPrimary property. In tal caso, il traffico di sola lettura verrà reindirizzato automaticamente al database primario se il database secondario non è disponibile.In that case, the read-only traffic will be automatically redirected to the primary if the secondary is not available.

  • Failover pianificatoPlanned failover

    Il failover pianificato esegue la sincronizzazione completa tra il database primario e il database secondario prima che il database secondario passi al ruolo primario.Planned failover performs full synchronization between primary and secondary databases before the secondary switches to the primary role. In questo modo si esclude la perdita di dati.This guarantees no data loss. Il failover pianificato viene usato negli scenari seguenti:Planned failover is used in the following scenarios:

    • Eseguire esercitazioni per il ripristino di emergenza in produzione quando la perdita di dati non è accettabilePerform disaster recovery (DR) drills in production when the data loss is not acceptable
    • Rilocare i database in un'area diversaRelocate the databases to a different region
    • Ripristinare i database nell'area primaria dopo la risoluzione dell'interruzione (failback).Return the databases to the primary region after the outage has been mitigated (failback).
  • Failover non pianificatoUnplanned failover

    Con il failover non pianificato o forzato il database secondario passa immediatamente al ruolo primario senza alcuna sincronizzazione.Unplanned or forced failover immediately switches the secondary to the primary role without any synchronization with the primary. Questa operazione comporta la perdita di dati.This operation will result in data loss. Un failover non pianificato viene usato come metodo di ripristino durante le interruzioni quando non è accessibile il database primario.Unplanned failover is used as a recovery method during outages when the primary is not accessible. Quando la replica primaria originale è di nuovo online, viene riconnessa automaticamente senza sincronizzazione e diventa un nuovo database secondario.When the original primary is back online, it will automatically reconnect without synchronization and become a new secondary.

  • Failover manualeManual failover

    È possibile avviare manualmente il failover in qualsiasi momento, indipendentemente dalla configurazione del failover automatico.You can initiate failover manually at any time regardless of the automatic failover configuration. Se non sono configurati criteri di failover automatico, è necessario eseguire il failover manuale per ripristinare i database del gruppo di failover nell'area secondaria.If automatic failover policy is not configured, manual failover is required to recover databases in the failover group to the secondary. È possibile avviare il failover forzato o semplice (con sincronizzazione completa dei dati).You can initiate forced or friendly failover (with full data synchronization). Quest'ultimo può essere usato per rilocare il database primario nell'area secondaria.The latter could be used to relocate the primary to the secondary region. Quando il failover viene completato, i record DNS vengono aggiornati automaticamente per garantire la connettività al nuovo database primarioWhen failover is completed, the DNS records are automatically updated to ensure connectivity to the new primary

  • Periodo di tolleranza con perdita di datiGrace period with data loss

    Poiché i database primario e secondario vengono sincronizzati tramite la replica asincrona, il failover può comportare la perdita di dati.Because the primary and secondary databases are synchronized using asynchronous replication, the failover may result in data loss. È possibile personalizzare i criteri di failover automatico per riflettere la tolleranza dell'applicazione verso la perdita dei dati.You can customize the automatic failover policy to reflect your application’s tolerance to data loss. Configurando GracePeriodWithDataLossHours, è possibile controllare il tempo di attesa del sistema prima di avviare il failover che probabilmente causa la perdita di dati.By configuring GracePeriodWithDataLossHours, you can control how long the system waits before initiating the failover that is likely to result data loss.

  • Più gruppi di failoverMultiple failover groups

    È possibile configurare più gruppi di failover per la stessa coppia di server per controllare la scalabilità di failover.You can configure multiple failover groups for the same pair of servers to control the scale of failovers. Ogni gruppo esegue il failover in modo indipendente.Each group fails over independently. Se l'applicazione multi-tenant fa uso di pool elastici, è possibile usare questa funzionalità per combinare i database primari e secondari in ogni pool.If your multi-tenant application uses elastic pools, you can use this capability to mix primary and secondary databases in each pool. In questo modo è possibile ridurre l'impatto di un'interruzione a solo la metà dei tenant.This way you can reduce the impact of an outage to only half of the tenants.

    Nota

    Istanza gestita non supporta più gruppi di failover.Managed Instance does not support multiple failover groups.

AutorizzazioniPermissions

Le autorizzazioni per un gruppo di failover vengono gestite tramite il controllo degli accessi in base al ruolo (RBAC).Permissions for a failover group are managed via role-based access control (RBAC). Il ruolo collaboratore SQL Server dispone di tutte le autorizzazioni necessarie per gestire i gruppi di failover.The SQL Server Contributor role has all the necessary permissions to manage failover groups.

Crea gruppo di failoverCreate failover group

Per creare un gruppo di failover, è necessario l'accesso in scrittura RBAC ai server primari e secondari e a tutti i database nel gruppo di failover.To create a failover group, you need RBAC write access to both the primary and secondary servers, and to all databases in the failover group. Per un'istanza gestita, è necessario l'accesso in scrittura RBAC all'istanza gestita primaria e secondaria, ma le autorizzazioni per i singoli database non sono rilevanti perché i singoli database dell'istanza gestita non possono essere aggiunti o rimossi da un gruppo di failover.For a managed instance, you need RBAC write access to both the primary and secondary managed instance, but permissions on individual databases are not relevant since individual managed instance databases cannot be added to or removed from a failover group.

Aggiornare un gruppo di failoverUpdate a failover group

Per aggiornare un gruppo di failover, è necessario l'accesso in scrittura RBAC al gruppo di failover e a tutti i database nel server primario o nell'istanza gestita corrente.To update a failover group, you need RBAC write access to the failover group, and all databases on the current primary server or managed instance.

Failover di un gruppo di failoverFailover a failover group

Per eseguire il failover di un gruppo di failover, è necessario l'accesso in scrittura RBAC al gruppo di failover nel nuovo server primario o nell'istanza gestita.To fail over a failover group, you need RBAC write access to the failover group on the new primary server or managed instance.

Procedure consigliate per l'uso di gruppi di failover con database singoli e pool elasticiBest practices of using failover groups with single databases and elastic pools

Il gruppo di failover automatico deve essere configurato nel server di database SQL primario e lo connetterà al server di database SQL secondario in un'altra area di Azure.The auto-failover group must be configured on the primary SQL Database server and will connect it to the secondary SQL Database server in a different Azure region. I gruppi possono includere alcuni o tutti i database in questi server.The groups can include all or some databases in these servers. Il diagramma seguente illustra una configurazione tipica di un'applicazione cloud con ridondanza geografica con più database e un gruppo di failover automatico.The following diagram illustrates a typical configuration of a geo-redundant cloud application using multiple databases and auto-failover group.

failover automatico

Nota

Per un'esercitazione dettagliata sull'aggiunta di un singolo database a un gruppo di failover, vedere aggiungere un singolo database a un gruppo di failover .See Add single database to a failover group for a detailed step-by-step tutorial adding a single database to a failover group.

Quando si progetta un servizio facendo particolare attenzione alla continuità aziendale, seguire queste linee guida generali:When designing a service with business continuity in mind, follow these general guidelines:

  • Usare uno o più gruppi di failover per gestire il failover di più databaseUse one or several failover groups to manage failover of multiple databases

    È possibile creare uno o più gruppi di failover tra due server in aree diverse (server primario e secondario).One or many failover groups can be created between two servers in different regions (primary and secondary servers). Ogni gruppo può includere uno o più database che vengono ripristinati come unità nel caso in cui tutti o alcuni database primari diventino non disponibili a causa di un'interruzione nell'area primaria.Each group can include one or several databases that are recovered as a unit in case all or some primary databases become unavailable due to an outage in the primary region. Il gruppo di failover crea un database di replica geografica secondaria con lo stesso obiettivo di servizio di quello primario.The failover group creates geo-secondary database with the same service objective as the primary. Se si aggiunge una relazione di replica geografica esistente al gruppo di failover, verificare che il database di replica geografica secondario sia configurato con lo stesso livello di servizio e le stesse dimensioni di calcolo del database primario.If you add an existing geo-replication relationship to the failover group, make sure the geo-secondary is configured with the same service tier and compute size as the primary.

  • Usare il listener di lettura/scrittura per il carico di lavoro OLTPUse read-write listener for OLTP workload

    Quando si eseguono operazioni OLTP, usare <fog-name>.database.windows.net come URL del server per indirizzare automaticamente le connessioni al database primario.When performing OLTP operations, use <fog-name>.database.windows.net as the server URL and the connections are automatically directed to the primary. Questo URL non cambia dopo il failover.This URL does not change after the failover. Si noti che il failover comporta l'aggiornamento del record DNS in modo che le connessioni client vengano reindirizzate al nuovo database primario solo dopo l'aggiornamento della cache DNS del client.Note the failover involves updating the DNS record so the client connections are redirected to the new primary only after the client DNS cache is refreshed.

  • Usare il listener di sola lettura per il carico di lavoro di sola letturaUse read-only listener for read-only workload

    Se è presente un carico di lavoro di sola lettura isolato logicamente che tollera un certo grado di obsolescenza dei dati, è possibile usare il database secondario nell'applicazione.If you have a logically isolated read-only workload that is tolerant to certain staleness of data, you can use the secondary database in the application. Per sessioni di sola lettura usare <fog-name>.secondary.database.windows.net come URL del server per indirizzare automaticamente le connessioni al server secondario.For read-only sessions, use <fog-name>.secondary.database.windows.net as the server URL and the connection is automatically directed to the secondary. È inoltre consigliabile indicare la finalità di lettura della stringa di ApplicationIntent=ReadOnlyconnessione tramite.It is also recommended that you indicate in connection string read intent by using ApplicationIntent=ReadOnly. Per assicurarsi che il carico di lavoro di sola lettura possa riconnettersi dopo il failover o se il server secondario passa alla modalità offline, assicurarsi di configurare la AllowReadOnlyFailoverToPrimary proprietà dei criteri di failover.If you want to ensure that the read-only workload can reconnect after failover or in case the secondary server goes offline, make sure to configure the AllowReadOnlyFailoverToPrimary property of the failover policy.

  • Prepararsi a un calo delle prestazioniBe prepared for perf degradation

    La decisione di failover di SQL è indipendente dal resto dell'applicazione o dagli altri servizi usati.SQL failover decision is independent from the rest of the application or other services used. L'applicazione potrebbe essere "mista" con alcuni componenti in un'area e alcuni componenti in un'altra.The application may be “mixed” with some components in one region and some in another. Per evitare la riduzione delle prestazioni, verificare la distribuzione dell'applicazione ridondante nell'area di ripristino di emergenza e seguire queste linee guida sulla sicurezza di rete.To avoid the degradation, ensure the redundant application deployment in the DR region and follow these network security guidelines.

    Nota

    L'applicazione nell'area di ripristino di emergenza non deve usare una stringa di connessione diversa.The application in the DR region does not have to use a different connection string.

  • Prepararsi alla perdita di datiPrepare for data loss

    Se viene rilevata un'interruzione, SQL attende il periodo specificato da GracePeriodWithDataLossHours.If an outage is detected, SQL waits for the period you specified by GracePeriodWithDataLossHours. Il valore predefinito è 1 ora.The default value is 1 hour. Se non è possibile permettersi la perdita di dati, assicurarsi GracePeriodWithDataLossHours di impostare su un numero sufficientemente elevato, ad esempio 24 ore.If you cannot afford data loss, make sure to set GracePeriodWithDataLossHours to a sufficiently large number, such as 24 hours. Usare il failover manuale dei gruppi per eseguire il failback dal server secondario a quello primario.Use manual group failover to fail back from the secondary to the primary.

    Importante

    I pool elastici con 800 o meno DTU e più di 250 database con replica geografica possono riscontrare problemi quali failover pianificati più lunghi e un peggioramento delle prestazioni.Elastic pools with 800 or fewer DTUs and more than 250 databases using geo-replication may encounter issues including longer planned failovers and degraded performance. Questi problemi si verificano con maggiore probabilità nella scrittura di carichi di lavoro con utilizzo intensivo, quando gli endpoint con replica geografica sono ampiamente separati per area geografica o quando vengono utilizzati più endpoint secondari per ogni database.These issues are more likely to occur for write intensive workloads, when geo-replication endpoints are widely separated by geography, or when multiple secondary endpoints are used for each database. I sintomi di questi problemi emergono quando il ritardo della replica geografica aumenta nel tempo.Symptoms of these issues are indicated when the geo-replication lag increases over time. Questo ritardo può essere monitorato mediante sys.dm_geo_replication_link_status.This lag can be monitored using sys.dm_geo_replication_link_status. Se si verificano questi problemi, per prevenirli si può aumentare il numero di DTU nel pool o ridurre il numero di database replicati geograficamente nello stesso pool.If these issues occur, then mitigations include increasing the number of pool DTUs, or reducing the number of geo-replicated databases in the same pool.

Procedure consigliate per l'utilizzo di gruppi di failover con istanze gestiteBest practices of using failover groups with managed instances

Il gruppo di failover automatico deve essere configurato nell'istanza primaria e la connetterà all'istanza secondaria in un'altra area di Azure.The auto-failover group must be configured on the primary instance and will connect it to the secondary instance in a different Azure region. Tutti i database nell'istanza verranno replicati nell'istanza secondaria.All databases in the instance will be replicated to the secondary instance.

Il diagramma seguente illustra una configurazione tipica di un'applicazione cloud con ridondanza geografica con un'istanza gestita un gruppo di failover automatico.The following diagram illustrates a typical configuration of a geo-redundant cloud application using managed instance and auto-failover group.

failover automatico

Nota

Per un'esercitazione dettagliata sull'aggiunta di un'istanza gestita per l'uso del gruppo di failover, vedere aggiungere un'istanza gestita a un gruppo di failover .See Add managed instance to a failover group for a detailed step-by-step tutorial adding a managed instance to use failover group.

Se l'applicazione usa l'istanza gestita come livello dati, seguire queste linee guida generali durante la progettazione per la continuità aziendale:If your application uses managed instance as the data tier, follow these general guidelines when designing for business continuity:

  • Creare l'istanza secondaria nella stessa zona DNS dell'istanza primariaCreate the secondary instance in the same DNS zone as the primary instance

    Per garantire connettività ininterrotta all'istanza primaria dopo il failover, l'istanza primaria e l'istanza secondaria devono essere nella stessa zona DNS.To ensure non-interrupted connectivity to the primary instance after failover both the primary and secondary instances must be in the same DNS zone. Garantisce che lo stesso certificato di multidominio (SAN) possa essere utilizzato per autenticare le connessioni client a una delle due istanze del gruppo di failover.It will guarantee that the same multi-domain (SAN) certificate can be used to authenticate the client connections to either of the two instances in the failover group. Quando l'applicazione è pronta per la distribuzione in produzione, creare un'istanza secondaria in un'area diversa e assicurarsi che condivida la zona DNS con l'istanza primaria.When your application is ready for production deployment, create a secondary instance in a different region and make sure it shares the DNS zone with the primary instance. È possibile eseguire questa operazione specificando DNS Zone Partner un parametro facoltativo usando il portale di Azure, PowerShell o l'API REST.You can do it by specifying a DNS Zone Partner optional parameter using the Azure portal, PowerShell, or the REST API.

Importante

La prima istanza creata nella subnet determina la zona DNS per tutte le istanze successive nella stessa subnet.First instance created in the subnet determines DNS zone for all subsequent instances in the same subnet. Ciò significa che due istanze della stessa subnet non possono appartenere a zone DNS diverse.This means that two instances from the same subnet cannot belong to different DNS zones.

Per ulteriori informazioni sulla creazione dell'istanza secondaria nella stessa zona DNS dell'istanza primaria, vedere creare un'istanza gestita secondaria.For more information about creating the secondary instance in the same DNS zone as the primary instance, see Create a secondary managed instance.

  • Consentire il traffico di replica tra due istanzeEnable replication traffic between two instances

    Poiché ogni istanza è isolata nella propria rete virtuale, è necessario consentire il traffico bidirezionale tra queste reti virtuali.Because each instance is isolated in its own VNet, two-directional traffic between these VNets must be allowed. Vedere Gateway VPN di AzureSee Azure VPN gateway

  • Creazione di un gruppo di failover tra istanze gestite in sottoscrizioni diverseCreate a failover group between managed instances in different subscriptions

    È possibile creare un gruppo di failover tra istanze gestite in due sottoscrizioni diverse.You can create a failover group between managed instances in two different subscriptions. Quando si usa l'API di PowerShell, è possibile eseguire PartnerSubscriptionId questa operazione specificando il parametro per l'istanza secondaria.When using PowerShell API you can do it by specifying the PartnerSubscriptionId parameter for the secondary instance. Quando si usa l' properties.managedInstancePairs API REST, ogni ID istanza incluso nel parametro può avere un proprio subscriptionID.When using REST API, each instance ID included in the properties.managedInstancePairs parameter can have its own subscriptionID.

    Importante

    Il portale di Azure non supporta i gruppi di failover tra sottoscrizioni diverse.Azure Portal does not support failover groups across different subscriptions.

  • Configurare un gruppo di failover per gestire il failover dell'intera istanzaConfigure a failover group to manage failover of entire instance

    Il gruppo di failover gestisce il failover di tutti i database nell'istanza.The failover group will manage the failover of all the databases in the instance. Quando viene creato un gruppo, ogni database nell'istanza sarà automaticamente sottoposto a replica geografica nell'istanza secondaria.When a group is created, each database in the instance will be automatically geo-replicated to the secondary instance. Non è possibile usare gruppi di failover per avviare un failover parziale di un subset dei database.You cannot use failover groups to initiate a partial failover of a subset of the databases.

    Importante

    Se un database viene rimosso dall'istanza primaria, l'operazione verrà automaticamente riflessa anche nell'istanza secondaria.If a database is removed from the primary instance, it will also be dropped automatically on the geo secondary instance.

  • Usare il listener di lettura/scrittura per il carico di lavoro OLTPUse read-write listener for OLTP workload

    Quando si eseguono operazioni OLTP, usare <fog-name>.zone_id.database.windows.net come URL del server per indirizzare automaticamente le connessioni al database primario.When performing OLTP operations, use <fog-name>.zone_id.database.windows.net as the server URL and the connections are automatically directed to the primary. Questo URL non cambia dopo il failover.This URL does not change after the failover. Il failover comporta l'aggiornamento del record DNS in modo che le connessioni client vengano reindirizzate al nuovo database primario solo dopo l'aggiornamento della cache DNS del client.The failover involves updating the DNS record, so the client connections are redirected to the new primary only after the client DNS cache is refreshed. Poiché l'istanza secondaria condivide la zona DNS con la replica primaria, l'applicazione client sarà in grado di riconnetterla utilizzando lo stesso certificato SAN.Because the secondary instance shares the DNS zone with the primary, the client application will be able to reconnect to it using the same SAN certificate.

  • Connettersi direttamente al database secondario con replica geografica per le query di sola letturaConnect directly to geo-replicated secondary for read-only queries

    Se è presente un carico di lavoro di sola lettura isolato logicamente che tollera un certo grado di obsolescenza dei dati, è possibile usare il database secondario nell'applicazione.If you have a logically isolated read-only workload that is tolerant to certain staleness of data, you can use the secondary database in the application. Per connettersi direttamente al database secondario con replica geografica, usare server.secondary.zone_id.database.windows.net come URL del server.To connect directly to the geo-replicated secondary, use server.secondary.zone_id.database.windows.net as the server URL and the connection is made directly to the geo-replicated secondary.

    Nota

    In determinati livelli di servizio il database SQL di Azure supporta l'uso di repliche di sola lettura per bilanciare i carichi di lavoro di query di sola lettura usando la capacità di una replica di sola lettura e il parametro ApplicationIntent=ReadOnly nella stringa di connessione.In certain service tiers, Azure SQL Database supports the use of read-only replicas to load balance read-only query workloads using the capacity of one read-only replica and using the ApplicationIntent=ReadOnly parameter in the connection string. Dopo aver configurato un database secondario con replica geografica, sarà possibile usare questa funzionalità per connettersi a una replica di sola lettura nella posizione primaria o nella posizione con replica geografica.When you have configured a geo-replicated secondary, you can use this capability to connect to either a read-only replica in the primary location or in the geo-replicated location.

    • Per connettersi a una replica di sola lettura nella posizione con replica geografica, usare <fog-name>.zone_id.database.windows.net.To connect to a read-only replica in the primary location, use <fog-name>.zone_id.database.windows.net.
    • Per connettersi a una replica di sola lettura nella posizione secondaria, usare <fog-name>.secondary.zone_id.database.windows.net.To connect to a read-only replica in the secondary location, use <fog-name>.secondary.zone_id.database.windows.net.
  • Prepararsi a un calo delle prestazioniBe prepared for perf degradation

    La decisione di failover di SQL è indipendente dal resto dell'applicazione o dagli altri servizi usati.SQL failover decision is independent from the rest of the application or other services used. L'applicazione potrebbe essere "mista" con alcuni componenti in un'area e alcuni componenti in un'altra.The application may be “mixed” with some components in one region and some in another. Per evitare la riduzione delle prestazioni, verificare la distribuzione dell'applicazione ridondante nell'area di ripristino di emergenza e seguire queste linee guida sulla sicurezza di rete.To avoid the degradation, ensure the redundant application deployment in the DR region and follow these network security guidelines.

  • Prepararsi alla perdita di datiPrepare for data loss

    Se viene rilevata un'interruzione del servizio, SQL attiva automaticamente il failover di lettura/scrittura nel caso in cui la perdita di dati è nulla al meglio delle nostre conoscenze.If an outage is detected, SQL automatically triggers read-write failover if there is zero data loss to the best of our knowledge. In caso contrario, attende il periodo specificato da GracePeriodWithDataLossHours.Otherwise, it waits for the period you specified by GracePeriodWithDataLossHours. Se è stato specificato GracePeriodWithDataLossHours, potrebbe verificarsi una perdita di dati.If you specified GracePeriodWithDataLossHours, be prepared for data loss. Durante le interruzioni del servizio, generalmente Azure predilige la disponibilità.In general, during outages, Azure favors availability. Se non ci si può permettere una perdita di dati, assicurarsi di impostare GracePeriodWithDataLossHours su un numero sufficientemente elevato, ad esempio 24 ore.If you cannot afford data loss, make sure to set GracePeriodWithDataLossHours to a sufficiently large number, such as 24 hours.

    Subito dopo l'avvio del failover si verificherà l'aggiornamento DNS del listener di lettura/scrittura.The DNS update of the read-write listener will happen immediately after the failover is initiated. Questa operazione non comporta la perdita di dati.This operation will not result in data loss. Tuttavia, il processo di scambio dei ruoli del database può richiedere fino a 5 minuti in condizioni normali.However, the process of switching database roles can take up to 5 minutes under normal conditions. Durante il processo alcuni database nella nuova istanza primaria rimarranno di sola lettura.Until it is completed, some databases in the new primary instance will still be read-only. Se il failover viene avviato con PowerShell, l'intera operazione è sincrona.If failover is initiated using PowerShell, the entire operation is synchronous. Se viene avviata usando il portale di Azure, l'interfaccia utente indicherà lo stato di completamento.If it is initiated using the Azure portal, the UI will indicate completion status. Se viene avviato mediante l'API REST, usare il meccanismo di polling standard di Azure Resource Manager per il monitoraggio del completamento.If it is initiated using the REST API, use standard Azure Resource Manager’s polling mechanism to monitor for completion.

    Importante

    Usare il failover manuale dei gruppi per ripristinare i database primari nella posizione originale.Use manual group failover to move primaries back to the original location. Quando viene risolta l'interruzione del servizio che ha determinato il failover, sarà possibile spostare i database primari nel percorso originale.When the outage that caused the failover is mitigated, you can move your primary databases to the original location. A tale scopo è necessario avviare il failover manuale del gruppo.To do that you should initiate the manual failover of the group.

  • Confermare le limitazioni note dei gruppi di failoverAcknowledge known limitations of failover groups

    La ridenominazione del database e il ridimensionamento dell'istanza non sono supportati per le istanze nel gruppo di failover.Database rename and instance resize are not supported for instances in failover group. Sarà necessario eliminare temporaneamente il gruppo di failover per poter eseguire queste operazioni.You will need to temporarily delete failover group to be able to preform these actions.

Gruppi di failover e sicurezza di reteFailover groups and network security

Per alcune applicazioni, le regole di sicurezza richiedono che l'accesso di rete al livello dati sia limitato a uno o più componenti specifici, ad esempio una macchina virtuale, un servizio Web e così via. Questo requisito pone alcune problematiche relative alla progettazione della continuità aziendale e all'uso dei gruppi di failover.For some applications the security rules require that the network access to the data tier is restricted to a specific component or components such as a VM, web service etc. This requirement presents some challenges for business continuity design and the use of the failover groups. Quando si implementa tale accesso limitato, tenere presenti le opzioni seguenti.Consider the following options when implementing such restricted access.

Uso dei gruppi di failover e delle regole di rete virtualeUsing failover groups and virtual network rules

Se si usano endpoint servizio e regole di rete virtuale per limitare l'accesso al database SQL, tenere presente che ogni endpoint servizio di rete virtuale si applica a una sola area geografica di Azure.If you are using Virtual Network service endpoints and rules to restrict access to your SQL database, be aware that Each Virtual Network service endpoint applies to only one Azure region. L'endpoint non consente ad altre aree di accettare le comunicazioni dalla subnet.The endpoint does not enable other regions to accept communication from the subnet. Pertanto, solo le applicazioni client distribuite nella stessa area possono connettersi al database primario.Therefore, only the client applications deployed in the same region can connect to the primary database. Poiché il failover ha per effetto il reindirizzamento delle sessioni client SQL a un server presente in un'altra area geografica (secondaria), tali sessioni avranno esito negativo se hanno avuto origine da un client al di fuori di tale area.Since the failover results in the SQL client sessions being rerouted to a server in a different (secondary) region, these sessions will fail if originated from a client outside of that region. Per questo motivo non è possibile abilitare i criteri di failover automatico se i server partecipanti sono inclusi nelle regole di rete virtuale.For that reason, the automatic failover policy cannot be enabled if the participating servers are included in the Virtual Network rules. Per supportare il failover manuale, seguire questa procedura:To support manual failover, follow these steps:

  1. Effettuare il provisioning delle copie ridondanti dei componenti front-end dell'applicazione (servizio Web, macchine virtuali e così via) nell'area secondariaProvision the redundant copies of the front-end components of your application (web service, virtual machines etc.) in the secondary region
  2. Configurare le regole di rete virtuale singolarmente per il server primario e per quello secondarioConfigure the virtual network rules individually for primary and secondary server
  3. Abilitare il failover front-end usando una configurazione di Gestione trafficoEnable the front-end failover using a Traffic manager configuration
  4. Avviare il failover manuale quando viene rilevata l'interruzione.Initiate manual failover when the outage is detected. Questa opzione è ottimizzata per le applicazioni che richiedono la latenza coerente tra il front-end e il livello dati e supporta il ripristino quando il front-end, il livello dati o entrambi sono interessati dall'interruzione del servizio.This option is optimized for the applications that require consistent latency between the front-end and the data tier and supports recovery when either front end, data tier or both are impacted by the outage.

Nota

Se si usa il listener di sola lettura per il bilanciamento di un carico di lavoro di sola lettura, assicurarsi che il carico di lavoro venga eseguito in una macchina virtuale o in un'altra risorsa nell'area secondaria in modo da consentire la connessione al database secondario.If you are using the read-only listener to load-balance a read-only workload, make sure that this workload is executed in a VM or other resource in the secondary region so it can connect to the secondary database.

Uso dei gruppi di failover e delle regole del firewall del database SQLUsing failover groups and SQL database firewall rules

Se il piano di continuità aziendale richiede il failover tramite gruppi con failover automatico, è possibile limitare l'accesso al database SQL usando le regole del firewall tradizionali.If your business continuity plan requires failover using groups with automatic failover, you can restrict access to your SQL database using the traditional firewall rules. Per supportare il failover automatico, seguire questa procedura:To support automatic failover, follow these steps:

  1. Creare un indirizzo IP pubblico.Create a public IP
  2. Creare un servizio di bilanciamento del carico pubblico e assegnare l'indirizzo IP pubblico a tale servizio.Create a public load balancer and assign the public IP to it.
  3. Creare una rete virtuale e le macchine virtuali per i componenti front-end.Create a virtual network and the virtual machines for your front-end components
  4. Creare un gruppo di sicurezza di rete e configurare le connessioni in ingresso.Create network security group and configure inbound connections.
  5. Assicurarsi che le connessioni in uscita siano aperte al database SQL di Azure usando il tag di servizio 'Sql'.Ensure that the outbound connections are open to Azure SQL database by using ‘Sql’ service tag.
  6. Creare un regola del firewall del database SQL per consentire il traffico in ingresso dall'indirizzo IP pubblico creato nel passaggio 1.Create a SQL database firewall rule to allow inbound traffic from the public IP address you create in step 1.

Per altre informazioni su come configurare l'accesso in uscita e su quale indirizzo IP usare nelle regole del firewall, vedere Connessioni in uscita del servizio di bilanciamento del carico.For more information about on how to configure outbound access and what IP to use in the firewall rules, see Load balancer outbound connections.

La configurazione appena illustrata garantisce che il failover automatico non blocchi le connessioni tra i componenti front-end e presuppone che l'applicazione riesca a tollerare una maggiore latenza tra il front-end e il livello dati.The above configuration will ensure that the automatic failover will not block connections from the front-end components and assumes that the application can tolerate the longer latency between the front end and the data tier.

Importante

Per garantire la continuità aziendale nel caso di interruzioni del servizio a livello di area è necessario verificare la ridondanza geografica sia per i componenti front-end che per i database.To guarantee business continuity for regional outages you must ensure geographic redundancy for both front-end components and the databases.

Abilitazione della replica geografica tra le istanze gestite e i relativi reti virtualiEnabling geo-replication between managed instances and their VNets

Quando si configura un gruppo di failover tra istanze gestite primarie e secondarie in due aree diverse, ogni istanza viene isolata usando una rete virtuale indipendente.When you set up a failover group between primary and secondary managed instances in two different regions, each instance is isolated using an independent virtual network. Per consentire il traffico di replica tra questi reti virtuali, verificare che siano soddisfatti i prerequisiti seguenti:To allow replication traffic between these VNets ensure these prerequisites are met:

  1. Le due istanze gestite devono trovarsi in aree di Azure diverse.The two managed instances need to be in different Azure regions.

  2. È necessario che le due istanze gestite siano lo stesso livello di servizio e abbiano le stesse dimensioni di archiviazione.The two managed instances need to be the same service tier, and have the same storage size.

  3. L'istanza gestita secondaria deve essere vuota (nessun database utente).Your secondary managed instance must be empty (no user databases).

  4. Le reti virtuali usate dalle istanze gestite devono essere connesse tramite un gateway VPN o Express route.The virtual networks used by the managed instances need to be connected through a VPN Gateway or Express Route. Quando due reti virtuali si connettono tramite una rete locale, assicurarsi che non siano presenti porte di blocco della regola firewall 5022 e 11000-11999.When two virtual networks connect through an on-premises network, ensure there is no firewall rule blocking ports 5022, and 11000-11999. Il peering di reti virtuali globale non è supportato.Global VNet Peering is not supported.

  5. I due reti virtuali istanza gestita non possono avere indirizzi IP sovrapposti.The two managed instance VNets cannot have overlapping IP addresses.

  6. È necessario configurare i gruppi di sicurezza di rete (NSG) in modo che le porte 5022 e l'intervallo 11000 ~ 12000 siano aperte in ingresso e in uscita per le connessioni dall'altra subnet istanza gestita.You need to set up your Network Security Groups (NSG) such that ports 5022 and the range 11000~12000 are open inbound and outbound for connections from the other managed instanced subnet. per consentire il traffico di replica tra le istanzeThis is to allow replication traffic between the instances

    Importante

    Regole di sicurezza dei gruppi di sicurezza di rete non configurate correttamente determinano il blocco delle operazioni di copia del database.Misconfigured NSG security rules leads to stuck database copy operations.

  7. L'istanza secondaria è configurata con l'ID della zona DNS corretto.The secondary instance is configured with the correct DNS zone ID. La zona DNS è una proprietà di un'istanza gestita e il relativo ID è incluso nell'indirizzo del nome host.DNS zone is a property of a managed instance and its ID is included in the host name address. L'ID zona viene generato come stringa casuale quando la prima istanza gestita viene creata in ogni VNet e lo stesso ID viene assegnato a tutte le altre istanze nella stessa subnet.The zone ID is generated as a random string when the first managed instance is created in each VNet and the same ID is assigned to all other instances in the same subnet. Una volta assegnato, la zona DNS non può essere modificata.Once assigned, the DNS zone cannot be modified. Le istanze gestite incluse nello stesso gruppo di failover devono condividere la zona DNS.Managed instances included in the same failover group must share the DNS zone. A tale scopo, passare l'ID zona dell'istanza primaria come valore del parametro DnsZonePartner durante la creazione dell'istanza secondaria.You accomplish this by passing the primary instance's zone ID as the value of DnsZonePartner parameter when creating the secondary instance.

    Nota

    Per un'esercitazione dettagliata sulla configurazione di gruppi di failover con istanza gestita, vedere aggiungere un'istanza gestita a un gruppo di failover.For a detailed tutorial on configuring failover groups with managed instance, see add a managed instance to a failover group.

Aggiornamento o downgrade di un database primarioUpgrading or downgrading a primary database

È possibile eseguire l'aggiornamento o il downgrade di un database primario a dimensioni di calcolo diverse (entro lo stesso livello di servizio e non tra il livello per utilizzo generico e business critical) senza disconnettere eventuali database secondari.You can upgrade or downgrade a primary database to a different compute size (within the same service tier, not between General Purpose and Business Critical) without disconnecting any secondary databases. Quando si esegue l'aggiornamento, è consigliabile aggiornare prima tutti i database secondari, quindi aggiornare il database primario.When upgrading, we recommend that you upgrade all of the secondary databases first, and then upgrade the primary. Quando si esegue il downgrade, invertire l'ordine: eseguire prima il downgrade del primario, quindi eseguire il downgrade di tutti i database secondari.When downgrading, reverse the order: downgrade the primary first, and then downgrade all of the secondary databases. Quando si aggiorna o si effettua il downgrade del database a un livello di servizio diverso, viene applicata questa raccomandazione.When you upgrade or downgrade the database to a different service tier, this recommendation is enforced.

Questa sequenza è consigliata in modo specifico per evitare il problema per cui il database secondario in uno SKU inferiore viene sottoposto a overload e deve essere reinizializzato durante un processo di aggiornamento o di downgrade.This sequence is recommended specifically to avoid the problem where the secondary at a lower SKU gets overloaded and must be reseeded during an upgrade or downgrade process. È anche possibile evitare il problema rendendo la replica primaria di sola lettura, a scapito dell'effetto di tutti i carichi di lavoro di lettura/scrittura sul database primario.You could also avoid the problem by making the primary read-only, at the expense of impacting all read-write workloads against the primary.

Nota

Se è stato creato il database secondario come parte della configurazione del gruppo di failover, non è consigliabile eseguire il downgrade del database secondario.If you created secondary database as part of the failover group configuration it is not recommended to downgrade the secondary database. In questo modo si garantisce che il livello dei dati abbia una capacità sufficiente per elaborare il carico di lavoro normale dopo che il failover viene attivato.This is to ensure your data tier has sufficient capacity to process your regular workload after failover is activated.

Importante

L'aggiornamento o il downgrade di un Istanza gestita che è membro di un gruppo di failover non è al momento supportato.Upgrading or downgrading a Managed Instance which is a member of a failover group is currently not supported.

Evitare la perdita di dati criticiPreventing the loss of critical data

A causa della latenza elevata delle reti WAN, per la copia continua viene usato un meccanismo di replica asincrona.Due to the high latency of wide area networks, continuous copy uses an asynchronous replication mechanism. La replica asincrona rende inevitabile una perdita parziale dei dati nel caso si verifichi un problema.Asynchronous replication makes some data loss unavoidable if a failure occurs. Tuttavia, alcune applicazione potrebbero non essere soggette alla perdita dei dati.However, some applications may require no data loss. Per proteggere questi aggiornamenti critici, uno sviluppatore di applicazioni può chiamare la procedura di sistema sp_wait_for_database_copy_sync subito dopo il commit della transazione.To protect these critical updates, an application developer can call the sp_wait_for_database_copy_sync system procedure immediately after committing the transaction. La sp_wait_for_database_copy_sync chiamata a blocca il thread chiamante finché l'ultima transazione di cui è stato eseguito il commit non è stata trasmessa al database secondario.Calling sp_wait_for_database_copy_sync blocks the calling thread until the last committed transaction has been transmitted to the secondary database. Tuttavia, non attende che le transazioni trasmesse vengano riprodotta e che ne venga eseguito il commit nel database secondario.However, it does not wait for the transmitted transactions to be replayed and committed on the secondary. sp_wait_for_database_copy_syncha come ambito un collegamento di copia continua specifico.sp_wait_for_database_copy_sync is scoped to a specific continuous copy link. La procedura può essere chiamata da qualsiasi utente che abbia diritti di connessione al database primario.Any user with the connection rights to the primary database can call this procedure.

Nota

sp_wait_for_database_copy_syncimpedisce la perdita di dati dopo il failover, ma non garantisce la sincronizzazione completa per l'accesso in lettura.sp_wait_for_database_copy_sync prevents data loss after failover, but does not guarantee full synchronization for read access. Il ritardo causato da una sp_wait_for_database_copy_sync chiamata di routine può essere significativo e dipende dalle dimensioni del log delle transazioni al momento della chiamata.The delay caused by a sp_wait_for_database_copy_sync procedure call can be significant and depends on the size of the transaction log at the time of the call.

Gruppi di failover e ripristino temporizzatoFailover groups and point-in-time restore

Per informazioni sull'uso del ripristino temporizzato con gruppi di failover, vedere Point in Time Recovery (PITR) (Recupero temporizzato).For information about using point-in-time restore with failover groups, see Point in Time Recovery (PITR).

Gestione di gruppi di failover a livello di codiceProgrammatically managing failover groups

Come indicato in precedenza, i gruppi di failover automatico e la replica geografica attiva possono essere gestiti a livello di codice usando Azure PowerShell e l'API REST.As discussed previously, auto-failover groups and active geo-replication can also be managed programmatically using Azure PowerShell and the REST API. Le tabelle seguenti descrivono il set di comandi disponibili.The following tables describe the set of commands available. La replica geografica attiva include un set di API di Azure Resource Manager per la gestione, compresa l'API REST del Database SQL di Azure e i cmdlet di Azure PowerShell.Active geo-replication includes a set of Azure Resource Manager APIs for management, including the Azure SQL Database REST API and Azure PowerShell cmdlets. Queste API richiedono l'uso di gruppi di risorse e supportano la sicurezza basata sui ruoli (Controllo degli accessi in base al ruolo).These APIs require the use of resource groups and support role-based security (RBAC). Per altre informazioni su come implementare i ruoli di accesso, vedere Controllo degli accessi in base al ruolo di Azure.For more information on how to implement access roles, see Azure Role-Based Access Control.

PowerShell: Gestire il failover del database SQL con database singoli e pool elasticiPowerShell: Manage SQL database failover with single databases and elastic pools

CmdletCmdlet DescrizioneDescription
New-AzSqlDatabaseFailoverGroupNew-AzSqlDatabaseFailoverGroup Questo comando crea un gruppo di failover e lo registra nei server primario e secondarioThis command creates a failover group and registers it on both primary and secondary servers
Remove-AzSqlDatabaseFailoverGroupRemove-AzSqlDatabaseFailoverGroup Rimuove il gruppo di failover dal server ed elimina tutti i database secondari incluso il gruppoRemoves the failover group from the server and deletes all secondary databases included the group
Get-AzSqlDatabaseFailoverGroupGet-AzSqlDatabaseFailoverGroup Recupera la configurazione del gruppo di failoverRetrieves the failover group configuration
Set-AzSqlDatabaseFailoverGroupSet-AzSqlDatabaseFailoverGroup Modifica la configurazione del gruppo di failoverModifies the configuration of the failover group
Switch-AzSqlDatabaseFailoverGroupSwitch-AzSqlDatabaseFailoverGroup Attiva il failover del gruppo di failover per il server secondarioTriggers failover of the failover group to the secondary server
Add-AzSqlDatabaseToFailoverGroupAdd-AzSqlDatabaseToFailoverGroup Aggiunge uno o più database a un gruppo di failover del database SQL di AzureAdds one or more databases to an Azure SQL Database failover group

Importante

Per uno script di esempio, vedere Configure and failover a failover group for a single database (Configurare ed eseguire il failover di un gruppo di failover per un singolo database).For a sample script, see Configure and failover a failover group for a single database.

PowerShell: Gestione dei gruppi di failover del database SQL con istanze gestitePowerShell: Managing SQL database failover groups with managed instances

CmdletCmdlet DescrizioneDescription
New-AzSqlDatabaseInstanceFailoverGroupNew-AzSqlDatabaseInstanceFailoverGroup Questo comando crea un gruppo di failover e lo registra nei server primario e secondarioThis command creates a failover group and registers it on both primary and secondary servers
Set-AzSqlDatabaseInstanceFailoverGroupSet-AzSqlDatabaseInstanceFailoverGroup Modifica la configurazione del gruppo di failoverModifies the configuration of the failover group
Get-AzSqlDatabaseInstanceFailoverGroupGet-AzSqlDatabaseInstanceFailoverGroup Recupera la configurazione del gruppo di failoverRetrieves the failover group configuration
Switch-AzSqlDatabaseInstanceFailoverGroupSwitch-AzSqlDatabaseInstanceFailoverGroup Attiva il failover del gruppo di failover per il server secondarioTriggers failover of the failover group to the secondary server
Remove-AzSqlDatabaseInstanceFailoverGroupRemove-AzSqlDatabaseInstanceFailoverGroup Rimuove un gruppo di failoverRemoves a failover group

API REST: Gestire gruppi di failover del database SQL con database singoli e in poolREST API: Manage SQL database failover groups with single and pooled databases

APIAPI DescrizioneDescription
Create or Update Failover GroupCreate or Update Failover Group Crea o aggiorna un gruppo di failover.Creates or updates a failover group
Delete Failover GroupDelete Failover Group Rimuove il gruppo di failover dal serverRemoves the failover group from the server
Failover (Planned)Failover (Planned) Viene eseguito il failover dal server primario corrente a questo server.Fails over from the current primary server to this server.
Force Failover Allow Data LossForce Failover Allow Data Loss Viene eseguito il failover dal server primario corrente a questo server.ails over from the current primary server to this server. Questa operazione potrebbe comportare la perdita di dati.This operation might result in data loss.
Get Failover GroupGet Failover Group Crea un gruppo di failover.Gets a failover group.
List Failover Groups By ServerList Failover Groups By Server Elenca i gruppi di failover in un server.Lists the failover groups in a server.
Update Failover GroupUpdate Failover Group Aggiorna un gruppo di failover.Updates a failover group.

API REST: Gestire i gruppi di failover con istanze gestiteREST API: Manage failover groups with Managed Instances

APIAPI DescrizioneDescription
Create or Update Failover GroupCreate or Update Failover Group Crea o aggiorna un gruppo di failover.Creates or updates a failover group
Delete Failover GroupDelete Failover Group Rimuove il gruppo di failover dal serverRemoves the failover group from the server
Failover (Planned)Failover (Planned) Viene eseguito il failover dal server primario corrente a questo server.Fails over from the current primary server to this server.
Force Failover Allow Data LossForce Failover Allow Data Loss Viene eseguito il failover dal server primario corrente a questo server.ails over from the current primary server to this server. Questa operazione potrebbe comportare la perdita di dati.This operation might result in data loss.
Get Failover GroupGet Failover Group Crea un gruppo di failover.Gets a failover group.
List Failover Groups - List By LocationList Failover Groups - List By Location Elenca i gruppi di failover in una posizione.Lists the failover groups in a location.

Passaggi successiviNext steps