Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Impostazione e configurazione del gruppo di disponibilità Always-on in SQL Server

SQL Server ci offre una serie di soluzioni per la disponibilità elevata e il ripristino di emergenza che aiutano a rendere disponibili i dati che servono i sistemi critici per il più lungo tempo possibile con il minor tempo di inattività possibile. Queste soluzioni per la disponibilità elevata e il ripristino di emergenza fornite da Microsoft SQL Server sono discusse nell'articolo relativo al registro delle transazioni di SQL Server e alle soluzioni per la disponibilità elevata.

In questo articolo, mostreremo come impostare e configurare un sito del gruppo di disponibilità e configurarlo per soddisfare i requisiti dell'azienda. Ma iniziamo con una breve panoramica della funzione del gruppo di disponibilità Always-on per familiarizzare con essa.

Panoramica

Il gruppo di disponibilità Always-on di SQL Server, introdotto nella versione di SQL Server 2012, è una soluzione di ripristino di emergenza e disponibilità elevata a livello aziendale basata sulla funzionalità Clustering di failover di Windows Server, in cui uno o più database possono fungere da gruppo di disponibilità e failover come singola unità.

Il gruppo di disponibilità è un contenitore per un set di database ospitato in una replica primaria, contiene la copia di lettura e scrittura dei database e sincronizzato con un massimo di otto repliche secondarie, contiene una copia di sola lettura di questi database.

In alternativa alla funzione di mirroring del database, è possibile utilizzare Always on Availability Group per ridurre il carico sull'istanza primaria configurando le repliche secondarie per gestire il carico di lavoro di sola lettura e le operazioni di backup. In questo modo, il gruppo di disponibilità Always-on può essere utilizzato per migliorare la disponibilità dei database e migliorare l'utilizzo delle risorse di SQL Server per tutte le repliche.

Il processo di sincronizzazione tra le repliche del gruppo di disponibilità può essere eseguito in una delle due modalità di disponibilità supportate:

  • Modalità commit sincrono :in questa modalità di disponibilità, la replica primaria attenderà che le repliche secondarie, fino a due repliche secondarie sincrone, confermino la scrittura del registro nel file di registro delle transazioni del database, prima di eseguirne il commit nella replica primaria. Questa modalità di disponibilità aumenta il livello di disponibilità dei dati rispetto al prezzo di latenza della transazione.
  • Modalità commit asincrono :questa modalità di disponibilità viene utilizzata principalmente per sincronizzarsi con le repliche di ripristino di emergenza, che sono distribuite su data center distanti, dove la replica primaria non attenderà le repliche secondarie, per confermare la protezione avanzata del registro per eseguire il commit della transazione sul lato primario, fornendo meno dati livello di disponibilità e minore latenza delle transazioni.

Il processo di failover dei gruppi di disponibilità Always-on, in cui il ruolo principale verrà modificato tra le repliche, può essere eseguito manualmente dall'amministratore del database o automaticamente dallo stesso SQL Server in caso di qualsiasi errore a livello di server, tenendo conto che questo il failover non si verificherà in caso di problemi a livello di database come il danneggiamento del database.

Per ogni gruppo di disponibilità è possibile creare un nome server per fornire ai client la possibilità di connettersi direttamente alla replica primaria o alle repliche di sola lettura senza richiamare i nomi e i ruoli dell'istanza di SQL Server sottostanti all'interno del gruppo di disponibilità. Questo nome del server è chiamato Ascoltatore del gruppo di disponibilità .

Scenario dimostrativo

Dopo aver fornito una breve introduzione alla funzione Gruppo di disponibilità sempre attivo, siamo pronti per impostare un gruppo di disponibilità e configurarlo correttamente. In questa demo creeremo un gruppo di disponibilità per replicare il database AdventureWorks2017 tra due istanze di SQL Server; SQL1 e SQL2, con SQL Server 2017 già installato su questi server.

A scopo di test e demo, i servizi SQL Server nelle istanze SQL1 e SQL2 vengono eseguiti con l'account del servizio ay\sqladmin, che dispone delle autorizzazioni appropriate su queste istanze di SQL Server.

Per iniziare

Come indicato nella panoramica di questo articolo, la funzionalità del gruppo di disponibilità sempre attivo è basata sulla funzionalità del cluster di failover di Windows Server. Quindi, dobbiamo creare un sito di clustering di failover su cui definiremo il sito del gruppo di disponibilità.

Crea un cluster di failover

Prima di tutto, dobbiamo assicurarci che la funzionalità Clustering di failover sia installata su tutte le repliche che parteciperanno al sito del gruppo di disponibilità. Questa operazione può essere eseguita aprendo la dashboard di Server Manager su ciascuna replica e scegliendo l'opzione Aggiungi ruoli e funzionalità dal menu Gestisci, quindi controlla e installa Failover Clustering caratteristica di quella procedura guidata, come mostrato di seguito:

Dopo aver installato la funzione Clustering di failover, apri Gestione cluster di failover finestra in una delle repliche, utilizzando un account di amministratore locale autorizzato con privilegi di amministratore di dominio che gli consentono di creare il nome del cluster nella directory attiva e fare clic su Crea cluster opzione, come di seguito:

Dalla Creazione guidata cluster aperta , controlla le istruzioni fornite in Prima di iniziare finestra e fai clic su Avanti per continuare:

Nella pagina successiva, fornisci il nome o l'IP delle repliche che parteciperanno al gruppo di disponibilità, quindi fai clic su Avanti per continuare:

Successivamente, è necessario specificare se eseguire il test di convalida del cluster, per verificare che le risorse disponibili su questi server siano compatibili con la funzionalità Clustering di failover, prima di creare o meno il cluster di failover. Si consiglia sempre di eseguire il test di convalida in quel passaggio prima di provare a creare il sito del cluster di failover.

Verrai indirizzato alla Convalida guidata di configurazione . Nella prima pagina della procedura guidata di convalida, controlla le istruzioni della procedura guidata e fai clic su Avanti per procedere:

Successivamente, è necessario specificare se eseguire tutte le convalide del cluster di failover, che è l'opzione consigliata, o selezionare specifici test più rapidi. In questa demo, utilizzeremo l'opzione consigliata da Microsoft ed eseguiremo tutti i test di convalida, quindi faremo clic su Avanti per continuare:

E puoi rivedere i test di convalida che verranno eseguiti all'interno di questa procedura guidata di convalida e confermare di procedere facendo clic su Avanti , come segue:

Al termine del processo di convalida, puoi fare clic sul pulsante Visualizza rapporto per rivedere il risultato del test di convalida o esportarlo a un altro tecnico per risolvere eventuali problemi riscontrati, oppure fare clic su Fine direttamente per avviare il processo di creazione del cluster, come di seguito:

Per ora, abbiamo verificato che i nostri server siano compatibili con i requisiti della funzionalità di clustering di failover e possiamo continuare a creare il sito di clustering di failover. Nel Punto di accesso per l'amministrazione del cluster finestra, fornire un nome univoco e un indirizzo IP per il cluster di failover, quindi fare clic su Avanti per continuare:

Dopodiché, rivedi le impostazioni di creazione del cluster che fornisci e assicurati di rimuovere il segno di spunta accanto a Aggiungi tutto lo spazio di archiviazione idoneo al cluster , poiché la funzione Always on Availability Group funziona utilizzando uno spazio di archiviazione dedicato per ciascun server e NON memoria condivisa. Se sei d'accordo con le impostazioni, fai clic su Avanti per procedere:

Una volta che il sito di clustering di failover è stato creato correttamente, la procedura guidata ti avviserà con un messaggio che il sito di clustering di failover è stato creato completamente, come illustrato di seguito:

