Esercitazione: Configurare la sincronizzazione dati SQL tra i database nel database SQL di Azure e in SQL Server

Si applica a: Database SQL di Azure

In questa esercitazione si imparerà a configurare la sincronizzazione dati SQL creando un gruppo di sincronizzazione che contiene sia istanze del database SQL di Azure che istanze di SQL Server. Il gruppo di sincronizzazione ha una configurazione personalizzata ed esegue la sincronizzazione in base alla pianificazione impostata dall'utente.

Questa esercitazione presuppone un certo livello di esperienza con il database SQL di Azure e SQL Server.

Per una panoramica della sincronizzazione dati SQL, vedere Sincronizzare i dati tra più database cloud e locali con la sincronizzazione dati SQL.

Per esempi di PowerShell su come configurare la sincronizzazione dati SQL, vedere Come eseguire la sincronizzazione tra database nel database SQL o tra database nel database SQL di Azure e in SQL Server

Importante

sincronizzazione dati SQL non supporta attualmente Istanza gestita di SQL di Azure o Azure Synapse Analytics.

Creare un gruppo di sincronizzazione

  1. Passare al portale di Azure per trovare il database nel database SQL. Cercare e selezionare Database SQL.

    Cercare i database, portale di Microsoft Azure

  2. Selezionare il database che si vuole usare come database hub per la sincronizzazione dati.

    Effettuare la selezione dall'elenco di database, portale di Microsoft Azure

    Nota

    Il database hub è un endpoint centrale della topologia di sincronizzazione, in cui per un gruppo di sincronizzazione sono presenti più endpoint del database. Tutti gli altri database membri con endpoint nel gruppo di sincronizzazione eseguono la sincronizzazione con il database hub.

  3. Dal menu Database SQL per il database selezionato scegliere Sincronizza con altri database.

    Eseguire la sincronizzazione con altri database, portale di Microsoft Azure

  4. Nella pagina Sincronizza con altri database selezionare Nuovo gruppo di sincronizzazione. Verrà visualizzata la pagina Nuovo gruppo di sincronizzazione con Crea gruppo di sincronizzazione.

    Configurare un nuovo gruppo di sincronizzazione con collegamento privato

    Nella pagina Crea gruppo di sincronizzazione dati cambiare le impostazioni seguenti:

    Impostazione Descrizione
    Nome gruppo di sincronizzazione Immettere un nome per il nuovo gruppo di sincronizzazione. Questo nome è distinto dal nome del database stesso.
    Database dei metadati di sincronizzazione Scegliere di creare un database (scelta consigliata) o usare un database esistente.

    Se si sceglie Nuovo database, selezionare Crea nuovo database. Nella pagina database SQL assegnare un nome e configurare il nuovo database e selezionare OK.

    Se si sceglie Usa database esistente, selezionare il database dall'elenco.
    Sincronizzazione automatica Selezionare o No.

    Se si sceglie , immettere un numero e selezionare Secondi, Minuti, Ore o Giorni nella sezione Frequenza sincronizzazione.
    La prima sincronizzazione inizia al termine dell'intervallo di tempo selezionato dopo il salvataggio della configurazione.
    Risoluzione dei conflitti Selezionare Priorità hub o Priorità membro.

    Priorità hub significa che, quando si verifica un conflitto, i dati nel database hub sovrascrivono i dati in conflitto nel database membro.

    Priorità membro significa che, quando si verifica un conflitto, i dati nel database membro sovrascrivono i dati in conflitto nel database hub.
    Usare il collegamento privato Scegliere un endpoint privato gestito dal servizio per stabilire una connessione sicura tra il servizio di sincronizzazione e il database hub.

    Nota

    Microsoft consiglia di creare un nuovo database vuoto da usare come Database dei metadati di sincronizzazione. La sincronizzazione dati crea tabelle in questo database ed esegue un carico di lavoro frequente. Questo database viene condiviso come database dei metadati di sincronizzazione per tutti i gruppi di sincronizzazione in un'area e in una sottoscrizione selezionate. Non è possibile modificare il database o il nome di questo senza rimuovere tutti i gruppi e gli agenti di sincronizzazione nell'area. Inoltre, un database di processi elastici non può essere usato come database di metadati sincronizzazione dati SQL e viceversa.

    Selezionare OK e attendere che il gruppo di sincronizzazione venga creato e distribuito.

  5. Nella pagina Nuovo gruppo di sincronizzazione, se è stata selezionata l'opzione Usa collegamento privato, sarà necessario approvare la connessione all'endpoint privato. Il collegamento nel messaggio di informazioni consente di passare all'esperienza di connessione all'endpoint privato in cui è possibile approvare la connessione.

    Approvare il collegamento privato

    Nota

    I collegamenti privati per il gruppo di sincronizzazione e i membri di sincronizzazione devono essere creati, approvati e disabilitati separatamente.

Aggiungere membri di sincronizzazione

Dopo aver creato e distribuito il nuovo gruppo di sincronizzazione, aprire il gruppo di sincronizzazione e accedere alla pagina Database , in cui verranno selezionati i membri di sincronizzazione.

Selezionare i membri di sincronizzazione

Nota

Per aggiornare o inserire il nome utente e la password nel database hub, passare alla sezione Database hub nella pagina Seleziona membri di sincronizzazione .

Per aggiungere un database nel database SQL di Azure

Nella sezione Seleziona membri di sincronizzazione aggiungere facoltativamente un database in Azure SQL Database al gruppo di sincronizzazione selezionando Aggiungi un database di Azure. Verrà aperta la pagina Configura database di Azure.

Aggiungere un database al gruppo di sincronizzazione

Nella pagina Configura database SQL di Azure cambiare le impostazioni seguenti:

Impostazione Descrizione
Nome membro di sincronizzazione Specificare un nome per il nuovo membro di sincronizzazione. Questo nome è distinto dal nome del database.
Sottoscrizione Selezionare la sottoscrizione di Azure associata ai fini della fatturazione.
Azure SQL Server Selezionare il server esistente.
Database SQL di Azure Selezionare il database esistente nel database SQL.
Direzioni sincronizzazione Selezionare Sincronizzazione bidirezionale, Verso l'hub o Dall'hub.
Nome utente e Password Immettere le credenziali esistenti per il server in cui si trova il database membro. Non immettere nuove credenziali in questa sezione.
Usare il collegamento privato Scegliere un endpoint privato gestito dal servizio per stabilire una connessione sicura tra il servizio di sincronizzazione e il database membro.

Selezionare OK e attendere che il nuovo membro di sincronizzazione venga creato e distribuito.

Per aggiungere un nuovo database di SQL Server

Nella sezione Database membro aggiungere facoltativamente un database di SQL Server al gruppo di sincronizzazione selezionando Aggiungi un database locale. Verrà visualizzata la pagina Configura database locale, in cui è possibile eseguire le operazioni seguenti:

  1. Selezionare Scegliere il gateway dell'agente di sincronizzazione. Verrà aperta la pagina Seleziona agente di sincronizzazione.

    Creazione di un agente di sincronizzazione

  2. Nella pagina Seleziona agente di sincronizzazione scegliere se usare un agente esistente o crearne uno.

    Se si sceglie Agenti esistenti, selezionare l'agente esistente dall'elenco.

    Se si sceglie Consente di creare un nuovo agente, eseguire le operazioni seguenti:

    1. Scaricare l'agente di sincronizzazione dati dal collegamento disponibile e installarlo nel computer in cui si trova SQL Server. È anche possibile scaricare l'agente direttamente da SQL Azure Data Sync Agent.

      Importante

      È necessario aprire la porta TCP 1433 in uscita nel firewall per consentire all'agente client di comunicare con il server.

    2. Immettere un nome per l'agente.

    3. Selezionare Crea e genera chiave e copiare la chiave dell'agente negli Appunti.

    4. Selezionare OK per chiudere la pagina Seleziona agente di sincronizzazione.

  3. Nel computer SQL Server individuare ed eseguire l'app dell'agente di sincronizzazione client.

    App dell'agente client di sincronizzazione dati

    1. Nell'app dell'agente di sincronizzazione selezionare Submit Agent Key (Invia chiave agente). Verrà aperta la finestra di dialogo Sync Metadata Database Configuration (Configurazione del database dei metadati di sincronizzazione).

    2. Nella finestra di dialogo Sync Metadata Database Configuration (Configurazione del database dei metadati di sincronizzazione) incollare la chiave dell'agente copiata dal portale di Azure. Specificare anche le credenziali esistenti per il server in cui si trova il database dei metadati. Se è stato creato un database dei metadati, tale database si trova nello stesso server del database hub. Selezionare OK e attendere che la configurazione venga completata.

      Immettere la chiave dell'agente e le credenziali del server

      Nota

      Se viene visualizzato un errore del firewall, creare una regola del firewall in Azure per consentire il traffico in ingresso dal computer SQL Server. È possibile creare manualmente la regola nel portale o in SQL Server Management Studio (SSMS). In SSMS connettersi al database hub in Azure immettendone il nome come <hub_database_name.database.windows.net>.

    3. Selezionare Registra per registrare un database SQL Server con l'agente. Verrà aperta la finestra di dialogo Configurazione di SQL Server.

      Aggiungere e configurare un database di SQL Server

    4. Nella finestra di dialogo Configurazione di SQL Server scegliere di effettuare la connessione tramite l'autenticazione di SQL Server o l'autenticazione di Windows. Se si sceglie l'autenticazione di SQL Server, immettere le credenziali esistenti. Specificare il nome dell'istanza di SQL Server e il nome del database che si vuole sincronizzare e selezionare Test connessione per testare le impostazioni. Selezionare quindi Salva. Il database registrato verrà visualizzato nell'elenco.

      Il database di SQL Server è ora registrato

    5. Chiudere l'app dell'agente di sincronizzazione client.

  4. Nella pagina Configura database locale del portale selezionare Selezionare il database.

  5. Nella pagina Seleziona database, nel campo Nome membro di sincronizzazione, specificare un nome per il nuovo membro di sincronizzazione. Questo nome è distinto dal nome del database stesso. Selezionare il database nell'elenco. Nel campo Direzioni sincronizzazione selezionare Sincronizzazione bidirezionale, Verso l'hub o Dall'hub.

    Selezionare il database locale

  6. Selezionare OK per chiudere la finestra Seleziona database. Selezionare quindi OK per chiudere la pagina Configura database locale e attendere che il nuovo membro di sincronizzazione venga creato e distribuito. Selezionare infine OK per chiudere la pagina Selezionare i membri di sincronizzazione.

Nota

Per connettersi alla sincronizzazione dati SQL e all'agente locale, aggiungere il proprio nome utente al ruolo DataSync_Executor. Sincronizzazione dati crea questo ruolo nell'istanza di SQL Server.

Configurare il gruppo di sincronizzazione

Dopo aver creato e distribuito i nuovi membri del gruppo di sincronizzazione, passare alla sezione Tabelle nella pagina Gruppo di sincronizzazione database .

Impostazioni del passaggio 3

  1. Nella pagina Tabelle selezionare un database dall'elenco dei membri del gruppo di sincronizzazione e selezionare Aggiorna schema. Attendere alcuni minuti di ritardo nello schema di aggiornamento, il ritardo potrebbe essere di alcuni minuti più lungo se si usa il collegamento privato.

  2. Selezionare dall'elenco le tabelle da sincronizzare. Per impostazione predefinita, tutte le colonne sono selezionate. Disabilitare quindi le caselle di controllo corrispondenti alle colonne che non si vogliono sincronizzare. Assicurarsi di lasciare selezionata la colonna chiave primaria.

  3. Selezionare Salva.

  4. Per impostazione predefinita, i database vengono sincronizzati solo manualmente o tramite pianificazione. Per eseguire una sincronizzazione manuale, passare al database nel database SQL nel portale di Azure, selezionare Sincronizza con altri database e selezionare il gruppo di sincronizzazione. Verrà aperta la pagina Sincronizzazione dati. Selezionare Sincronizza.

    Sincronizzazione manuale

Domande frequenti

La sincronizzazione dati SQL crea tabelle complete?

Se le tabelle dello schema di sincronizzazione non sono presenti nel database di destinazione, la sincronizzazione dati SQL le crea usando le colonne selezionate dall'utente. Questa operazione tuttavia non ha come risultato uno schema pienamente fedele per i motivi seguenti:

  • Nella tabella di destinazione vengono create solo le colonne selezionate dall'utente. Le colonne non selezionate vengono ignorate.
  • Nella tabella di destinazione vengono creati solo gli indici di colonna selezionati. Per le colonne non selezionate, tali indici vengono ignorati.
  • Gli indici nelle colonne di tipo XML non vengono creati.
  • I vincoli CHECK non vengono creati.
  • I trigger esistenti nelle tabelle di origine non vengono creati.
  • Le viste e le stored procedure non vengono create.

A causa di questi limiti, è consigliabile eseguire le operazioni seguenti:

  • Per gli ambienti di produzione, creare manualmente uno schema pienamente fedele.
  • Quando si eseguono esperimenti con il servizio, usare la funzionalità di provisioning automatico.

Perché sono visualizzate tabelle non create dall'utente?

La sincronizzazione dati crea tabelle aggiuntive nel database utente per il rilevamento delle modifiche. Non eliminarle o la sincronizzazione dati cesserà di funzionare.

I dati risultano convergenti dopo una sincronizzazione?

Non necessariamente. Si supponga che in un gruppo di sincronizzazione con un hub e tre spoke (A, B e C), le sincronizzazioni siano da hub ad A, da hub a B e da hub a C. Se si apporta una modifica al database A dopo la sincronizzazione da hub ad A, tale modifica viene scritta nei database B e C solo dopo l'attività di sincronizzazione successiva.

Come si ottengono le modifiche dello schema in un gruppo di sincronizzazione?

Apportare e propagare tutte le modifiche allo schema manualmente.

  1. Replicare manualmente le modifiche dello schema nell'hub e in tutti i membri di sincronizzazione.
  2. Aggiornare lo schema di sincronizzazione.

Per aggiungere nuove tabelle e colonne:

Nuove tabelle e colonne non influiscono sulla sincronizzazione corrente e la sincronizzazione dati le ignora fino a quando non vengono aggiunte allo schema di sincronizzazione. Quando si aggiungono nuovi oggetti di database, rispettare questa sequenza:

  1. Aggiungere le nuove tabelle o colonne all'hub e a tutti i membri di sincronizzazione.
  2. Aggiungere le nuove tabelle o colonne allo schema di sincronizzazione.
  3. Iniziare a inserire valori nelle nuove tabelle e colonne.

Per cambiare il tipo di dati di una colonna:

Quando si modifica il tipo di dati di una colonna esistente, la sincronizzazione dei dati continua a funzionare, fino a quando i nuovi valori sono conformi al tipo di dati originale definito nello schema di sincronizzazione. Se ad esempio si modifica il tipo nel database di origine da int a bigint, la sincronizzazione dati continua a funzionare fino a quando non si inserisce un valore troppo grande per il tipo di dati int. Per completare la modifica, replicare manualmente la modifica dello schema nell'hub e in tutti i membri di sincronizzazione e quindi aggiornare lo schema di sincronizzazione.

Come si esporta e importa un database con la sincronizzazione dati?

Dopo aver esportato un database come .bacpac file e aver importato il file per creare un database, eseguire le operazioni seguenti per usare sincronizzazione dati nel nuovo database:

  1. Pulire gli oggetti di sincronizzazione dati e le tabelle aggiuntive nel nuovo database usando Sincronizzazione dati complete cleanup.sql. Lo script elimina dal database tutti gli oggetti di sincronizzazione dati richiesti.
  2. Creare di nuovo il gruppo di sincronizzazione con il nuovo database. Se il gruppo di sincronizzazione precedente non è più necessario, eliminarlo.

Dove è possibile trovare informazioni sull'agente client?

Per le domande frequenti sull'agente client, vedere Domande frequenti sull'agente.

È necessario approvare manualmente il collegamento prima di iniziare a usarlo?

Sì, è necessario approvare manualmente l'endpoint privato gestito dal servizio, nella pagina Connessioni a endpoint privato del portale di Azure durante la distribuzione del gruppo di sincronizzazione o usando PowerShell.

Perché viene visualizzato un errore del firewall quando il processo di sincronizzazione esegue il provisioning del database di Azure?

Ciò può verificarsi perché le risorse di Azure non sono autorizzate ad accedere al server. Assicurarsi che il firewall nel database di Azure abbia impostato "Consenti ai servizi e alle risorse di Azure di accedere a questo server" su "Sì".

Passaggi successivi

Complimenti. è stato creato un gruppo di sincronizzazione che include sia un'istanza di database SQL che un database SQL Server.

Per altre informazioni sulla sincronizzazione dati SQL, vedere:

Per altre informazioni sul database SQL, vedere: