Lavorare con i gruppi di disponibilità AlwaysOn


Questa pagina descrive che cosa sono i gruppi di disponibilità AlwaysOn in SQL Server e come Datastream li supporta per gli scenari di failover e recupero dei dati.

Panoramica dei gruppi di disponibilità AlwaysOn

In SQL Server, i gruppi di disponibilità AlwaysOn sono una soluzione di alta disponibilità che ti consente di preparare i database per gli scenari di ripristino di emergenza.

I gruppi di disponibilità Always On massimizzano la disponibilità del database per le aziende. I gruppi di disponibilità supportano un ambiente replicato per un insieme selezionato di database, noti come database di disponibilità. Ogni gruppo include un insieme di database principali per le attività di lettura e scrittura e fino a otto insiemi di database secondari corrispondenti. Facoltativamente, i database secondari possono consentire operazioni di backup o accesso di sola lettura.

Per ulteriori informazioni sui gruppi di disponibilità AlwaysOn, consulta Che cos'è un gruppo di disponibilità AlwaysOn? nella documentazione di SQL Server.

Per informazioni sui prerequisiti del gruppo di disponibilità AlwaysOn per un'istanza SQL Server, consulta la documentazione di SQL Server.

Configurare Datastream per l'utilizzo con i gruppi di disponibilità Always On

Datastream supporta la modalità di disponibilità commit sincrono con il metodo CDC delle tabelle delle modifiche. In questa modalità, il database secondario rimane sincronizzato con quello principale corrispondente finché la sincronizzazione dei dati non si interrompe. La conferma di una transazione viene inviata al cliente solo quando la replica secondaria scrive i record del log delle transazioni in arrivo su un disco.

Per informazioni sulle modalità di disponibilità, consulta Differenze tra le modalità di disponibilità per un gruppo di disponibilità Always On.

Per configurare l'istanza SQL Server per l'utilizzo con i gruppi di disponibilità AlwaysOn, devi attivare l'agente SQL Server per acquisire i log in caso di failover, quindi eseguire un job di pulizia. Prima di poter eseguire questa operazione, devi modificare i passaggi del job dell'agente CDC per verificare se la replica corrente è effettivamente quella principale. Per farlo, utilizza la funzione sys.fn_hadr_is_primary_replica.

Utilizza i seguenti comandi per configurare l'istanza:

  -- Check if the current replica is a primary for the corresponding database.
  USE [DATABASE_NAME];
  DECLARE @DatabaseName SYSNAME = DB_NAME();
  IF (SELECT sys.fn_hadr_is_primary_replica(@DatabaseName)) = 1
  BEGIN
  -- If the replica isn't a primary, the code block that follows is skipped
  EXECUTE sys.sp_cdc_add_job @job_type = 'capture';
  EXECUTE sys.sp_cdc_add_job @job_type = 'cleanup';
  END

Passaggi successivi