Puoi verificare che il sito del cluster di failover sia stato creato correttamente, aprendo il Failover Cluster Manager, che ti mostrerà il sito del cluster creato e tutti i componenti di quel cluster come mostrato di seguito:

Per mantenere il sito del cluster di failover nella migliore modalità di disponibilità, è necessario configurare il Quorum del cluster che controlla quando mantenere il cluster di failover online o trasformarlo offline in base ai voti dei nodi e delle risorse. Per configurare il quorum del cluster, fai clic con il pulsante destro del mouse sul nome del cluster, in Gestione cluster di failover, e scegli Configura impostazioni quorum del cluster opzione da Altre azioni menu, come di seguito. Per informazioni dettagliate sulle impostazioni del quorum che si adattano alla funzionalità del gruppo di disponibilità Always On, controllare le modalità del quorum del cluster di failover di Windows nei gruppi di disponibilità Always On di SQL Server:

Abilita la funzione sempre attiva per il gruppo di disponibilità

Dopo aver creato il cluster di failover, su cui verrà creato il gruppo di disponibilità, è necessario abilitare la funzione Always-on Availability Group e collegarla al sito del cluster di failover che verrà utilizzato.

Per abilitare la funzionalità del gruppo di disponibilità sempre attivo, aprire Gestione configurazione SQL Server -> Servizi SQL Server, quindi fare clic con il pulsante destro del mouse sul servizio SQL Server e scegliere l'opzione Proprietà. Dalla finestra delle proprietà del servizio SQL Server, passa a Disponibilità sempre attiva pagina e seleziona "Abilita sempre sui gruppi di disponibilità ” sotto il nome del cluster di failover rilevato automaticamente, come mostrato di seguito:

Tieni presente che questa modifica deve essere eseguita su tutte le repliche che parteciperanno al gruppo di disponibilità e avrà effetto dopo il riavvio del servizio SQL Server, come illustrato di seguito:

Crea un nuovo gruppo di disponibilità sempre attivo

Dopo aver abilitato la funzione Gruppo di disponibilità sempre attivo, inizieremo a creare il nuovo gruppo di disponibilità espandendo il nodo Disponibilità elevata sempre attiva, in Esplora oggetti SSMS, quindi fare clic con il pulsante destro del mouse sul nodo Gruppi di disponibilità e scegliere il Nuovo Procedura guidata del gruppo di disponibilità , come mostrato di seguito:

La prima pagina della procedura guidata Nuovo gruppo di disponibilità è la pagina introduttiva, in cui è possibile trovare una breve descrizione dei passaggi che verranno eseguiti in questa procedura guidata per creare un nuovo gruppo di disponibilità. Rivedi il riepilogo fornito, quindi fai clic su Avanti per continuare:

In Specifica le opzioni del gruppo di disponibilità finestra, è necessario specificare il nome del gruppo di disponibilità, il tipo di cluster, in base alla versione di SQL Server e al sistema operativo utilizzato nelle repliche, dove è possibile scegliere tra il Clustering di failover di Windows Server , ESTERNO non Windows cluster o NESSUNO se non viene utilizzato alcun cluster.

Questa pagina ti consente anche di abilitare il Rilevamento dello stato di salute a livello di database opzione, che controlla quando un database non è più nello stato online ed esegue il failover automatico del gruppo di disponibilità e abilita le transazioni distribuite nei gruppi di disponibilità per ciascun database, come mostrato di seguito:

Successivamente, è necessario selezionare i database che parteciperanno a quel gruppo di disponibilità. La procedura guidata verificherà le richieste preliminari per il database da aggiungere al gruppo Disponibilità, incluso il modello di ripristino completo del database e che venga eseguito un backup completo da quel database prima di aggiungerlo. Dopo aver soddisfatto i requisiti per includere i database, aggiornare l'elenco dei database, controllare il database, quindi fare clic su Avanti per continuare:

Nella pagina successiva, sotto le Repliche scheda, è necessario aggiungere tutte le repliche di SQL Server che parteciperanno a questo gruppo di disponibilità e ne ospiteranno una copia dai database inclusi. Dopo aver aggiunto le repliche, è possibile scegliere fino a tre istanze da configurare con la modalità di disponibilità del commit sincrono e consentire il failover automatico tra queste repliche e il resto delle repliche che verranno configurate con la modalità di commit asincrono. Puoi anche decidere se configurare ogni replica come secondaria leggibile per connessioni di sola lettura o replica leggibile con intento di lettura per gestire il carico di lavoro di sola lettura diretto automaticamente dal listener, come mostrato di seguito:

Nella scheda Endpoint, controllare le impostazioni degli endpoint di connessione che verranno utilizzati per la comunicazione tra le repliche, dove è necessario assicurarsi che la porta TCP utilizzata sia abilitata nelle regole del firewall di tutte le repliche e che l'account di servizio fornito abbia Connetti l'autorizzazione sull'endpoint delle repliche, come di seguito:

Nella scheda Preferenze di backup, è necessario specificare la posizione in cui verranno eseguiti i processi di backup nel gruppo di disponibilità. Consente di eseguire un backup automatico dalla replica secondaria come opzione preferita, secondaria come must, primaria come must o in qualsiasi replica. Sulla base di questa opzione, puoi creare il piano di manutenzione per eseguire un backup dai database che partecipano al gruppo di disponibilità, come di seguito:

Dalla stessa finestra, puoi anche definire le impostazioni del listener del gruppo di disponibilità, nella pagina Listener oppure procedere senza creare il listener per ora ed eseguire la creazione in un secondo momento. In questa demo, configureremo il listener dopo aver creato il gruppo di disponibilità, come mostrato di seguito:

Inoltre, puoi utilizzare la pagina Routing di sola lettura per definire l'elenco di routing di sola lettura, utilizzato per controllare il carico di lavoro di sola lettura all'interno dei secondari. Per ulteriori informazioni, consulta Come configurare il routing di sola lettura per un gruppo di disponibilità in SQL Server 2016:

Nella pagina successiva è necessario specificare il meccanismo che verrà utilizzato per il processo di sincronizzazione dei dati iniziale tra le repliche primarie e secondarie, con la possibilità di eseguire la sincronizzazione automaticamente o manualmente unendo il secondario al gruppo di disponibilità e sincronizzando i database successivamente manualmente.

Sono disponibili due metodi di sincronizzazione automatica in quella procedura guidata, il primo specifica una cartella condivisa per copiare temporaneamente i backup completi e del registro delle transazioni ed eseguire automaticamente il ripristino, che useremo qui in questa demo, oppure utilizzare un metodo di seeding diretto senza eseguire il backup, come descritto nel gruppo di disponibilità Always On di SQL Server 2016 con seeding diretto:

Per utilizzare il Backup completo del database e del registro metodo, è necessario creare una cartella condivisa e fornire gli account dei servizi di SQL Server per le repliche di lettura e scrittura permessi su quella cartella, come mostrato di seguito:

Successivamente, la procedura guidata Nuovo gruppo di disponibilità eseguirà un controllo di convalida per tutta la configurazione prima di procedere con il processo di creazione del gruppo di disponibilità. Se si verifica un errore, puoi correggerlo direttamente, quindi aggiornare la pagina e fare clic su Avanti per procedere:

Nella fase finale, la procedura guidata ti fornirà un riepilogo di tutte le configurazioni della procedura guidata per esaminarla, quindi fai clic su Fine per iniziare a creare il gruppo di disponibilità, come di seguito:

Al termine della procedura guidata, ti mostrerà il risultato di ogni passaggio e se si verificano errori. In caso contrario, verrà visualizzato un messaggio che indica che il gruppo di disponibilità è stato creato correttamente senza problemi, come mostrato di seguito:

