Data Sync Agent per la sincronizzazione dati SQL Azure

Si applica a:Database SQL di Azure

Sincronizzare i dati con i database SQL Server locali installando e configurando Data Sync Agent per la sincronizzazione dati SQL di Azure. Per altre informazioni sulla sincronizzazione dei dati SQL, vedere Sincronizzare i dati tra più database cloud e locali con la sincronizzazione dati SQL.

Importante

Al momento, la sincronizzazione dati SQL non supporta Istanza gestita di SQL di Azure o Azure Synapse Analytics.

Scaricare e installare

Per scaricare Data Sync Agent, visitare SQL Data Sync Agent. Per aggiornare Data Sync Agent, installare l'agente nella stessa posizione dell'agente precedente ed eseguirà l'override di quello originale.

Installazione invisibile all'utente

Per installare automaticamente l'agente di sincronizzazione dei dati dal prompt dei comandi, immettere un comando simile all'esempio seguente. Controllare il nome del file con estensione msi scaricato e specificare i propri valori per gli argomenti TARGETDIR e SERVICEACCOUNT.

  • Se non si specifica un valore per TARGETDIR, il valore predefinito è C:\Program Files (x86)\Microsoft SQL Data Sync 2.0.

  • Se si specifica LocalSystem come valore di SERVICEACCOUNT, usare l'autenticazione di SQL Server quando si configura l'agente per la connessione a SQL Server.

  • Se come valore di SERVICEACCOUNT si specifica un account utente di dominio o un account utente locale, è anche necessario specificare la password con l'argomento SERVICEPASSWORD. Ad esempio, SERVICEACCOUNT="<domain>\<user>" SERVICEPASSWORD="<password>".

msiexec /i "SQLDataSyncAgent-2.0-x86-ENU.msi" TARGETDIR="C:\Program Files (x86)\Microsoft SQL Data Sync 2.0" SERVICEACCOUNT="LocalSystem" /qn

Sincronizzare i dati con un database di SQL Server

Per configurare l'agente di sincronizzazione dei dati in modo da poter sincronizzare i dati con uno o più database SQL Server, vedere Aggiungere un database SQL Server.

Domande frequenti su Data Sync Agent

Perché è necessario un agente client?

Il servizio di sincronizzazione dati SQL comunica con i database SQL Server tramite l'agente client. Questa funzionalità di sicurezza impedisce la comunicazione diretta con i database protetti da un firewall. Per comunicare con l'agente, il servizio di sincronizzazione dati SQL usa connessioni crittografate e un token univoco o chiave dell'agente. I database SQL Server autenticano l'agente usando la stringa di connessione o la chiave dell'agente. Questa struttura offre un livello elevato di sicurezza per i dati.

Quante istanze dell'interfaccia utente dell'agente locale è possibile eseguire?

È possibile eseguire una sola istanza dell'interfaccia utente.

In che modo si può modificare l'account del servizio?

Dopo avere installato un agente client, l'unico modo per modificare l'account del servizio consiste nel disinstallarlo e installare un nuovo agente client con un nuovo account di servizio.

Come si modifica la chiave dell'agente?

Una chiave dell'agente può essere usata una sola volta da un agente. Non può essere riusata quando si rimuovere l'agente e se ne installa uno nuovo. Non può essere usata neppure con più agenti. Se è necessario creare una nuova chiave per un agente esistente, assicurarsi che la stessa chiave venga registrata con l'agente client e con il servizio di sincronizzazione dati SQL.

Come si ritira un agente client?

Per invalidare o ritirare immediatamente un agente, rigenerarne la chiave nel portale, ma non inviarla all'interfaccia utente dell'agente. La rigenerazione di una chiave invalida la chiave precedente, a prescindere che l'agente sia online o offline.

Come si sposta un agente client in un altro computer?

