Esercitazione: configurare la replica geografica attiva e il failover (database SQL di Azure)

Si applica a: Database SQL di Azure

Questo articolo illustra come configurare la replica geografica attiva e avviare il failover per il Database SQL di Azure nel portale di Azure, in PoweShell o nell’interfaccia della riga di comando di Azure.

La georeplicazione attiva è configurata per ogni database. Per eseguire il failover di un gruppo di database o se l'applicazione richiede un endpoint di connessione stabile, prendere in considerazione i gruppi di failover .

Prerequisiti

Aggiungere un database secondario

La procedura seguente crea un nuovo database secondario in una relazione di replica geografica.

Per aggiungere un database secondario, è necessario essere il proprietario o un comproprietario della sottoscrizione.

Il database secondario ha lo stesso nome del database primario e, per impostazione predefinita, ha lo stesso livello di servizio e le stesse dimensioni di calcolo. Il database secondario può essere un database singolo o un database in pool. Per altre informazioni, vedere Panoramica del modello di acquisto basato su DTU e modello di acquisto basato su vCore. Dopo aver creato ed eseguito il seeding del database secondario, inizia la replica dei dati dal database primario al nuovo database secondario.

Se la replica secondaria viene usata solo per il ripristino di emergenza e non dispone di carichi di lavoro di lettura o scrittura, è possibile risparmiare sui costi di licenza designando il database per standby quando si configura una nuova relazione di replica geografica attiva. Per altre informazioni, vedere Replica standby senza licenza.

Nota

Se il database partner esiste già, ad esempio come risultato della terminazione di una precedente relazione di replica geografica, il comando non riesce.

  1. Nel portale di Azure passare al database per cui si vuole installare la replica geografica.

  2. Nella pagina database SQL selezionare il database, scorrere fino a Gestione dati, selezionare Repliche, quindi selezionare Crea replica.

    Screenshot che mostra l'opzione Configura replica geografica.

  3. Selezionare la Sottoscrizione e il Gruppo di risorse del database secondario dell’area geografica.

    Screenshot del portale di Azure della sottoscrizione e del gruppo di risorse.

  4. Selezionare o creare il server per il database secondario e configurare le opzioni Calcolo e archiviazione, se necessario. È possibile selezionare qualsiasi area per il server secondario, ma è consigliabile usare l’area abbinata.

    Facoltativamente, è possibile aggiungere un database secondario a un pool elastico. Per creare il database secondario in un pool, selezionare accanto a Usare il pool elastico SQL?, quindi selezionare un pool sul server di destinazione. Un pool deve esistere già nel server di destinazione. Questo flusso di lavoro non crea un pool.

  5. Seleziona Rivedi e crea, esamina le informazioni e quindi seleziona Crea.

  6. Viene avvitato il database secondario e avviato il processo di distribuzione.

    Screenshot che mostra lo stato di distribuzione del database secondario.

  7. Una volta completato il processo di distribuzione, il database secondario mostra il relativo stato.

    Screenshot che mostra lo stato del database secondario dopo la distribuzione.

  8. Tornare alla pagina del database primario e selezionare Repliche. Il database secondario figura nell’elenco delle Repliche geografiche.

    Screenshot che mostra le repliche primarie e geografiche del database SQL.

Avviare un failover

Il database secondario può diventare il database primario.

  1. Nel portale di Azure passare al database primario nella relazione di replica geografica.

  2. Scorrere fino a Gestione dei dati, quindi selezionare Repliche.

  3. Nell’elenco Repliche geografiche selezionare il database che dovrà diventare il nuovo database primario, selezionare i puntini di sospensione, quindi scegliere Failover forzato.

    Screenshot che mostra la selezione di un failover forzato dal menu a discesa.

  4. Selezionare per avviare il failover.

Il comando passa immediatamente il database secondario al ruolo di database primario. Questo processo normalmente viene completato entro 30 secondi o meno.

Entrambi i database non sono disponibili, per un massimo di 25 secondi, mentre i ruoli vengono cambiati. Se il database primario ha più database secondari, il comando riconfigura automaticamente gli altri database secondari per la connessione al nuovo database primario. In circostanze normali il completamento dell’intera operazione dovrebbe richiedere meno di un minuto.

Rimuovere il database secondario

