Condividi tramite


Replicare i dati in Azure SQL Database usando il servizio di esportazione dati

Nota

A partire da novembre 2021, Servizio di esportazione dati è deprecato. Servizio di esportazione dati continuerà a funzionare e sarà completamente supportato fino a quando non raggiungerà la fine del supporto e la fine del ciclo di vita a novembre 2022. Altre informazioni: https://aka.ms/DESDeprecationBlog

Il servizio di esportazione dati è un servizio aggiuntivo reso disponibile in Microsoft Marketplace che consente di replicare i dati dal database Microsoft Dataverse a un archivio Azure SQL Database in una sottoscrizione di Azure di proprietà del cliente. Le destinazioni di destinazione supportate sono Azure SQL Database e SQL Server nelle macchine virtuali Azure. Servizio di esportazione dati sincronizza in modo intelligente tutti i dati e quindi esegue la sincronizzazione in modo continuo mentre si verificano le modifiche (modifiche delta) nel sistema. Ciò consente di abilitare diversi scenari di analisi e creazione di report sui dati con Azure servizi di dati e analisi e offre nuove possibilità per i clienti e i partner di creare soluzioni personalizzate.

Nota

È consigliabile esportare i dati di Dataverse in Azure Synapse Analytics e/o Azure Data Lake Gen2 con Azure Synapse Link per Dataverse. Altre informazioni: Accelera il tempo per ottenere informazioni con Azure Synapse Link per Dataverse

È possibile usare il servizio di esportazione dati con le app di coinvolgimento dei clienti (Dynamics 365 Sales, Dynamics 365 Customer Service, Dynamics 365 Field Service, Dynamics 365 Marketing e Dynamics 365 Project Service Automation).

Per informazioni sull'interfaccia programmatica per la gestione della configurazione e l'amministrazione di Servizio di esportazione dati, vedi Servizio di esportazione dati nella guida per gli sviluppatori.

Prerequisiti per l'uso di Servizio di esportazione dati

Per iniziare a utilizzare Servizio di esportazione dati, sono obbligatori questi prerequisiti.

servizio Azure SQL Database

  • Il cliente possiede una sottoscrizione ad Azure SQL Database. La sottoscrizione deve abilitare il volume di dati da sincronizzare.

  • Impostazioni del firewall. È consigliabile disattivare Consenti accesso ai servizi Azure e specificare gli indirizzi IP client appropriati elencati in questo argomento. Altre informazioni: Azure SQL indirizzi IP statici del database usati dal servizio di esportazione dati

    In alternativa, è possibile attivare Consenti l'accesso ai servizi Azure per consentire l'accesso a tutti i servizi Azure.

    Per SQL Server nella macchina virtuale Azure, è necessario abilitare l'opzione "Connetti a SQL Server tramite Internet". Altre informazioni: Azure: Connettersi a una macchina virtuale SQL Server in Azure

    Configurare inoltre le regole del firewall per consentire la comunicazione tra il servizio di esportazione dati e SQL Server.

  • L'utente del database deve disporre delle autorizzazioni a livello di database e schema nelle tabelle seguenti. L'utente del database viene usato nella connection string di esportazione dei dati.

    Autorizzazioni database obbligatorie.

    Codice tipo di autorizzazione Nome autorizzazione
    CRTB CREATE TABLE
    CRTY CREA TIPO
    CRVW CREA VISTA
    CRPR CREA PROCEDURA
    ALUS MODIFICA QUALSIASI UTENTE
    VWDS VISUALIZZARE LO STATO DEL DATABASE

    Autorizzazioni schema obbligatorie.

    Codice tipo di autorizzazione Nome autorizzazione
    AL ALTER
    IN INSERT
    DL DELETE
    SL SELECT
    UP UPDATE
    EX EXECUTE
    RF REFERENCES

servizio Azure Key Vault

  • Sottoscrizione Key Vault di proprietà del cliente, usata per gestire in modo sicuro il connection string del database.

  • Concedere l'autorizzazione PermissionsToSecrets all'applicazione con id "b861dbcc-a7ef-4219-a005-0e4de4ea7dcf". Questa operazione può essere completata eseguendo il comando AzurePowerShell seguente e viene usato per accedere al Key Vault che contiene il segreto connection string. Altre informazioni: Come configurare Azure Key Vault

  • I segreti del Key Vault devono essere etichettati con l'ID dell'organizzazione (OrgId) e l'ID tenant (TenantId). Questa operazione può essere effettuata eseguendo il comando AzurePowerShell che segue. Altre informazioni: Come configurare Azure Key Vault

  • Configurare le regole del firewall per consentire la comunicazione tra il servizio di esportazione dati e Azure Key Vault.

App di interazione con i clienti

  • Ambiente versione 9.0 o successiva.

  • La soluzione Servizio di esportazione dati deve essere installata.

    • Passare a Settings>Microsoft Marketplace> cercare o passare a Microsoft Dynamics 365 - Servizio di esportazione dati e quindi selezionare Get it now.
    • In alternativa, trovarlo in Microsoft Marketplace.
  • Le entità che verranno aggiunte al profilo di esportazione devono essere abilitate con la registrazione modifiche. Per essere certi che un'entità standard o personalizzata possa essere sincronizzata passa a Personalizzazione>Personalizza il sistema e quindi seleziona l'entità. Nella scheda Generale verificare che l'opzione Registrazione modifiche nella sezione Servizi dati sia abilitata.

  • È necessario disporre del ruolo di sicurezza di amministratore di sistema nell'ambiente.

Web browser

Consentire le finestre popup per il dominio https://discovery.crmreplication.azure.net/ nel Web browser. Questa operazione è obbligatoria per l'accesso automatico quando si passa a Impostazioni > Esportazione dati.

Servizi, credenziali e privilegi necessari

Per utilizzare la funzionalità Servizio di esportazione dati, devi disporre dei servizi, delle credenziali e dei privilegi seguenti.

  • Un abbonamento. Solo gli utenti assegnati al ruolo di sicurezza Amministratore di sistema possono configurare o apportare modifiche a un profilo di esportazione.

  • Azure sottoscrizione che include i servizi seguenti.

    • Azure SQL Database o il server AzureSQL nelle macchine virtuali Azure.

    • Azure Key Vault.

Importante

Per usare il servizio di esportazione dati, le app di engagement dei clienti e i servizi di Azure Key Vault devono operare nello stesso tenant e all'interno dello stesso Microsoft Entra ID. Altre informazioni: integrazione di Azure con Microsoft 365

Il servizio Azure SQL Database può trovarsi nello stesso tenant o in un tenant diverso dal servizio.

Che cosa è necessario sapere prima di usare il Servizio di esportazione dati

  • I profili di esportazione devono essere eliminati e quindi ricreati ogni volta che si esegue una delle seguenti azioni su un ambiente.

    • Ripristina un ambiente.
    • Copia (completamente o parzialmente) un ambiente.
    • Reimposta un ambiente.
    • Sposta un ambiente su un paese o area geografica diversi.

    A tale scopo, eliminare il profilo di esportazione nella visualizzazione PROFILI DI ESPORTAZIONE, eliminare le tabelle e le stored procedure e quindi creare un nuovo profilo. Ulteriori informazioni: Come eliminare tutte le tabelle del profilo Esportazione dati e le stored procedure

  • Il Servizio di esportazione dati non funziona per gli ambienti sandbox o di produzione configurati con l'opzione Abilita modalità di amministrazione selezionata. Ulteriori informazioni: Modalità di amministrazione.

  • Il servizio di esportazione dati non elimina (eliminare) le tabelle, le colonne o gli oggetti stored procedure associati nel database di destinazione Azure SQL quando si verificano le azioni seguenti.

Esporta profilo

Per esportare dati dalle app di interazione con i clienti, l'amministratore crea un profilo di esportazione. È possibile creare più profili e attivarli per sincronizzare simultaneamente i dati in diversi database di destinazione.

Il profilo di esportazione è il concetto principale di Servizio di esportazione dati. Il profilo di esportazione raccoglie informazioni di installazione e configurazione per la sincronizzazione dei dati con il database di destinazione. Come parte del profilo di esportazione, l'amministratore fornisce un elenco di entità da esportare nel database di destinazione. Dopo l'attivazione, il profilo di esportazione avvia la sincronizzazione automatica dei dati. Inizialmente, vengono esportati tutti i dati corrispondenti a ogni entità selezionata. Successivamente, utilizzando un meccanismo di push vengono sincronizzate costantemente quasi in tempo reale solo le modifiche apportate ai dati nei record dell'entità o nei metadati nelle app di interazione con i clienti. Di conseguenza, non è necessario impostare una pianificazione per recuperare i dati dalle app di interazione con i clienti.

Solo le entità con la registrazione delle modifiche abilitata possono essere aggiunte al profilo di esportazione. Si noti che, la maggior parte delle entità standard per l'acquisizione dei dati sono abilitate per la registrazione delle modifiche. Le entità personalizzate devono essere abilitate in modo esplicito per la registrazione delle modifiche prima di poterle aggiungere a un profilo di esportazione. Altre informazioni: Abilitare la registrazione delle modifiche per controllare la sincronizzazione dei dati

Servizio di esportazione dati esegue sia la sincronizzazione dei dati che dei metadati. Ogni entità viene tradotta in una tabella e ogni campo in un colonna nella tabella del database di destinazione. I nomi della colonna e della tabella utilizzano il nome dello schema dei metadati.

Dopo averlo attivato, un profilo di esportazione raccoglie le statistiche per la sincronizzazione dei dati che facilita la visibilità operativa e la diagnostica dei dati esportati.

Sincronizzazione dei dati disponibile con un profilo di esportazione

Categoria Funzionalità Tipi di dati supportati
Sincronizzazione iniziale Metadati - Tipi di dati di base Dati di tipo: numero intero, numero a virgola mobile, numero decimale, singola riga di testo, testo multilinea, data e ora.
Sincronizzazione iniziale Metadati - Tipi di dati avanzati Valuta, PartyList, set di opzioni, stato, motivo stato, lookup (inclusi tipo lookup Tipo relativo e Cliente). PartyList è disponibile solo nella versione di esportazione 8.1 e successive.
Sincronizzazione iniziale Dati - Tipi di dati di base Tutti i tipi di dati di base.
Sincronizzazione iniziale Dati - Tipi avanzati Tutti i tipi di dati avanzati.
Sincronizzazione delta Schema di modifica - Tipi di base Aggiungi o modifica il cambio di campo, tutti i tipi di dati di base.
Sincronizzazione delta Schema di modifica - Tipi avanzati Aggiungi o modifica il cambio di campo, tutti i tipi di dati avanzati.
Sincronizzazione delta Dati di modifica - Tipi di base Tutti i tipi di dati di base.
Sincronizzazione delta Dati di modifica - Tipi avanzati Tutti i tipi di dati avanzati, come PartyList.

Creare un profilo di esportazione

