Always On Availability Groups con SQL Server Standard

Datamaze
19.06.20 09:11 AM Comment(s)

Gruppi di Disponibilità di base Always On (BAG - Basic Availability Groups - da ora in avanti) sono una soluzione di high availability per SQL Server 2016 e SQL Server 2017 Standard Edition. Un BAG supporta un ambiente di failover per un singolo database e viene creato e gestito in modo molto simile ai tradizionali gruppi di disponibilità Always On presenti nella edizione Enterprise che, ovviamente, supportano una serie di funzionalità aggiuntive.


I BAG rimpiazzano a tutti gli effetti la funzionalità deprecata del Database Mirroring presente nelle versioni precedenti di SQL Server anche se ci sono alcune piccole differenze, sia in positivo che in negativo (ad esempio non posso fare uno snapshot del database secondario)


Come funzionano

I BAG consentono ad un database primario di avere una replica (secondaria) all'interno di una seconda istanza di SQL server. Non posso creare più repliche per lo stesso database primario.


Posso avere più availability groups ma ognuno potrà contenere un solo database. Questa è una grossa limitazione, rispetto alla versione Enterprise perché, in ambienti che sono costituiti da più database (vedi ad esempio Sharepoint) l'utilità viene sicuramente meno. La replica può usare la modalità di commit delle transazioni sia sincrona che asincrona.


La replica secondaria rimane inattiva a meno che non sia necessario eseguire il failover. Questa operazione inverte le assegnazioni di ruolo primario e secondario, pertanto la replica secondaria diventerà il database attivo primario.


E' possibile impostare il sistema in modo che avvenga un failover automatico in caso di necessità. Questo, come nella versione Enterprise, a patto che la modalità di commit sia sincrona.


Ovviamente per permettere tutto questo, è necessario che le istanze di SQL Server facciano parte di un cluster windows (WSFC).

I BAG possono operare in un ambiente ibrido che si estende in locale e su Microsoft Azure.

Availability Group SQL Server

Ricapitolando

I BAG usano un sottoinsieme di funzionalità rispetto ai gruppi di disponibilità avanzati in SQL Server 2016-2017 Enterprise Edition. Queste le maggiori differenze e limitazioni:

  • Limite di due repliche (primaria e secondaria). I BAG per SQL Server 2017 in Linux supportano una sola replica. La versione Enterprise consente di avere fino ad 8 repliche permettendo di implementare soluzioni integrate di HA e DR.
  • Nessun accesso in lettura sulla replica secondaria.
  • Nessuna possibilità di effettuare backup sulla replica secondaria.
  • Nessun controllo di integrità sulla replica secondaria.
  • Nel caso di upgrade di edizione di SQL Server, i BAG non possono essere aggiornati a gruppi di disponibilità avanzati. Il gruppo deve essere eliminato e aggiunto nuovamente a un gruppo contenente server che appartengono solo a Microsoft SQL Server 2016 Enterprise Edition.
  • I BAG sono supportati solo per i server Standard Edition.


Il costo della licenza Enterprise potrebbe incidere fortemente e positivamente nella scelta di utilizzare questa funzionalità di SQL Server Standard. Vanno valutati i pro e contro, come in ogni nuova configurazione di SQL Server, ma se vogliamo creare una soluzione integrata di DR e HA utilizzando SQL Server, la versione Enterprise diventa una scelta obbligatoria.


di Cristiano Gasparotto, pubblicato il 14 maggio 2019

SQL Server monitoraggio e controllo