Se si vuole eseguire l'agente locale da un computer diverso da quello corrente, eseguire le operazioni seguenti:

  1. Installare l'agente nel computer desiderato.
  2. Accedere al portale di sincronizzazione dati SQL e rigenerare una chiave per il nuovo agente.
  3. Usare l'interfaccia utente del nuovo agente per inviare la nuova chiave dell'agente.
  4. Attendere che l'agente client scarichi l'elenco di database locali registrati in precedenza.
  5. Immettere le credenziali di database per tutti i database visualizzati come non raggiungibili. Questi database devono essere raggiungibili dal nuovo computer in cui è installato l'agente.

Come si elimina il database dei metadati di sincronizzazione se l'agente di sincronizzazione è ancora associato

Per eliminare un database dei metadati di sincronizzazione a cui è associato un agente di sincronizzazione, è prima necessario eliminare l'agente di sincronizzazione. Per eliminare l'agente, eseguire le operazioni seguenti:

  1. Selezionare il database di sincronizzazione.
  2. Passare alla pagina Sincronizza con altri database.
  3. Selezionare l'agente di sincronizzazione e selezionare Elimina.

Risolvere i problemi relativi all'agente di sincronizzazione dei dati

L'installazione, la disinstallazione o il ripristino dell'agente non riesce

  • Causa. Molti scenari potrebbero causare questo errore. Per determinare la causa specifica di questo errore, analizzare i log.

  • Risoluzione. Per trovare la causa specifica dell'errore, generare ed esaminare i log di Windows Installer. È possibile attivare la registrazione al prompt dei comandi. Ad esempio, se il file di installazione scaricato è SQLDataSyncAgent-2.0-x86-ENU.msi, generare e analizzare i file di log usando le righe di comando seguenti:

    • Per le installazioni: msiexec.exe /i SQLDataSyncAgent-2.0-x86-ENU.msi /l*v LocalAgentSetup.Log

    • Per le disinstallazioni: msiexec.exe /x SQLDataSyncAgent-2.0-x86-ENU.msi /l*v LocalAgentSetup.Log

      È anche possibile attivare la registrazione per tutte le installazioni eseguite da Windows Installer. L'articolo della Microsoft Knowledge Base Come abilitare la registrazione di Windows Installer fornisce una soluzione con un clic per attivare la registrazione per Windows Installer e il percorso dei log.

L'agente client non funziona dopo l'annullamento della disinstallazione

L'agente client non funziona, anche dopo che è stata annullata la disinstallazione.

  • Causa. Questo problema si verifica perché l'agente client di sincronizzazione dati SQL non archivia le credenziali.

  • Risoluzione. È possibile provare queste due soluzioni:

    • Usare services.msc per immettere di nuovo le credenziali per l'agente client.
    • Disinstallare questo agente client e installarne uno nuovo. Scaricare e installare l'agente client più recente dall'Area download.

Il database non è presente nell'elenco dell'agente

Quando si prova ad aggiungere un database di SQL Server a un gruppo di sincronizzazione, il database non è presente nell'elenco di agenti.

Molti scenari potrebbero causare questo errore.

  • Causa. L'agente client e il gruppo di sincronizzazione si trovano in data center diversi.

  • Risoluzione. L'agente client e il gruppo di sincronizzazione devono trovarsi nello stesso data center. A tale scopo sono disponibili due opzioni:

    • Creare un nuovo agente nel data center in cui si trova il gruppo di sincronizzazione. Registrare quindi il database con tale agente.
    • Eliminare il gruppo di sincronizzazione corrente. Ricreare quindi il gruppo di sincronizzazione nel data center in cui si trova l'agente.
  • Causa. L'elenco di database dell'agente client non è aggiornato.

  • Risoluzione. Arrestare e quindi riavviare il servizio agente client.

    L'agente locale scarica l'elenco di database associati solo al primo invio della chiave dell'agente. Non scarica l'elenco di database associati agli invii successivi della chiave dell'agente. I database registrati durante uno spostamento dell'agente non vengono quindi visualizzati nell'istanza originale dell'agente.

