Configurare il backup su repliche di disponibilità (SQL Server)Configure Backup on Availability Replicas (SQL Server)

Questo argomento descrive come configurare il backup in repliche secondarie per un gruppo di disponibilità Always On usando SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQLo PowerShell in SQL Server 2017SQL Server 2017.This topic describes how to configure backup on secondary replicas for an Always On availability group by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or PowerShell in SQL Server 2017SQL Server 2017.

Nota

Per altre informazioni sul backup in repliche secondarie, vedere Repliche secondarie attive: Backup in repliche secondarie (gruppi di disponibilità Always On).For an introduction to backup on secondary replicas, see Active Secondaries: Backup on Secondary Replicas (Always On Availability Groups).

Prima di iniziare Before You Begin

Prerequisiti Prerequisites

È necessario essere connessi all'istanza del server che ospita la replica primaria.You must be connected to the server instance that hosts the primary replica.

Sicurezza Security

Autorizzazioni Permissions

AttivitàTask AutorizzazioniPermissions
Per configurare il backup delle repliche secondarie in caso di creazione di un gruppo di disponibilitàTo configure backup on secondary replicas when creating an availability group Sono necessarie l'appartenenza al ruolo predefinito del server sysadmin e l'autorizzazione server CREATE AVAILABILITY GROUP oppure l'autorizzazione ALTER ANY AVAILABILITY GROUP o CONTROL SERVER.Requires membership in the sysadmin fixed server role and either CREATE AVAILABILITY GROUP server permission, ALTER ANY AVAILABILITY GROUP permission, or CONTROL SERVER permission.
Per modificare un gruppo di disponibilità o una replica di disponibilitàTo modify an availability group or availability replica È necessaria l'autorizzazione ALTER AVAILABILITY GROUP nel gruppo di disponibilità, l'autorizzazione CONTROL AVAILABILITY GROUP, l'autorizzazione ALTER ANY AVAILABILITY GROUP o l'autorizzazione CONTROL SERVER.Requires ALTER AVAILABILITY GROUP permission on the availability group, CONTROL AVAILABILITY GROUP permission, ALTER ANY AVAILABILITY GROUP permission, or CONTROL SERVER permission.

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Per configurare il backup delle repliche secondarieTo configure backup on secondary replicas

  1. In Esplora oggetti connettersi all'istanza del server in cui viene ospitata la replica primaria e fare clic sul nome del server per espandere il relativo albero.In Object Explorer, connect to the server instance that hosts the primary replica, and click the server name to expand the server tree.

  2. Espandere il nodo Disponibilità elevata Always On e il nodo Gruppi di disponibilità .Expand the Always On High Availability node and the Availability Groups node.

  3. Fare clic sul gruppo di disponibilità di cui si desidera configurare le preferenze di backup e scegliere il comando Proprietà .Click the availability group whose backup preferences you want to configure, and select the Properties command.

  4. Nella finestra di dialogo Proprietà gruppo di disponibilità selezionare Preferenze di backup .In the Availability Group Properties dialog box, select Backup Preferences page.

  5. Nel pannello Specificare la destinazione dei backup selezionare la preferenza di backup automatico per il gruppo di disponibilità, scegliendo una delle seguenti opzioni:On the Where should backups occur? panel, select the automated backup preference for the availability group, one of:

    Preferisco secondarioPrefer Secondary
    Specifica che i backup devono essere eseguiti su una replica secondaria tranne quando la replica primaria è l'unica replica online.Specifies that backups should occur on a secondary replica except when the primary replica is the only replica online. In tal caso il backup deve essere eseguito sulla replica primaria.In that case, the backup should occur on the primary replica. Si tratta dell'opzione predefinita.This is the default option.

    Solo secondariaSecondary only
    Specifica che i backup non devono mai essere eseguiti sulla replica primaria.Specifies that backups should never be performed on the primary replica. Se la replica primaria è l'unica replica online, il backup non viene eseguito.If the primary replica is the only replica online, the backup should not occur.

    PrimariaPrimary
    Specifica che i backup devono essere sempre eseguiti sulla replica primaria.Specifies that the backups should always occur on the primary replica. Questa opzione è utile se sono necessarie funzionalità di backup, ad esempio la creazione di backup differenziali, che non sono supportate quando il backup viene eseguito su una replica secondaria.This option is useful if you need backup features, such as creating differential backups, that are not supported when backup is run on a secondary replica.

    Importante

    Se si intende usare il log shipping per preparare un qualsiasi database secondario per un gruppo di disponibilità, impostare la preferenza di backup automatico su Primario finché tutti i database secondari non saranno stati preparati e uniti in join al gruppo di disponibilità.If you plan to use log shipping to prepare any secondary databases for an availability group, set the automated backup preference to Primary until all the secondary databases have been prepared and joined to the availability group.

    Qualsiasi replicaAny Replica
    Specifica che si preferisce che i processi di backup ignorino il ruolo delle repliche di disponibilità nella scelta della replica per l'esecuzione dei backup.Specifies that you prefer that backup jobs ignore the role of the availability replicas when choosing the replica to perform backups. Si noti che i processi di backup potrebbero valutare altri fattori, ad esempio la priorità di backup di ogni replica di disponibilità in combinazione con lo stato operativo e lo stato connesso.Note backup jobs might evaluate other factors such as backup priority of each availability replica in combination with its operational state and connected state.

    Importante

    Non è prevista l'applicazione dell'impostazione relativa alle preferenze di backup automatico.There is no enforcement of the automated backup preference setting. L'interpretazione di questa preferenza dipende dall'eventuale logica su cui si basano gli script dei processi di backup per i database in un determinato gruppo di disponibilità.The interpretation of this preference depends on the logic, if any, that you script into backup jobs for the databases in a given availability group. L'impostazione relativa alle preferenze di backup automatico non incide sui backup ad hoc.The automated backup preference setting has no impact on ad-hoc backups. Per ulteriori informazioni, vedere Completamento: Dopo avere configurato il backup su repliche secondarie più avanti in questo argomento.For more information, see see Follow Up: After Configuring Backup on Secondary Replicas later in this topic.

  6. Utilizzare la griglia Priorità di backup replica per modificare la priorità di backup delle repliche di disponibilità.Use the Replica backup priorities grid to change the backup priority of the availability replicas. In questa griglia è indicata la priorità di backup corrente di ogni istanza del server che ospita una replica per il gruppo di disponibilità.This grid displays the current backup priority of each server instance that hosts a replica for the availability group. Le colonne della griglia sono le seguenti:The grid columns are as follows:

    Istanza del serverServer Instance
    Nome dell'istanza di SQL ServerSQL Server che ospita la replica di disponibilità.The name of the instance of SQL ServerSQL Server that hosts the availability replica.

    Priorità di backup (Più bassa=1, Più alta=100)Backup Priority (Lowest=1, Highest=100)
    Specifica la priorità di esecuzione dei backup nella replica rispetto alle altre repliche nello stesso gruppo di disponibilità.Specifies your priority for performing backups on this replica relative to the other replicas in the same availability group. Il valore è un numero intero compreso nell'intervallo 0-100.The value is an integer in the range of 0..100. 1 indica la priorità più bassa e 100 indica la priorità più alta.1 indicates the lowest priority, and 100 indicates the highest priority. Se Priorità di backup = 1, la replica di disponibilità viene scelta per l'esecuzione dei backup solo se non sono disponibili repliche di disponibilità con priorità più alta.If Backup Priority = 1, the availability replica would be chosen for performing backups only if no higher priority availability replicas are currently available.

    Escludi replicaExclude Replica
    Selezionare questa opzione se si desidera che questa replica di disponibilità non venga mai scelta per l'esecuzione dei backup.Select if you never want this availability replica to be chosen for performing backups. Ciò si rivela utile, ad esempio, per una replica di disponibilità remota in cui non si desidera eseguire mai il failover dei backup.This is useful, for example, for a remote availability replica to which you never want backups to fail over.

  7. Fare clic su OKper eseguire il commit delle modifiche.To commit your changes, click OK.

    Modalità alternative da accedere alla pagina delle Preferenze di backupAlternative ways to access the Backup Preferences page