Verificare che i requisiti seguenti siano soddisfatti prima di creare un profilo di esportazione.

  • La soluzione Servizio di esportazione dati è installata nel tuo ambiente.

  • Mantieni la stringa di connessione del database SQL nel Key Vault e copia l'URL del Key Vault per fornire nel profilo di esportazione. Altre informazioni: Azure: Introduzione a Azure Key Vault

  • Le entità da aggiungere al profilo di esportazione sono abilitate per la registrazione modifiche. Altre informazioni: Abilitare la registrazione delle modifiche per controllare la sincronizzazione dei dati

  • Il servizio di database SQL dispone di sufficiente spazio di archiviazione per l'archiviazione dei dati.

  • L'utente è un amministratore di sistema nell'ambiente.

  1. Vai a Impostazioni>Esportazione dati.

  2. Controlla l'avviso e seleziona Continua o Annulla se non vuoi esportare i dati.

  3. Per creare un nuovo profilo di esportazione seleziona Nuovo.

  4. Nel passaggio Properties immettere le informazioni seguenti e quindi selezionare Next per continuare senza connettersi al Key Vault. Se si seleziona Validate viene usato l'URL Key Vault specificato per connettersi al Key Vault.

    • Nome. Nome univoco del profilo. Questo campo è obbligatorio.

    • URL di connessione Key Vault. Key Vault URL che indica la stringa di connessione archiviata con le credenziali usate per connettersi al database di destinazione. Questo campo è obbligatorio. Altre informazioni: Come configurare Azure Key Vault

      Importante

      L'URL di connessione Key Vault fa distinzione tra maiuscole e minuscole. Immettere l'URL di connessione di Key Vault esattamente come viene visualizzato dopo aver eseguito i comandi di Windows PowerShell in questo argomento.

    • Schema. Nome per uno schema alternativo del database. Sono validi solo caratteri alfanumerici. Questo campo è facoltativo. Per impostazione predefinita, dbo è lo schema utilizzato per il database SQL di destinazione.

    • Prefisso. Prefisso da utilizzare per i nomi la tabella creati nel database di destinazione. Semplifica l'identificazione delle tabelle create per il profilo di esportazione nel database di destinazione. Quando specificato, verificare che il prefisso sia meno di 15 caratteri. Questo campo è facoltativo e solo caratteri alfanumerici sono consentiti.

    • Numero tentativi. Il numero di volte che è possibile riprovare un record nel caso di errore nel processo di inserimento o aggiornamento nella tabella di destinazione. Questo campo è obbligatorio. I valori accettabili sono 0-20 e il valore predefinito è 12.

    • Intervallo tra tentativi. Il numero di secondi da attendere prima di un altro tentativo nel caso di un errore. Questo campo è obbligatorio. I valori accettabili sono 0-3600 e il valore predefinito è 5.

    • Scrivi log di eliminazione. Impostazione facoltativa per la registrazione dei record eliminati.

    Scheda Proprietà nella finestra di dialogo Crea profilo di esportazione.

  5. Nel passaggio Seleziona entità, seleziona le entità da esportare nel database SQL di destinazione e quindi seleziona Avanti.

    Seleziona la scheda Entità nella finestra di dialogo Crea profilo di esportazione.

  6. Nel passaggio Seleziona le relazioni, è possibile sincronizzare le relazioni N:N (molti-a-molti) esistenti con le entità è selezionate nel passaggio precedente. Seleziona Avanti.

    Crea profilo di esportazione - Manage Relationships - Selezionare Relazioni.

  7. Nel passaggio Summary selezionare Crea e Attiva per creare il record del profilo e connettersi al Key Vault, che avvia il processo di sincronizzazione. Altrimenti, seleziona Crea per salvare il profilo di esportazione e per attivarlo più avanti.

    Scheda Riepilogo nella finestra di dialogo Crea profilo di esportazione.

Modificare un profilo di esportazione esistente

È possibile aggiungere o rimuovere le entità e le relazioni in un profilo di esportazione esistente che si desidera replicare.

  1. Vai a Impostazioni>Esportazione dati.

  2. Nella visualizzazione Tutti i profili di esportazione dei dati Seleziona il profilo di esportazione da modificare.

    Selezione di un profilo di esportazione.

  3. Sulla barra degli strumenti Azioni, seleziona GESTISCI ENTITÀ per aggiungere o rimuovere le entità per l'esportazione di dati. Per aggiungere o rimuovere le relazioni di entità, seleziona GESTISCI RELAZIONI.

    Gestione di entità o relazioni di entità.

  4. Seleziona le entità o la relazione di entità da aggiungere o rimuovere dal profilo.

    Seleziona le entità o la relazione di entità da aggiungere o rimuovere.

  5. Seleziona Aggiorna per inviare le modifiche al profilo di esportazione.

Importante

Se rimuovi un'entità o una relazione di entità da un profilo di esportazione la tabella corrispondente nel database di destinazione non viene rimossa. Prima di poter aggiungere di nuovo un'entità che è stata rimossa, devi rimuovere la tabella corrispondente nel database di destinazione. Per rimuovere una tabella di entità, vedere Come eliminare le tabelle del profilo Esportazione dati e le stored procedure per un'entità specifica.

Dettagli delle tabelle per l'Azure SQL Database di destinazione

Servizio di esportazione dati crea tabelle per dati e metadati. Una tabella viene creata per ogni entità e per la relazione N:N che viene sincronizzata.

Una volta attivato il profilo di esportazione, le tabelle vengono create nel database di destinazione. Sono tabelle di sistema e non avranno i campi SinkModifiedTime e SinkCreatedTime aggiunti.

Nome tabella Data creazione
<Prefix>_GlobalOptionsetMetadata All'attivazione del profilo di esportazione.
<Prefisso>_OptionsetMetadata All'attivazione del profilo di esportazione.
<Prefix>_StateMetadata All'attivazione del profilo di esportazione.
<Prefisso>_StatusMetadata All'attivazione del profilo di esportazione.
<Prefix>_TargetMetadata All'attivazione del profilo di esportazione.
<Prefisso>_AttributeMetadata All'attivazione del profilo di esportazione.
<Prefix>_DeleteLog All'attivazione del profilo di esportazione quando l'opzione di eliminazione del registro è abilitata.

Risoluzione dei problemi di sincronizzazione

Anche dopo diversi tentativi, potrebbero verificarsi errori di sincronizzazione a causa dei vincoli di archiviazione del database o del blocco della tabella dovuto a query a esecuzione prolungata. Per risolvere tali errori è possibile forzare una risincronizzazione dei soli record non riusciti o una risincronizzazione di tutti i record.

  1. Visualizza i profili di esportazione per cercarne uno con errori di sincronizzazione dei record. A tale scopo visualizza i profili di dati nell'area di sincronizzazione o apri un profilo di esportazione, ad esempio il profilo con un errore di sincronizzazione del record di entità Contatto.

    DataExport_failed_records_exist.

  2. Esamina l'origine dell'errore di sincronizzazione e risolvilo. Ulteriori informazioni: Monitoraggio e gestione degli errori

  3. Una volta risolto il problema, risincronizza i record non riusciti.

    Nota

    La sincronizzazione dei record non riusciti è una funzionalità di anteprima pubblica.

    • Le funzionalità di anteprima non sono destinate ad essere utilizzate per la produzione e sono soggette a restrizioni. Queste funzionalità sono disponibili prima di una versione ufficiale di modo che i clienti possano ottenere un accesso prioritario e fornire dei commenti.
      • Sono previste modifiche in questa funzionalità, quindi non utilizzarla nell'ambiente di produzione. Utilizzarla solo in ambiente di valutazione e di sviluppo.
      • Microsoft non offre supporto per questa funzionalità di anteprima. Microsoft Dynamics 365 supporto tecnico non sarà in grado di aiutarti a risolvere problemi o domande. Le funzionalità di anteprima non hanno lo scopo di essere utilizzate per la produzione e sono soggette a distinte condizioni per l'utilizzo supplementari.
    1. Accedi all'ambiente e vai a Impostazioni>Esportazione dati.

    2. Apri il profilo di esportazione che include gli errori di sincronizzazione dei record.

    3. Nella barra degli strumenti del profilo di esportazione, seleziona NUOVA SINCRONIZZAZIONE RECORD CON ERRORE.

    4. Seleziona OK se la risincronizzazione dei record non riusciti viene completata nella finestra di dialogo di conferma.

    Notifica di risincronizzazione completata.

    1. Verifica che il profilo di esportazione non contenga notifiche di record non riusciti aprendo il profilo di esportazione dati e visualizzando il contatore Notifiche di errore nella scheda PROPRIETÀ E PANORAMICA che deve essere a 0. Seleziona AGGIORNA sulla barra degli strumenti del profilo di esportazione per verificare il valore corrente di Notifiche di errore.

    Indicazione zero record non riusciti.

  4. Se gli errori di sincronizzazione record persistono dopo aver provato a risincronizzare tramite i passaggi precedenti, contatta il Servizio Supporto Tecnico Clienti Microsoft.

Monitoraggio e gestione degli errori

Per visualizzare lo stato della sincronizzazione di un profilo di esportazione, vai a Impostazioni>Esportazione dati e apri il profilo di esportazione. Nella scheda ENTITÀ, lo stato di sincronizzazione viene visualizzato con inclusa una colonna Record con errore per i record che non è stato possibile sincronizzare. Per tutti i record con errore, è possibile scaricare un elenco dei record, che include il motivo stato, selezionando RECORD CON ERRORE sulla barra dei comandi.

Barra di comando profilo di esportazione - Pulsante Record con errore.

Nel profilo di esportazione, puoi Seleziona PROPRIETÀ E PANORAMICA per visualizzare le proprietà del profilo. Seleziona RELAZIONI per visualizzare lo stato della sincronizzazione delle relazioni.

Come visualizzare informazioni dettagliate sui record con errore di sincronizzazione

La visualizzazione dei registri record non riusciti può essere utile per stabilire la causa degli errori di sincronizzazione. Per visualizzare i record non riusciti nel database di destinazione Azure, usare Azure Storage Explorer, un'app autonoma gratuita che consente di lavorare facilmente con i dati Azure Storage. Altre informazioni: Azure Storage Explorer.

  1. Vai a Impostazioni>Esportazione dati.

  2. Nella visualizzazione Tutti i profili di esportazione dei dati Seleziona il profilo di esportazione con notifiche di errore.

    Notifiche di errore.

  3. Nella barra degli strumenti Azioni seleziona RECORD CON ERRORE.

    Pulsante della barra degli strumenti Record con errore.

  4. Nella finestra di dialogo Record download non riusciti seleziona Copia URL BLOB e quindi seleziona OK.

    Finestra di dialogo Record download non riusciti.

    Nota

    L'URL BLOB è valido per 24 ore. Se l'URL supera le 24 ore, ripetere i passaggi descritti in precedenza in modo da generare un nuovo URL BLOB.

  5. Avviare Azure Storage Explorer.

  6. In Azure Storage Explorer selezionare Connetti a Azure Storage.

  7. Incollare l'URL dagli Appunti nella casella Connetti a Azure Storage e quindi selezionare Next.

  8. Nella pagina di riepilogo connessione seleziona Connettiti.

  9. Azure Storage Explorer si connette al database di destinazione. Se esistono record non riusciti per il profilo di esportazione, Azure Storage Explorer visualizza cartelle di sincronizzazione dei record non riuscite.

Come visualizzare informazioni dettagliate sui record con errore di sincronizzazione (anteprima)

Puoi scaricare i record con errore direttamente dall'interfaccia utente del Servizio di esportazione dati. Questa funzionalità è in anteprima e sarebbe ottimo se tu potessi testarla e fornire commenti.

Procedura per scaricare record con errore

  1. Identifica il profilo con record con errore.

    Profili di esportazione dei dati.

  2. Seleziona il profilo e seleziona Scarica record con errore (anteprima) nella barra dei menu superiore.

    Record con errore di download (anteprima).

  3. Nella finestra di dialogo Scarica record con errore, verrà visualizzato un elenco ordinato di al massimo 20 file blob. Seleziona quello che desideri scaricare e quindi seleziona OK.

    Record download non riusciti.

  4. Dopo il download, apri il file in un editor di testo (ad esempio Blocco note) e visualizza i dettagli degli errori.

    Registro errori di esempio.

Struttura delle cartelle di sincronizzazione dei record non riusciti e file di registro

L'URL dell'Archiviazione BLOB di Azure dei record non riusciti indica un percorso con la seguente struttura di cartelle:

  • dati. Questa cartella contiene le notifiche di dati non riusciti e il JSON associato per i dati record.

  • metadati. Questa cartella contiene le notifiche di metadati non riusciti e il JSON associato per i metadati record.

  • failurelog. Questa cartella contiene i registri che offrono informazioni sull'errore di sincronizzazione e il motivo per cui si è verificato l'errore.

  • forcerefreshfailurelog. Questa cartella contiene gli errori dell'ultima esecuzione del comando Record non riusciti di Servizio di esportazione dati utilizzato per risincronizzare i record non riusciti.

  • unprocessablemessages. Questa cartella contiene le notifiche di dati che non sono stati elaborati a causa dell'eliminazione dei dati o dei metadati e dei JSON associati.

    Le cartelle failurelog and forcerefreshfailurelog sono strutturate come Anno\Mese\Giorno\Ora in modo che sia possibile individuare rapidamente gli errori più recenti. Tutti i record con errore anteriori ai 30 giorni vengono eliminati.

    Ecco un file di registro di esempio che indica un errore di sincronizzazione record dell'entità di contatto.

Entity: contact, RecordId: 459d1d3e-7cc8-e611-80f7-5065f38bf1c1, NotificationTime: 12/28/2016 12:32:39 AM, ChangeType: Update, FailureReason: The database 'tempdb' has reached its size quota. Partition or delete data, drop indexes, or consult the documentation for possible resolutions.  
The statement has been terminated.  

Motivi più comuni degli errori di sincronizzazione record

Di seguito sono riportati alcuni motivi per cui possono verificarsi errori di sincronizzazione dei record.

  • Archiviazione insufficiente per il database di destinazione. Prima di provare a risincronizzare i record non riusciti, aumentare o liberare Azure SQL Database spazio di archiviazione in base alle esigenze. Quando si verifica il problema, un messaggio analogo a questo viene registrato nel registro degli errori.

    Il database "nomedatabase" ha superato la propria quota dimensioni. Analizzare o eliminare i dati, eliminare gli indici o consultare la documentazione per trovare le soluzioni possibili.

  • Timeout di sincronizzazione con Azure SQL Database. Questo problema può verificarsi durante la sincronizzazione iniziale di un profilo di esportazione dati quando grandi quantità di dati vengono elaborate contemporaneamente. Quando si verifica il problema, risincronizza i record non riusciti. Risoluzione dei problemi di sincronizzazione

Procedure consigliate per l'uso di Azure SQL Database con l'esportazione dei dati

  • Per evitare errori di sincronizzazione dovuti alla limitazione delle risorse, è consigliabile disporre di un piano Azure SQL Database Premium P1 o superiore quando si usa il servizio di esportazione dati. Altre informazioni: Azure SQL Database limiti delle risorse e Sql Database Pricing

  • Imposta il database SQL di Azure per usare l'isolamento RCSI (Read Committed Snapshot Isolation) per i carichi di lavoro che vengono eseguiti simultaneamente nel database di destinazione che esegue query di lettura a esecuzione prolungata, ad esempio la creazione di report e i processi ETL. Ciò consente di ridurre gli errori di timeout che possono verificarsi con Servizio di esportazione dati a causa dei conflitti di lettura\scrittura.

  • Per migliorare le prestazioni delle query, consigliamo di impostare su 1 il grado di parallelismo massimo (MAXDOP) del database di Servizio di esportazione dati. Ulteriori informazioni: MSDN: Opzioni per la memoria server

  • Valuta frequentemente la quantità di frammentazione e, se necessario, ricostruisci gli indici nel database di Servizio di esportazione dati. Ulteriori informazioni: Riorganizzazione e ricompilazione degli indici

  • Aggiorna periodicamente le statistiche del database nelle tabelle e nelle visualizzazioni indicizzate nel database di Servizio di esportazione dati. Ulteriori informazioni: Aggiornare le statistiche

  • Monitora l'utilizzo del database di Servizio di esportazione dati. Ulteriori informazioni: Monitoraggio delle prestazioni

Informazioni su latenza di sincronizzazione dei dati

Servizio di esportazione dati è progettato per sincronizzare le modifiche ai dati nel database di destinazione utilizzando un meccanismo push tramite l'ascolto delle modifiche mentre queste si verificano nelle app di interazione con i clienti. Il servizio si sforza di eseguire i dati in pochi minuti, ma vi sono diversi fattori che possono influenzare la latenza di sincronizzazione end-to-end.

I fattori che influenzano la durata di sincronizzazione in questione sono:

  • Il carico di lavoro corrente sulle app di interazione con i clienti.
  • La frequenza di modifica dei dati nelle app di interazione con i clienti.
  • Il numero di entità aggiunte a ogni profilo dell'esportazione e i relativi attributi.
  • Prestazioni di SQL Server. Ad esempio:
    • Ora di configurazione della connessione di SQL.
    • Ora di esecuzione dell'istruzione SQL.

A seconda del monitoraggio del servizio è stato osservato che la maggior parte della sincronizzazione delta in corso termina in 15 minuti quando il servizio funziona nelle seguenti condizioni:

  • La sincronizzazione che si verifica è una sincronizzazione delta e non la sincronizzazione iniziale. La sincronizzazione delta è disponibile solo per le operazioni di modifica dei dati, che includono transazioni per la creazione, l'aggiornamento e l'eliminazione di record. La sincronizzazione delta inizia una volta che la sincronizzazione iniziale è finita.
  • La frequenza massima di modifica dei dati nelle app di interazione con i clienti per tutte le entità nel profilo di esportazione è inferiore a 3000 record all'ora. Qualsiasi improvviso incremento della frequenza di modifica dei dati a causa della modifica in blocco dei record che superano la frequenza massima di modifica causerà latenza aggiuntiva.
  • Ogni entità aggiunta a un profilo di esportazione ha meno di 150 attributi.
  • L'esecuzione di istruzioni SQL o la connessione al database termina in meno di 10 secondi. Il superamento di questo limite avrà come conseguenza latenza aggiuntiva.
  • Nessun errore di connessione al database di destinazione né di esecuzione di SQL avviene durante la sincronizzazione.

Quando le condizioni indicate sopra vengono soddisfatte, 15 minuti sono una latenza normale di sincronizzazione. Microsoft non offre alcun contratto di servizio (SLA) per Servizio di esportazione dati né rilascia alcuna garanzia o assume impegni riguardanti i tempi di latenza della sincronizzazione.

Come configurare Azure Key Vault

Eseguire lo script di PowerShell Windows descritto qui come amministratore dell'account Azure per concedere l'autorizzazione alla funzionalità Servizio di esportazione dati in modo che possa accedere alle Azure Key Vault. Questo script visualizza l'URL del Key Vault necessario per la creazione del profilo di esportazione utilizzato per accedere al connection string.

Prima di eseguire lo script, sostituire i segnaposto per le variabili seguenti.

  • $subscriptionId. Gruppo di risorse Key Vault da usare. Se un gruppo di risorse non esiste, verrà creato un nuovo gruppo con il nome specificato. In questo esempio, viene utilizzato ContosoResourceGroup1.

  • $location. Specificare la posizione in cui il gruppo di risorse si trova, o dovrebbe trovarsi, ad esempio Stati Uniti occidentali.

  • $connectionString. La stringa di connessione al database SQL di Azure. È possibile usare ADO.NET connection string come visualizzato nel dashboard di Azure.

  • $organizationIdList = Elenco separato da virgola delle organizzazioni consentite, elencate in base all'ID organizzazione (organizationId), da abilitare per servizio Esportazione dati. Per trovare l'ID di un'organizzazione, vai a Impostazioni>Personalizzazioni>Risorse per sviluppatori. L'ID organizzazione si trova nelle informazioni di riferimento dell'ambiente.

  • $tenantId. Specifica l'ID tenant di Azure Active Directory a cui è associata la sottoscrizione del Key Vault.

Importante

Una sottoscrizione Azure può avere più ID tenant Azure Active Directory. Assicurarsi di selezionare l'ID tenant Azure Active Directory corretto associato all'ambiente che verrà usato per l'esportazione dei dati.

Nota

Assicurarsi che l'ID utente a cui si fa riferimento all'interno del $connectionString disponga dell'autorizzazione appropriata per il database di Azure SQL di destinazione.

# -------------------------------------------------------------------------------- #
    #  Provide the value for the following parameters before executing the script
$subscriptionId = 'ContosoSubscriptionId'    
$keyvaultName = 'ContosoKeyVault'
    $secretName = 'ContosoDataExportSecret'
    $resourceGroupName = 'ContosoResourceGroup1'
    $location = 'West US'
    $connectionString = 'AzureSQLconnectionString'
$organizationIdList = 'ContosoSalesOrg1_id, ContosoSalesOrg2_id'
$tenantId = 'tenantId'
    # -------------------------------------------------------------------------------- #

# Login to Azure account, select subscription and tenant Id
Connect-AzAccount -Tenant $tenantId -Subscription $subscriptionId

# Create new resource group if not exists.
$rgAvail = Get-AzResourceGroup -Name $resourceGroupName -Location $location -ErrorAction SilentlyContinue
if(!$rgAvail){
    New-AzResourceGroup -Name $resourceGroupName -Location $location
}

# Create new key vault if not exists.
$kvAvail = Get-AzKeyVault -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -ErrorAction SilentlyContinue
if(!$kvAvail){
    New-AzKeyVault -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -Location $location
    # Wait few seconds for DNS entry to propagate
    Start-Sleep -Seconds 15
}

# Create tags to store allowed set of Organizations.
$secretTags = @{}
foreach ($orgId in $organizationIdList.Split(',')) {
    $secretTags.Add($orgId.Trim(), $tenantId)
}

# Add or update a secret to key vault.
$secretValue = ConvertTo-SecureString $connectionString -AsPlainText -Force
$secret = Set-AzKeyVaultSecret -VaultName $keyvaultName -Name $secretName -SecretValue $secretValue -Tags $secretTags

# Authorize application to access key vault.
$servicePrincipal = 'b861dbcc-a7ef-4219-a005-0e4de4ea7dcf'
Set-AzKeyVaultAccessPolicy -VaultName $keyvaultName -ServicePrincipalName $servicePrincipal -PermissionsToSecrets get

# Display secret url.
Write-Host "Connection key vault URL is "$secret.id.TrimEnd($secret.Version)""

Come eliminare tutte le tabelle del profilo Esportazione dati e le stored procedure

Importante

Prima di eseguire questa istruzioni SQL, verifica di aver definito correttamente i valori @prefix e @schema nell'istruzione. Il profilo di esportazione deve essere ricreato dopo che esegui l'istruzione SQL.

-----------------------------------------------------------------
-- Provide the value for the following parameters
DECLARE @prefix nvarchar(32) =''
DECLARE @schema nvarchar(32) ='dbo'
-----------------------------------------------------------------

DECLARE @sql nvarchar(max) = '';

SELECT @sql += 'DROP TABLE ' + QUOTENAME([TABLE_SCHEMA]) + '.' + QUOTENAME([TABLE_NAME]) + ';'
FROM [INFORMATION_SCHEMA].[TABLES]
WHERE [TABLE_TYPE] = 'BASE TABLE' AND [TABLE_NAME] like @prefix + '_%' AND [TABLE_SCHEMA]= @schema;

PRINT @sql
EXEC SP_EXECUTESQL @sql;

PRINT 'Finished dropping all tables. Starting to drop all stored procedures now.'

SELECT @sql='';
SELECT @sql += 'DROP PROCEDURE ' + QUOTENAME([ROUTINE_SCHEMA]) + '.' + QUOTENAME([ROUTINE_NAME]) + ';'
FROM [INFORMATION_SCHEMA].[ROUTINES]
WHERE [ROUTINE_TYPE] = 'PROCEDURE' AND [ROUTINE_NAME] like @prefix + '_%' AND [ROUTINE_SCHEMA]= @schema;
PRINT @sql
EXEC SP_EXECUTESQL @sql;

PRINT 'Finished dropping all stored procedures. Starting to drop all types now.'

SELECT @sql=''; 
SELECT @sql += 'DROP TYPE ' + QUOTENAME(SCHEMA_NAME([SCHEMA_ID])) + '.' +  QUOTENAME([NAME]) + ';'
FROM SYS.TYPES
WHERE is_user_defined = 1 AND [NAME] LIKE @prefix + '_%' AND [SCHEMA_ID]=SCHEMA_ID(@schema);

PRINT @sql
EXEC SP_EXECUTESQL @sql;

Come eliminare le tabelle del profilo Esportazione dati e le stored procedure per un'entità specifica

Importante

Prima di eseguire questa istruzione SQL, verifica di aver definito correttamente i valori @prefix, @schema e @entityName nell'istruzione. In questo esempio, la tabella, i tipi e stored procedure di entità lead vengono eliminati.

-----------------------------------------------------------------
-- Provide the value for the following parameters
DECLARE @prefix nvarchar(32) ='crm'
DECLARE @schema nvarchar(32) ='dbo'
DECLARE @entityName nvarchar(32) ='lead'
-----------------------------------------------------------------
DECLARE @sql nvarchar(max) = '';

IF @prefix != '' 
BEGIN
       SET @prefix = @prefix + '_'
END

SELECT @sql += 'DROP TABLE ' + QUOTENAME([TABLE_SCHEMA]) + '.' + QUOTENAME([TABLE_NAME]) + ';'
FROM [INFORMATION_SCHEMA].[TABLES]
WHERE [TABLE_TYPE] = 'BASE TABLE' AND [TABLE_NAME] like @prefix + @entityName  AND [TABLE_SCHEMA]= @schema;
PRINT @sql
EXEC SP_EXECUTESQL @sql;
PRINT 'Finished dropping the entity. Starting to drop the types associated with the entity'

SELECT @sql='';
SELECT @sql += 'DROP TYPE ' + QUOTENAME(SCHEMA_NAME([SCHEMA_ID])) + '.' + QUOTENAME([NAME]) + ';'
FROM SYS.TYPES
WHERE
  is_user_defined = 1
  AND (
    [NAME] LIKE @prefix + @entityName +'Type' 
    OR [NAME] LIKE @prefix + @entityName +'IdType'
  )
  AND [SCHEMA_ID] = SCHEMA_ID(@schema);
PRINT @sql
EXEC SP_EXECUTESQL @sql;

Come disinstallare il servizio di esportazione dati da Amministrare Power Platform

  1. Passa alle impostazioni avanzate.
  2. Seleziona Impostazioni > Personalizzazioni, quindi seleziona Soluzioni.
  3. Scegliere DataExportService pubblicato da Microsoft Dynamics 365 e quindi selezionare Delete.

Trovare l'ID tenant di Microsoft Entra del proprio tenant

  1. Accedere al portale Azure.
  2. In Azure services selezionare Proprietà tenant.
  3. Seleziona il valore nel campo ID tenant.

Indirizzi IP statici del database di Azure SQL usati dal Servizio di Esportazione Dati

In Azure SQL Database selezionare Set server firewall, impostare Allow access to Azure services su OFF, selezionare Add client IP e quindi aggiungere gli indirizzi IP appropriati per l'area dell'ambiente. Altre informazioni: Azure: Configurare una regola del firewall a livello di server Azure SQL Database usando Azure Portal

Area geografica Nuovo indirizzo IP Vecchio indirizzo IP
Stati Uniti occidentali 20.245.127.60 13.64.148.9
Stati Uniti orientali 172.174.41.63 20.228.153.81
Asia orientale 20.239.192.9 104.208.84.217
Asia sud-orientale 20.24.15.60 20.205.153.14
India centrale 20.219.158.75 20.198.113.107
India meridionale 52.140.54.95 104.211.204.18
Europa occidentale 20.126.43.104 40.68.244.253
Europa settentrionale 20.166.94.137 20.238.83.32
Giappone occidentale Nessuna modifica 104.214.144.93
Giappone orientale 52.253.104.175 20.89.138.246
Brasile meridionale 4.228.211.102 20.197.186.17
Australia sud-orientale Nessuna modifica 20.70.112.80
Australia orientale 20.5.88.96 20.213.58.3
Canada centrale 20.220.227.230 20.151.173.107
Canada orientale 40.86.216.207 52.229.109.91
Regno Unito occidentale 51.142.173.150 20.68.113.18
Regno Unito meridionale 20.117.159.198 20.117.89.184

Nota

I clienti del Nord America devono aggiungere gli indirizzi IP a un elenco approvato sia per gli Stati Uniti orientali che per gli Stati Uniti occidentali.

Per evitare interruzioni della sincronizzazione dei dati, i clienti devono mantenere il nuovo indirizzo IP e il vecchio indirizzo IP.

Problemi noti

I record eliminati possono essere reinseriti nella tabella di entità dopo un errore di sincronizzazione

Quando esegui il recupero dagli errori di sincronizzazione, i record precedentemente eliminati possono essere reinseriti nuovamente nella tabella di entità di origine. Per risolvere il problema quando si verificano errori di sincronizzazione, esegui la procedura seguente.

  1. Crea i profili di esportazione con l'opzione Scrivi log di eliminazione abilitata. Ricrea i profili di esportazione esistenti senza l'opzione Scrivi log di eliminazione abilitata.

  2. Creare ed eseguire una query SQL per il database di destinazione Azure SQL che cerca i record nella tabella DeleteLog. Se vengono trovati uno o più record, indica la presenza di record eliminati.

  3. Se uno o più record sono presenti nella tabella DeleteLog, crea ed esegui una query SQL che rileva gli ambienti in cui l'ID record per un record trovato nella tabella DeleteLog corrisponde all'ID record di un record in una tabella EntityName e versionNumber in deleteLog è maggiore di versionNumber nel record della tabella EntityName. Quando si verifica una corrispondenza di ID record, elimina il record dalla tabella EntityName. Ad esempio, se un ID record nella colonna AccountId della tabella DeleteLog corrisponde a un ID record nella colonna AccountId della tabella di entità AccountBase e versionNumber in DeleteLog è maggiore di versionNumber nella tabella Account, elimina il record dalla tabella di entità AccountBase.

    Importante

    A seconda delle esigenze e dei requisiti aziendali, è consigliabile eseguire frequentemente le query SQL per l'eliminazione dei record, ma durante le ore non operative.

    Query di esempio per l'eliminazione di record di entità.

DELETE A FROM [dbo].[prefix_account] A
WHERE id IN (SELECT CONVERT(uniqueidentifier, recordid) FROM [dbo].[prefix_DeleteLog] DL WHERE DL.entityname ='account'
AND DL.VersionNumber > A.VersionNumber)

Entità che non supportano l'esportazione dei dati

Le entità elencate di seguito, sebbene non supportino la registrazione delle modifiche, non sono supportate per l'esportazione dei dati tramite Servizio di esportazione dati.

Entità Nome tabella Soluzione
Activity ActivityPointerBase Seleziona le entità di impegno specifiche per l'esportazione, ad esempio Telefonata, Appuntamento, Posta elettronica e Attività.

Impossibile creare una riga con dimensioni superiori alle dimensioni massime consentite (8K)

Se nei registri di errore viene visualizzato "Impossibile creare una riga con dimensioni (dimensioni) perché tale valore è maggiore delle dimensioni massime consentite di 8060", si è verificato un problema in cui il limite di dimensioni massime consentite è stato superato. Il Servizio di esportazione dati non supporta dimensioni di riga superiori alle dimensioni massime consentite di 8 k. Per evitare questo problema, assicurati di rispettare i limiti di dimensioni delle righe.

La lunghezza di stringa dei dati di origine è maggiore dello schema di destinazione per ColumnName

Se nei log degli errori viene visualizzato "Lunghezza della stringa dei dati di origine maggiore dello schema di destinazione per [ColumnName, MaxDataLength]", si è verificato il problema in cui la lunghezza della stringa dei dati di origine è maggiore della destinazione. Se la lunghezza della stringa dei dati di origine è maggiore della destinazione, le scritture sulla destinazione non riusciranno. Per evitare questo problema, devi ridurre le dimensioni dei dati o aumentare manualmente la lunghezza della colonna di modo che sia maggiore di MaxLength nel database.

Nessun supporto per gli allegati

L'esportazione di allegati come documentbody sulla tabella Annotazione non è supportata.

Informativa sulla privacy

Usando il servizio di esportazione dati, quando si attiva un profilo di esportazione dati dall'interno di Dynamics 365, i dati delle entità aggiunte al profilo vengono inviati a Azure. La sincronizzazione iniziale include tutti i dati associati alle entità aggiunte al profilo di esportazione, ma successivamente la sincronizzazione includerà solo le nuove modifiche che vengono costantemente inviate a Servizio di esportazione dati. I dati inviati al servizio di esportazione dati vengono archiviati temporaneamente in Azure Service Bus e Azure Storage, elaborati in Azure Service Fabric e infine sincronizzati (inseriti, aggiornati o eliminati) nel database di destinazione specificato nella sottoscrizione Azure. Dopo la sincronizzazione dei dati, i dati vengono eliminati da Azure Service Bus e Azure Storage. Se si verifica un errore durante la sincronizzazione dei dati, i dati minimi corrispondenti al tipo di entità, all'ID record e al timestamp di sincronizzazione vengono archiviati in Azure Storage per consentire il download di un elenco di record non aggiornati.

L'amministratore può disattivare in qualsiasi momento il profilo di esportazione dei dati per interrompere la sincronizzazione dei dati. Può inoltre eliminare il profilo di esportazione per rimuovere tutti i registri dei record con errore e disinstallare la soluzione Servizio di esportazione dati per interromperne l'utilizzo.

La sincronizzazione dei dati avviene continuamente tra Dynamics 365 e il servizio di esportazione dati in modo sicuro. I dati vengono crittografati man mano che vengono scambiati continuamente tra Dynamics 365 e il servizio di esportazione dati.

Azure componenti e servizi coinvolti nel servizio di esportazione dati sono descritti in dettaglio nelle sezioni seguenti.

Microsoft Azure Trust Center

Azure Service Fabric

Questa funzione fornisce l'API e le macchine virtuali di calcolo di Azure per elaborare le notifiche di sincronizzazione dei record ricevute da Dynamics 365, per poi elaborarle al fine di inserire, aggiornare o eliminare i dati dei record nel database di destinazione. I microservizi distribuiti nelle macchine virtuali gestite dal runtime Azure Service Fabric gestiscono tutti i servizi di calcolo correlati alla sincronizzazione dei dati.

Azure Service Bus

Fornisce il bus di messaggi in cui Dynamics 365 inserisce i messaggi di notifica di sincronizzazione elaborati dai nodi di calcolo in Azure Service Fabric. In ciascun messaggio sono memorizzate informazioni quali l'ID e il record dell'organizzazione per cui sincronizzare i dati. I dati nell'Azure Service Bus vengono crittografati a riposo e sono accessibili solo dal Servizio di Esportazione Dati.

Azure Blob Storage

I dati vengono archiviati temporaneamente in Azure Blob Storage nel caso in cui i dati della notifica di sincronizzazione dei record sono troppo grandi da archiviare in un messaggio o si verifica un errore temporaneo per elaborare la notifica di sincronizzazione. Questi BLOB vengono crittografati sfruttando la funzionalità più recente di Azure Storage SDK, che fornisce supporto e integrazione della crittografia simmetrica e asimmetrica con Azure Key Vault.

Azure SQL

Il Azure SQL Database archivia la configurazione del profilo di esportazione dati e le metriche di sincronizzazione dei dati.

Vedi anche

Panoramica sulle relazioni di entità
Servizio di esportazione dati
Blog del team: Introduzione al Servizio di esportazione dati