Questa operazione arresta in modo permanente la replica al database secondario e modifica il ruolo del database secondario in un database di lettura/scrittura normale. Se la connettività al database secondario viene interrotta il comando ha esito positivo ma il database secondario non diventa un database di lettura-scrittura fino a quando la connettività non verrà ripristinata.

  1. Nel portale di Azure passare al database primario nella relazione di replica geografica.
  2. Selezionare Repliche.
  3. Nell’elenco Repliche geografiche selezionare il database da rimuovere dalla relazione di replica geografica, selezionare i puntini di sospensione e quindi selezionare Arresta replica.
  4. Verrà visualizzata una finestra di conferma. Fare clic su per rimuovere il database dalla relazione di replica geografica. Impostarlo su un database di lettura/scrittura che non fa parte di alcuna replica.

Replica geografica tra sottoscrizioni

  • Per creare una replica geografica secondaria in una sottoscrizione diversa dalla sottoscrizione del database primario nello stesso tenant di Microsoft Entra, è possibile usare il portale di Azure o i passaggi descritti in questa sezione.
  • Per creare una replica geografica secondaria in una sottoscrizione diversa dalla sottoscrizione del database primario in un tenant Microsoft Entra diverso, è necessario usare l’autenticazione SQL e T-SQL come descritto nei passaggi descritti in questa sezione. L'autenticazione di Microsoft Entra per Azure SQL per la replica geografica tra sottoscrizioni non è supportata quando un server logico si trova in un tenant di Azure diverso
  1. Aggiungere l’indirizzo IP del computer client che esegue i comandi T-SQL in questo esempio, ai firewall del server di entrambi i server primario e secondario. È possibile confermare l’indirizzo IP eseguendo la query seguente durante la connessione al server primario dallo stesso computer client.

    SELECT client_net_address
    FROM sys.dm_exec_connections
    WHERE session_id = @@SPID;
    

    Per ulteriori informazioni, vedere Regole del firewall di Database SQL di Azure e dell'IP di Azure Synapse.

  2. Nel database master nel server primario creare un account di accesso per l’autenticazione SQL dedicato alla configurazione attiva della replica geografica. Modificare il nome e la password di accesso come necessario.

    CREATE LOGIN geodrsetup
        WITH PASSWORD = 'ComplexPassword01';
    
  3. Nello stesso database creare un utente per l’account di accesso e aggiungerlo al ruolo dbmanager:

    CREATE USER geodrsetup FOR LOGIN geodrsetup;
    
    ALTER ROLE dbmanager ADD MEMBER geodrsetup;
    
  4. Prendere nota del valore SID indicato in nell’accesso. Ottenere il valore SID con la query seguente.

    SELECT sid
    FROM sys.sql_logins
    WHERE name = 'geodrsetup';
    
  5. Connessione al database primario (non al database master) e creare un utente per lo stesso account di accesso.

    CREATE USER geodrsetup FOR LOGIN geodrsetup;
    
  6. Nello stesso database aggiungere l’utente al ruolo db_owner.

    ALTER ROLE db_owner ADD MEMBER geodrsetup;
    
  7. Nel database master nel server secondario creare lo stesso account di accesso del server primario, usando lo stesso nome, password e SID. Sostituire il valore SID esadecimale nel comando di esempio seguente con il valore ottenuto nel passaggio 4.

    CREATE LOGIN geodrsetup
        WITH PASSWORD = 'ComplexPassword01', SID = 0x010600000000006400000000000000001C98F52B95D9C84BBBA8578FACE37C3E;
    
  8. Nello stesso database creare un utente per l’account di accesso e aggiungerlo al ruolo dbmanager.

    CREATE USER geodrsetup FOR LOGIN geodrsetup;
    
    ALTER ROLE dbmanager ADD MEMBER geodrsetup;
    
  9. Connettersi al database master nel server primario usando il nuovo accesso geodrsetup e avviare la creazione della replica geografica secondaria nel server secondario. Modificare il nome del database e il nome del server secondario come necessario. Dopo aver eseguito il comando, è possibile monitorare la creazione geografica secondaria eseguendo una query sulla vista sys.dm_geo_replication_link_status nel database primario e sulla vista sys.dm_operation_status nel database master nel server primario. Il tempo necessario per creare un database geografico secondario dipende dalle dimensioni del database primario.

    alter database [dbrep] add secondary on server [servername];
    
  10. Dopo la creazione della replica geografica secondaria, è possibile rimuovere gli utenti, gli account di accesso e le regole del firewall creati dalla procedura.