Utilizzo di Transact-SQL Using Transact-SQL

Per configurare il backup delle repliche secondarieTo configure backup on secondary replicas

  1. Connettersi all'istanza del server che ospita la replica primaria.Connect to the server instance that hosts the primary replica.

  2. Per un nuovo gruppo di disponibilità, usare l'istruzione CREATE AVAILABILITY GROUP (Transact-SQL).For a new availability group, use the CREATE AVAILABILITY GROUP (Transact-SQL) statement. Se si modifica un gruppo di disponibilità esistente, usare l'istruzione ALTER AVAILABILITY GROUP (Transact-SQL).If you are modifying an existing availability group, use the ALTER AVAILABILITY GROUP (Transact-SQL) statement.

Utilizzo di PowerShell Using PowerShell

Per configurare il backup delle repliche secondarieTo configure backup on secondary replicas

  1. Impostare il valore predefinito (cd) sull'istanza del server che ospita la replica primaria.Set default (cd) to the server instance that hosts the primary replica.

  2. Facoltativamente, configurare la priorità di backup di ogni replica di disponibilità aggiunta o modificata.Optionally, configure the backup priority of each availability replica that you are adding or modifying. Tale priorità viene utilizzata dall'istanza del server che ospita la replica primaria per stabilire quale replica deve soddisfare una richiesta di backup automatico in un database nel gruppo di disponibilità (viene scelta la replica con la priorità più alta).This priority is used by the server instance that hosts the primary replica to decide which replica should service an automated backup request on a database in the availability group (the replica with highest priority is chosen). La priorità può essere impostata su qualsiasi numero compreso tra 0 e 100 inclusi.This priority can be any number between 0 and 100, inclusive. 0 indica che la replica non deve essere considerata per soddisfare le richieste di backup.A priority of 0 indicates that the replica should not be considered as a candidate for servicing backup requests. L'impostazione predefinita è 50.The default setting is 50.

    Quando si aggiunge una replica di disponibilità a un gruppo di disponibilità, usare il cmdlet New-SqlAvailabilityReplica .When adding an availability replica to an availability group, use the New-SqlAvailabilityReplica cmdlet. Quando si modifica una replica di disponibilità esistente, usare il cmdlet Set-SqlAvailabilityReplica .When modifying an existing availability replica, use the Set-SqlAvailabilityReplica cmdlet. In entrambi i casi, specificare il parametro BackupPriorityn , dove n è un valore compreso tra 0 e 100.In either case, specify the BackupPriorityn parameter, where n is a value from 0 to 100.

    Ad esempio, nel comando seguente viene impostata la priorità di backup della replica di disponibilità MyReplica su 60.For example, the following command sets the backup priority of the availability replica MyReplica to 60.

    Set-SqlAvailabilityReplica -BackupPriority 60 `  
    -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\AvailabilityReplicas\MyReplica  
    
  3. Configurare facoltativamente la preferenza di backup automatico per il gruppo di disponibilità in fase di creazione o modifica.Optionally, configure the automated backup preference for the availability group that you are creating or modifying. Questa preferenza indica la modalità di valutazione della replica primaria da parte di un processo di backup nella scelta della posizione in cui eseguire i backup.This preference indicates how a backup job should evaluate the primary replica when choosing where to perform backups. L'impostazione predefinita è quella di preferire le repliche secondarie.The default setting is to prefer secondary replicas.

    Quando si crea un gruppo di disponibilità, usare il cmdlet New-SqlAvailabilityGroup .When creating an availability group, use the New-SqlAvailabilityGroup cmdlet. Quando si modifica un gruppo di disponibilità esistente, usare il cmdlet Set-SqlAvailabilityGroup .When modifying an existing availability group, use the Set-SqlAvailabilityGroup cmdlet. In entrambi i casi, specificare il parametro AutomatedBackupPreference .In either case, specify the AutomatedBackupPreference parameter.

    dovewhere,

    PrimariaPrimary
    Specifica che i backup devono essere sempre eseguiti sulla replica primaria.Specifies that the backups should always occur on the primary replica. Questa opzione è utile se sono necessarie funzionalità di backup, ad esempio la creazione di backup differenziali, che non sono supportate quando il backup viene eseguito su una replica secondaria.This option is useful if you need backup features, such as creating differential backups, that are not supported when backup is run on a secondary replica.

    Importante

    Se si intende usare il log shipping per preparare un qualsiasi database secondario per un gruppo di disponibilità, impostare la preferenza di backup automatico su Primario finché tutti i database secondari non saranno stati preparati e uniti in join al gruppo di disponibilità.If you plan to use log shipping to prepare any secondary databases for an availability group, set the automated backup preference to Primary until all the secondary databases have been prepared and joined to the availability group.

    SecondaryOnlySecondaryOnly
    Specifica che i backup non devono mai essere eseguiti sulla replica primaria.Specifies that backups should never be performed on the primary replica. Se la replica primaria è l'unica replica online, il backup non viene eseguito.If the primary replica is the only replica online, the backup should not occur.

    SecondariSecondary
    Specifica che i backup devono essere eseguiti su una replica secondaria tranne quando la replica primaria è l'unica replica online.Specifies that backups should occur on a secondary replica except when the primary replica is the only replica online. In tal caso il backup deve essere eseguito sulla replica primaria.In that case, the backup should occur on the primary replica. Questo è il comportamento predefinito.This is the default behavior.

    NessunoNone
    Specifica che si preferisce che i processi di backup ignorino il ruolo delle repliche di disponibilità nella scelta della replica per l'esecuzione dei backup.Specifies that you prefer that backup jobs ignore the role of the availability replicas when choosing the replica to perform backups. Si noti che i processi di backup potrebbero valutare altri fattori, ad esempio la priorità di backup di ogni replica di disponibilità in combinazione con lo stato operativo e lo stato connesso.Note backup jobs might evaluate other factors such as backup priority of each availability replica in combination with its operational state and connected state.

    Importante

    Non è prevista l'applicazione di AutomatedBackupPreference.There is no enforcement of AutomatedBackupPreference. L'interpretazione di questa preferenza dipende dall'eventuale logica su cui si basano gli script dei processi di backup per i database in un determinato gruppo di disponibilità.The interpretation of this preference depends on the logic, if any, that you script into backup jobs for the databases in a given availability group. L'impostazione relativa alle preferenze di backup automatico non incide sui backup ad hoc.The automated backup preference setting has no impact on ad-hoc backups. Per ulteriori informazioni, vedere Completamento: Dopo avere configurato il backup su repliche secondarie più avanti in questo argomento.For more information, see Follow Up: After Configuring Backup on Secondary Replicas later in this topic.

    Ad esempio, il comando seguente imposta la proprietà AutomatedBackupPreference del gruppo di disponibilità MyAg su SecondaryOnly.For example, the following command sets the AutomatedBackupPreference property on the availability group MyAg to SecondaryOnly. I backup automatici dei database in questo gruppo di disponibilità non verranno mai eseguiti nella replica primaria, ma verranno reindirizzati alla replica secondaria con l'impostazione della priorità di backup più elevata.Automated backups of databases in this availability group will never occur on the primary replica, but will be redirected to the secondary replica with the highest backup priority setting.

    Set-SqlAvailabilityGroup `  
    -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg `  
    -AutomatedBackupPreference SecondaryOnly  
    

Nota

Per visualizzare la sintassi di un cmdlet, usare il cmdlet Get-Help nell'ambiente SQL ServerSQL Server PowerShell.To view the syntax of a cmdlet, use the Get-Help cmdlet in the SQL ServerSQL Server PowerShell environment. Per altre informazioni, vedere Get Help SQL Server PowerShell.For more information, see Get Help SQL Server PowerShell.

Per impostare e utilizzare il provider PowerShell per SQL ServerTo set up and use the SQL Server PowerShell provider

Completamento: Dopo avere configurato il backup su repliche secondarie Follow Up: After Configuring Backup on Secondary Replicas

Per prendere in considerazione le preferenze di backup automatico per un gruppo di disponibilità specifico, in ogni istanza del server in cui è ospitata una replica di disponibilità la cui priorità di backup è maggiore di zero (>0) è necessario generare script dei processi di backup per i database nel gruppo di disponibilità.To take the automated backup preference into account for a given availability group, on each server instance that hosts an availability replica whose backup priority is greater than zero (>0), you need to script backup jobs for the databases in the availability group. Per determinare se la replica corrente è la replica di backup preferita, usare la funzione sys.fn_hadr_backup_is_preferred_replica nello script di backup.To determine whether the current replica is the preferred backup replica, use the sys.fn_hadr_backup_is_preferred_replica function in your backup script. Se la replica di disponibilità ospitata dall'istanza del server corrente è la replica preferita per i backup, questa funzione restituisce 1.If the availability replica that is hosted by the current server instance is the preferred replica for backups, this function returns 1. In caso contrario, la funzione restituisce 0.If not, the function returns 0. Eseguendo uno script semplice in ogni replica di disponibilità tramite cui viene eseguita una query su questa funzione, è possibile determinare in quale replica deve essere eseguito un processo di backup specificato.By running a simple script on each availability replica that queries this function, you can determine which replica should run a given backup job. Di seguito è riportato un esempio di un tipico frammento di script per un processo di backup:For example, a typical snippet of a backup-job script would look like:

IF (NOT sys.fn_hadr_backup_is_preferred_replica(@DBNAME))  
BEGIN  
      Select ‘This is not the preferred replica, exiting with success’;  
      RETURN 0 – This is a normal, expected condition, so the script returns success  
END  
BACKUP DATABASE @DBNAME TO DISK=<disk>  
   WITH COPY_ONLY;  

Generando uno script per un processo di backup con questo tipo di logica è possibile pianificare il processo affinché venga eseguito in ogni replica di disponibilità presente nella stessa pianificazione.Scripting a backup job with this logic enables you to schedule the job to run on every availability replica on the same schedule. Ognuno di questi processi analizza gli stessi dati per determinare il processo da eseguire, pertanto solo uno dei processi pianificati procede effettivamente alla fase di backup.Each of these jobs looks at the same data to determine which job should run, so only one of the scheduled job actually proceeds to the backup stage. In caso di failover, nessuno degli script o processi deve essere modificato.In the event of a failover, none of the scripts or jobs needs to be modified. Inoltre, se si riconfigura un gruppo di disponibilità per aggiungere una replica di disponibilità, la gestione del processo di backup richiede la copia o la pianificazione del processo di backup.Also, if you reconfigure an availability group to add an availability replica, managing the backup job requires simply copying or scheduling the backup job. Se si rimuove una replica di disponibilità, eliminare semplicemente il processo di backup dall'istanza del server che la ospitava.If you remove an availability replica, simply delete the backup job from the server instance that hosted that replica.

Suggerimento

Se si usa laCreazione guidata piano di manutenzioneper creare un processo di backup specifico, il processo includerà automaticamente la logica di scripting che chiama e controlla la funzione sys.fn_hadr_backup_is_preferred_replica .If you use theMaintenance Plan Wizardto create a given backup job, the job will automatically include the scripting logic that calls and checks the sys.fn_hadr_backup_is_preferred_replica function. Tuttavia, il processo di backup non restituirà il messaggio che indica che non si tratta della replicaHowever, the backup job will not return the “This is not the preferred replica…” Assicurarsi di creare i processi per ogni database di disponibilità in ogni istanza del server che ospita una replica di disponibilità per il gruppo di disponibilità.message.Be sure to create the job(s) for each availability database on every server instance that hosts an availability replica for the availability group.

Per ottenere informazioni sulle impostazioni delle preferenze di backup To Obtain Information About Backup Preference Settings

Gli elementi seguenti sono utili per ottenere informazioni pertinenti per il backup di una replica secondaria.The following are useful for obtaining information that is relevant for backup on secondary.

VisualizzaView InformazioniInformation Colonne pertinentiRelevant Columns
sys.fn_hadr_backup_is_preferred_replicasys.fn_hadr_backup_is_preferred_replica Indica se la replica corrente è la replica di backup preferitaIs the current replica the preferred backup replica? Non applicabile.Not applicable.
sys.availability_groupssys.availability_groups preferenza di backup automaticoAutomated backup preference automated_backup_preferenceautomated_backup_preference

automated_backup_preference_descautomated_backup_preference_desc
sys.availability_replicassys.availability_replicas Priorità di backup di una determinata replica di disponibilitàBackup priority of a given availability replica backup_prioritybackup_priority
sys.dm_hadr_availability_replica_statessys.dm_hadr_availability_replica_states Indica se la replica è locale all'istanza del serverIs replica local to the server instance?

Ruolo correnteCurrent role

Stato operativoOperational state

Stato ConnessoConnected state

Integrità della sincronizzazione di una replica di disponibilitàSynchronization health of an availability replica
is_localis_local

role, role_descrole, role_desc

operational_state, operational_state_descoperational_state, operational_state_desc

connected_state, connected_state_descconnected_state, connected_state_desc

synchronization_health, synchronization_health_descsynchronization_health, synchronization_health_desc

Vedere ancheSee Also

Panoramica di Gruppi di disponibilità Always On (SQL Server) Overview of Always On Availability Groups (SQL Server)
Repliche secondarie attive: Backup in repliche secondarie (Gruppi di disponibilità AlwaysOn)Active Secondaries: Backup on Secondary Replicas (Always On Availability Groups)