È inoltre possibile verificare che il gruppo di disponibilità Always on sia stato creato e configurato correttamente utilizzando SSMS Object Explorer, verificando che i database partecipanti siano in uno stato sincronizzato in tutte le repliche e che le repliche e i database siano online in Always-on Nodo ad alta disponibilità, come mostrato di seguito:

Puoi anche connetterti alla replica primaria, con la parola Primaria accanto al nome del gruppo di disponibilità, e controllare la pagina delle proprietà del gruppo di disponibilità, con la possibilità di eseguire le stesse attività che abbiamo eseguito con la Creazione guidata nuovo gruppo di disponibilità, come l'aggiunta di nuove repliche , aggiungendo un nuovo database, modificando ogni configurazione di replica, modificando le preferenze di backup e definendo un elenco di routing di sola lettura, come mostrato di seguito:

Crea listener del gruppo di disponibilità sempre attivo

L'ultimo passaggio nella configurazione del gruppo di disponibilità è la creazione del listener del gruppo di disponibilità che verrà utilizzato durante la connessione alle repliche primaria e secondaria senza specificare il nome della replica.

Per creare il listener del gruppo di disponibilità, fai clic con il pulsante destro del mouse sul nodo Listener del gruppo di disponibilità sotto il nodo del gruppo di disponibilità creato e scegli Aggiungi listener opzione. Dal nuovo listener del gruppo di disponibilità aperto finestra, fornire il nome di quel listener, la porta TCP che verrà utilizzata per connettersi a quel listener e l'indirizzo IP statico che verrà assegnato al listener, quindi fare clic su OK per crearlo. Quando il listener viene creato correttamente, la finestra verrà chiusa automaticamente e il nome del listener verrà visualizzato sotto il nodo Listener, come mostrato di seguito:

Per connettersi al gruppo di disponibilità utilizzando il nome del listener, fornire il nome o l'IP del listener con il numero di porta TCP in Connetti al server e si connetterà direttamente al nodo primario, come mostrato di seguito:

Test processo di failover

Dopo aver testato la connessione al listener del gruppo di disponibilità e alle repliche, è necessario eseguire un test importante per il failover, per assicurarci che il ruolo primario venga spostato tra le repliche senza alcun problema e che i database siano raggiungibili e in lo stato sincronizzato dopo il failover.

Per eseguire un failover manuale, fai clic con il pulsante destro del mouse sul nome del gruppo di disponibilità e scegli Failover opzione, come di seguito:

La prima pagina del gruppo di disponibilità di failover procedura guidata è la pagina Introduzione, che fornisce un riepilogo delle azioni che possono essere eseguite in quella procedura guidata. Rivedi l'introduzione e fai clic su Avanti per continuare:

Nella pagina successiva, seleziona quale nodo fungerà da nuova replica primaria, assicurandoti che non si verifichi alcuna perdita di dati quando viene eseguita l'operazione di failover, quindi fai clic su Avanti per procedere:

Dopodiché, dovresti connetterti alla nuova replica primaria che hai selezionato per assicurarti che questa replica sia online e raggiungibile, come mostrato di seguito:

Quindi rivedi le tue scelte all'interno della procedura guidata di failover nella pagina di riepilogo e fai clic su Fine per avviare il processo di failover:

Al termine del failover, controlla la pagina dei risultati per assicurarti che non si siano verificati problemi durante il processo di failover, come indicato di seguito:

Da SSMS Object Explorer, il ruolo della replica SQL1 verrà modificato direttamente in Secondary, come mostrato di seguito:

In questo articolo abbiamo descritto in dettaglio i passaggi da eseguire per preparare la creazione del sito del gruppo di disponibilità e come creare e configurare il sito del gruppo di disponibilità Always-on. Nel prossimo articolo, vedremo come risolvere i problemi che potresti incontrare con un sito del gruppo di disponibilità esistente. Resta sintonizzato.