L'agente client non viene avviato (errore 1069)

Si scopre che l'agente è in esecuzione in un computer che ospita SQL Server. Quando si prova ad avviare l'agente manualmente, viene visualizzata una finestra di dialogo con il messaggio "Errore 1069: Il servizio non è stato avviato a causa di un errore in fase di accesso".

Data Sync error 1069 dialog box

  • Causa. Una probabile causa di questo errore è che la password nel server locale è stata modificata dopo la creazione dell'agente e della password dell'agente.

  • Risoluzione. Aggiornare la password dell'agente alla password del server corrente:

    1. Individuare il servizio agente client di sincronizzazione dati SQL.
      a. Selezionare Inizio.
      b. Immettere services.msc nella casella di ricerca.
      c. Nei risultati della ricerca fare clic su Servizi.
      d. Nella finestra Servizi scorrere fino alla voce SQL Data Sync Agent (Agente di sincronizzazione dati SQL).
    2. Fare clic con il pulsante destro del mouse su SQL Data Sync Agent (Agente di sincronizzazione dati SQL), quindi scegliere Arresta.
    3. Fare clic con il pulsante destro del mouse su SQL Data Sync Agent (Agente di sincronizzazione dati SQL), quindi scegliere Proprietà.
    4. In SQL Data Sync Agent Properties (Proprietà dell'agente di sincronizzazione dati SQL) selezionare la scheda Accedi.
    5. Immettere la password nella casella di testo Password.
    6. Reimmettere la password nella casella di testo Conferma password.
    7. Selezionare Apply (Applica) e quindi OK.
    8. Nella finestra Servizi fare clic con il pulsante destro del mouse sul servizio SQL Data Sync Agent, quindi scegliere Avvia.
    9. Chiudere la finestra Servizi.

Non è possibile inviare la chiave dell'agente

Dopo avere creato o ricreato una chiave per un agente, si prova a inviarla tramite l'applicazione SqlAzureDataSyncAgent. Non è tuttavia possibile completare l'invio.

Sync Error dialog box - Can't submit agent key

  • Prerequisiti. Prima di procedere, verificare i prerequisiti seguenti:

    • Il servizio di Windows di sincronizzazione dati SQL è in esecuzione.

    • L'account del servizio per il servizio di Windows di sincronizzazione dati SQL ha accesso alla rete.

    • La porta in uscita 1433 nella regola del firewall locale è aperta.

    • L'indirizzo IP locale viene aggiunto alla regola del firewall del server o del database per il database dei metadati di sincronizzazione.

  • Causa. La chiave dell'agente identifica in modo univoco ogni agente locale. La chiave deve soddisfare due condizioni:

    • La chiave dell'agente client nel server di sincronizzazione dati SQL e nel computer locale deve essere identica.
    • La chiave dell'agente client può essere usata una sola volta.
  • Risoluzione. L'agente non funziona perché una o entrambe queste condizioni non sono soddisfatte. Per fare in modo che l'agente funzioni nuovamente:

    1. Generare una nuova chiave.
    2. Applicare la nuova chiave all'agente.

    Per applicare la nuova chiave all'agente:

    1. In Esplora File passare alla directory di installazione dell'agente. La directory di installazione predefinita è C:\Program Files (x86)\Microsoft SQL Data Sync.
    2. Fare doppio clic sulla sottodirectory bin.
    3. Aprire l'app SqlAzureDataSyncAgent.
    4. Selezionare Submit Agent Key (Invia la chiave dell'agente).
    5. Incollare la chiave dagli Appunti nello spazio disponibile.
    6. Seleziona OK.
    7. Chiudere il programma.

L'agente client non può essere eliminato dal portale se il database locale associato non è raggiungibile

Se un endpoint locale, ovvero un database, registrato con un agente client di sincronizzazione dati SQL non è raggiungibile, l'agente client non può essere eliminato.

  • Causa. L'agente locale non può essere eliminato perché il database non raggiungibile è ancora registrato con l'agente. Quando si prova a eliminare l'agente, il processo di eliminazione prova a raggiungere il database, ma non riesce.

  • Risoluzione. Usare l'eliminazione forzata per eliminare il database non raggiungibile.

Nota

Se dopo una eliminazione forzata le tabelle di metadati di sincronizzazione sono ancora presenti, usare deprovisioningutil.exe per pulirle.

L'app dell'agente di sincronizzazione locale non riesce a connettersi al servizio di sincronizzazione locale

  • Risoluzione. Attenersi alla procedura seguente:

    1. Uscire dall'app.
    2. Aprire il pannello Servizi componenti.
      a. Nella casella di ricerca della barra delle applicazioni immettere services.msc.
      b. Fare doppio clic su Servizi nei risultati della ricerca.
    3. Arrestare il servizio di sincronizzazione dati SQL.
    4. Riavviare il servizio di sincronizzazione dati SQL.
    5. Riaprire l'app.

Eseguire l'agente di sincronizzazione dei dati dal prompt dei comandi

È possibile eseguire i comandi dell'agente di sincronizzazione dei dati seguenti dal prompt dei comandi:

Eseguire il ping del servizio

Utilizzo

SqlDataSyncAgentCommand.exe -action pingsyncservice

Esempio

SqlDataSyncAgentCommand.exe -action "pingsyncservice"

Visualizzare i database registrati

Utilizzo

SqlDataSyncAgentCommand.exe -action displayregistereddatabases

Esempio

SqlDataSyncAgentCommand.exe -action "displayregistereddatabases"

Inviare la chiave dell'agente

Utilizzo

Usage: SqlDataSyncAgentCommand.exe -action submitagentkey -agentkey [agent key]  -username [user name] -password [password]

Esempio

SqlDataSyncAgentCommand.exe -action submitagentkey -agentkey [agent key generated from portal, PowerShell, or API] -username [user name to sync metadata database] -password [user name to sync metadata database]

Registrare un database

Utilizzo

SqlDataSyncAgentCommand.exe -action registerdatabase -servername [on-premisesdatabase server name] -databasename [on-premisesdatabase name]  -username [domain\\username] -password [password] -authentication [sql or windows] -encryption [true or false]

Esempi

SqlDataSyncAgentCommand.exe -action "registerdatabase" -serverName localhost -databaseName testdb -authentication sql -username <user name> -password <password> -encryption true

SqlDataSyncAgentCommand.exe -action "registerdatabase" -serverName localhost -databaseName testdb -authentication windows -encryption true

Annullare la registrazione di un database

Quando si usa questo comando per annullare la registrazione di un database, si effettua il deprovisioning completo del database. Se il database fa parte di altri gruppi di sincronizzazione, questa operazione li interrompe.

Utilizzo

SqlDataSyncAgentCommand.exe -action unregisterdatabase -servername [on-premisesdatabase server name] -databasename [on-premisesdatabase name]

Esempio

SqlDataSyncAgentCommand.exe -action "unregisterdatabase" -serverName localhost -databaseName testdb

Aggiornare le credenziali

Utilizzo

SqlDataSyncAgentCommand.exe -action updatecredential -servername [on-premisesdatabase server name] -databasename [on-premisesdatabase name]  -username [domain\\username] -password [password] -authentication [sql or windows] -encryption [true or false]

Esempi

SqlDataSyncAgentCommand.exe -action "updatecredential" -serverName localhost -databaseName testdb -authentication sql -username <user name> -password <password> -encryption true

SqlDataSyncAgentCommand.exe -action "updatecredential" -serverName localhost -databaseName testdb -authentication windows -encryption true

Passaggi successivi

Per altre informazioni sulla sincronizzazione dati SQL, vedere gli articoli seguenti: