Gegevens repliceren naar Azure SQL-database met gegevensexportservice

Notitie

Met ingang van november 2021 is Gegevensexportservice afgeschaft. Gegevensexportservice blijft werken en wordt volledig ondersteund tot het einde van de ondersteuning en levenscyclus in november 2022. Meer info: https://aka.ms/DESDeprecationBlog

De Gegevensexportservice is een invoegtoepassing die beschikbaar wordt gesteld in Microsoft AppSource en voegt de mogelijkheid toe om gegevens te repliceren van een Microsoft Dataverse-database naar een Azure SQL-databasearchief in een Azure-abonnement dat eigendom is van de gebruiker. De ondersteunde doelbestemmingen zijn Azure SQL-database en SQL Server op virtuele Azure-machines. Met de Gegevensexportservice worden de volledige gegevens eerst intelligent gesynchroniseerd en daarna worden wijzigingen continu in het systeem gesynchroniseerd (deltawijzigingen). Dit biedt verschillende analyse- en rapportagescenario's boven op de gegevens met Azure-gegevens en analyseservices en opent nieuwe mogelijkheden voor klanten en partners aangepaste oplossingen te maken.

Notitie

Het wordt dringend aanbevolen uw Dataverse-gegevens naar Azure Synapse Analytics en/of Azure Data Lake Gen2 met Azure Synapse Link for Dataverse te exporteren. Meer informatie: Sneller inzicht krijgen met Azure Synapse Link for Dataverse

U kunt de Gegevensexportservice gebruiken met apps voor klantbetrokkenheid (Dynamics 365 Sales, Dynamics 365 Customer Service, Dynamics 365 Field Service, Dynamics 365 Marketing en Dynamics 365 Project Service Automation).

Raadpleeg voor informatie over de programmatische interface voor het beheren van de configuratie en administratie van de Gegevensexportservice Gegevensexportservice in de ontwikkelaarshandleiding.

Vereisten voor het gebruik van Gegevensexportservice

Als u de Gegevensexportservice gaat gebruiken, gelden de volgende vereisten.

Azure SQL-databaseservice

  • Een klant is eigenaar van een abonnement voor Azure SQL-database. Dit abonnement moet het volume toestaan van gegevens die worden gesynchroniseerd.

  • Firewallinstellingen. Het wordt aanbevolen om de optie Allow access to Azure services (Toegang tot Azure-services toestaan) uit te schakelen en de juiste client-IP-adressen in te voeren die in dit onderwerp worden vermeld. Meer informatie: statische IP-adressen voor Azure SQL-databases, die de Gegevensexportservice gebruikt

    U kunt ook de optie Allow access to Azure services inschakelen, zodat alle Azure-services toegang krijgen.

    Voor SQL Server op Azure VM moet de optie 'Verbinding maken met SQL Server via Internet' zijn ingeschakeld. Meer informatie: Azure: Verbinding maken met een virtuele machine met SQL Server op Azure

    Configureer bovendien uw firewallregels om communicatie tussen de Data Export Service en de SQL Server mogelijk te maken.

  • De databasegebruiker moet machtigingen hebben voor de databases en het schemaniveau volgens de volgende tabellen. De databasegebruiker wordt gebruikt in de verbindingstekenreeks voor gegevensexport.

    Databasemachtigingen vereist.

    Typecode machtiging Machtigingnaam
    CRTB TABEL MAKEN
    CRTY TYPE MAKEN
    CRVW VIEW MAKEN
    CRPR PROCEDURE MAKEN
    ALUS WILLEKEURIGE GEBRUIKER WIJZIGEN
    VWDS STATUS VAN DATABASE BEKIJKEN

    Schemamachtigingen vereist.

    Typecode machtiging Machtigingnaam
    AL WIJZIGEN
    IN INVOEGEN
    DL DELETE
    SL SELECTEREN
    UP UPDATE
    EX UITVOEREN
    Rf VERWIJZINGEN

Service Azure Sleutelkluis

  • De klant is eigenaar van het Key Vault-abonnement, dat wordt gebruikt om de databaseverbindingtekenreeks veilig te onderhouden.

  • Verleen de machtiging PermissionsToSecrets aan de toepassing met de id "b861dbcc-a7ef-4219-a005-0e4de4ea7dcf". Dit kan worden voltooid door de onderstaande AzurePowerShell-opdracht uit te voeren en wordt gebruikt voor toegang tot de Key Vault met het geheim van de verbindingstekenreeks. Meer informatie: De Azure Key Vault instellen

  • Geheimen in de sleutelkluis moeten met de organisatie-id (OrgId) en tenant-id (TenantId) worden getagd. Dit kan worden voltooid door de onderstaande AzurePowerShell-opdracht uit te voeren. Meer informatie: De Azure Key Vault instellen

  • Configureer uw firewallregels om communicatie tussen de Data Export Service en de Azure Key Vault mogelijk te maken.

Apps voor klantbetrokkenheid

  • Een omgeving met versie 9.0 of hoger.

  • De oplossing Gegevensexportservice moet zijn geïnstalleerd.

    • Ga naar Instellingen>Microsoft Appsource> zoek of blader naar Microsoft Dynamics 365 - Gegevensexportservice en selecteer vervolgens Nu downloaden.
    • Of zoek het op Microsoft AppSource.
  • De entiteiten die worden toegevoegd aan het exportprofiel, moeten zijn ingeschakeld met bijhouden van wijzigingen. Als u wilt zorgen dat een standaardentiteit of aangepaste entiteit kan worden gesynchroniseerd, gaat u naar Aanpassing>Het systeem aanpassen en selecteert u de entiteit. Op het tabblad Algemeen moet u de optie Bijhouden van wijzigingen in de sectie Gegevensservices inschakelen.

  • U moet beschikken over de beveiligingsrol Systeembeheerder in de omgeving.

Webbrowser

Schakel pop-ups in voor het domein https://discovery.crmreplication.azure.net/ in uw webbrowser. Dit is vereist voor auto-aanmelden als u naar Instellingen > Gegevensexport gaat.

Vereiste services, referenties en bevoegdheden

Als u de functie Gegevensexportservice wilt gebruiken, moet u de volgende services, referenties en bevoegdheden hebben.

  • Een abonnment. Alleen gebruikers met de beveiligingsrol Systeembeheerder kunnen een exportprofiel instellen of wijzigen.

  • Azure-abonnement dat de volgende services bevat.

    • Azure SQL-database of AzureSQL Server op virtuele Azure-machines.

    • Azure Key Vault.

Belangrijk

Als u de Gegevensexportservice wilt gebruiken, moeten de apps voor klantbetrokkenheid en de Azure Key Vault-services onder dezelfde tenant en binnen dezelfde Azure Active Directory werken. Meer informatie: Azure-integratie met Microsoft 365

De service Azure SQL-database kan zich bevinden in dezelfde of in een andere tenant dan de service.

Wat u moet weten voordat u de gegevensexportservice gebruikt

  • Exportprofielen moeten worden verwijderd en vervolgens opnieuw worden gemaakt wanneer u een van de volgende acties in een omgeving uitvoert.

    • Een omgeving herstellen.
    • Een omgeving kopiëren (geheel of minimaal).
    • Een omgeving opnieuw instellen.
    • Een omgeving verplaatsen naar een ander land of een andere regio

    Hiervoor verwijdert u het exportprofiel in de weergave PROFIELEN EXPORTEREN. Vervolgens verwijdert u de tabellen en opgeslagen procedures en maakt u een nieuw profiel. Meer informatie: Alle tabellen en de opgeslagen procedures voor een gegevensexportprofiel verwijderen

  • De Gegevensexportservice werkt niet voor sandbox- of productie-omgevingen die zijn geconfigureerd met Beheerdersmodus inschakelen ingeschakeld. Meer informatie: Beheermodus.

  • Met de Gegevensexportservice worden de gekoppelde tabellen, kolommen of objecten van opgeslagen procedures niet in de Azure SQL-doeldatabase neergezet (verwijderd) als de volgende acties worden uitgevoerd.

Exportprofiel

Als u gegevens van apps voor klantbetrokkenheid wilt exporteren, maakt de beheerder een exportprofiel. Verschillende profielen kunnen worden gemaakt en geactiveerd als u gegevens in andere doeldatabases gelijktijdig wilt synchroniseren.

Het exportprofiel is het kernconcept van de Gegevensexportservice. Het exportprofiel verzamelt installatie- en configuratiegegevens om gegevens met de doeldatabase te synchroniseren. Als onderdeel van het exportprofiel biedt de beheerder een lijst met entiteiten die naar de doeldatabase moet worden geëxporteerd. Na activering start het exportprofiel de automatische synchronisatie van gegevens. Aanvankelijk worden alle gegevens geëxporteerd die overeenkomen met elke geselecteerde entiteit. Vervolgens worden alleen doorlopend de wijzigingen met behulp van een pushmechanisme vrijwel in realtime gesynchroniseerd als ze optreden in entiteitsrecords of metagegevens in apps voor klantbetrokkenheid. U hoeft dus geen planning om te stellen om gegevens uit apps voor klantbetrokkenheid op te halen.

Alleen entiteiten waarvoor wijzigingen bijhouden is ingeschakeld, kunnen aan het exportprofiel worden toegevoegd. Bedenk dat voor de meeste standaardentiteiten die gegevens vastleggen het bijhouden van wijzigingen is ingeschakeld. De aangepaste entiteiten moeten expliciet voor het bijhouden van wijzigingen zijn ingeschakeld voordat u ze kunt toevoegen aan het exportprofiel. Meer informatie: Bijhouden van wijzigingen inschakelen om gegevenssynchronisatie te beheren

De Gegevensexportservice synchroniseert zowel metagegevens als gegevens. Elke entiteit wordt vertaald in één tabel en elk veld in een kolom in de doeldatabasetabel. Tabel- en kolomnamen gebruiken de schemanaam van de metagegegevens.

Na activering verzamelt het exportprofiel statistieken voor gegevenssynchronisatie die de operationele zichtbaarheid en diagnostiek van de geëxporteerde gegevens ondersteunt.

Gegevenssynchronisatie beschikbaar met een exportprofiel

Categorie Functie Ondersteunde gegevenstypen
Initiële synchronisatie Metagegevens - Basisgegevenstypen Geheel getal, getal met drijvende komma, decimaal getal, één tekstregel, meerdere regels tekst, gegevenstypen datum en tijd.
Initiële synchronisatie Metagegevens - Geavanceerde gegevenstypen Valuta, PartyList, optieset, status, reden van status, opzoeken (inclusief opzoektype Klant en Betreft). PartyList is alleen beschikbaar voor exporteren in versie 8.1 en hoger.
Initiële synchronisatie Gegevens - Basisgegevenstypen Alle basisgegevenstypen
Initiële synchronisatie Gegevens - Geavanceerde gegevenstypen Alle geavanceerde gegevenstypen.
Deltasynchronisatie Schema wijzigen - Basistypen Veldwijziging toevoegen of wijzigen, alle basisgegevenstypen.
Deltasynchronisatie Schema wijzigen - Geavanceerde typen Veldwijziging toevoegen of wijzigen, alle geavanceerde gegevenstypen.
Deltasynchronisatie Gegevens wijzigen - Basistypen Alle basisgegevenstypen
Deltasynchronisatie Gegevens wijzigen - Geavanceerde gegevenstypen Alle geavanceerde gegevenstypen zoals PartyList.

Een exportprofiel maken

Zorg ervoor dat wordt voldaan aan de volgende vereisten voordat u een exportprofiel maakt.

  • De oplossing Gegevensexportservice wordt in uw omgeving geïnstalleerd.

  • Behoud de verbindingstekenreeks van de SQL-database in de Key Vault en kopieer de Key Vault-URL voor het exportprofiel. Meer informatie: Azure: Aan de slag met Azure Key Vault

  • De entiteiten die worden toegevoegd aan het exportprofiel, worden ingeschakeld voor het bijhouden van wijzigingen. Meer informatie: Bijhouden van wijzigingen inschakelen om gegevenssynchronisatie te beheren

  • Uw SQL-databaseservice heeft genoeg opslagruimte om de gegevens op te slaan.

  • U bent een systeembeheerder in de omgeving.

  1. Ga naar Instellingen>Gegevensexport.

  2. Controleer de melding en selecteer Doorgaan of Annuleren als u geen gegevens wilt exporteren.

  3. Selecteer Nieuw om een nieuw exportprofiel te maken.

  4. In de stap Eigenschappen voert u de volgende informatie in en selecteert u Volgende om door te gaan zonder verbinding te maken met de Key Vault. Als u Valideren selecteert, wordt de opgegeven Key Vault-URL gebruikt om verbinding te maken met de Key Vault.

    • Naam. Unieke naam van het profiel. Dit is een verplicht veld.

    • Verbindings-URL sleutelkluis. Key Vault-URL die naar de verbindingsreeks verwijst die wordt opgeslagen met referenties die worden gebruikt om verbinding te maken met de doeldatabase. Dit is een verplicht veld. Meer informatie: De Azure Key Vault instellen

      Belangrijk

      De belangrijkste Verbindings-URL sleutelkluis is hoofdlettergevoelig. Voer de verbindings-URL van Key Vault precies zo in als deze wordt weergegeven nadat u de Windows PowerShell-opdrachten in dit onderwerp hebt uitgevoerd.

    • Schema. Naam van een alternatief databaseschema. Alleen alfanumerieke tekens zijn geldig. Dit veld is optioneel. Standaard is dbo het schema dat voor de SQL-doeldatabase wordt gebruikt.

    • Voorvoegsel. Voorvoegsel dat wordt gebruikt voor de tabelnamen die zijn gemaakt in de doeldatabase. Zo kunt u gemakkelijk de tabellen identificeren die zijn gemaakt voor het exportprofiel in de doeldatabase. Als dit is opgegeven, moet u ervoor zorgen dat het prefix korter is dan 15 tekens. Dit veld is optioneel en er zijn alleen alfanumerieke tekens toegestaan.

    • Aantal nieuwe pogingen. Het aantal keren dat na een mislukking opnieuw wordt geprobeerd om een record in te voegen of bij te werken in de doeltabel. Dit is een verplicht veld. Acceptabele waarden zijn 0-20 en de standaardwaarde is 12.

    • Interval tussen pogingen. Het aantal seconden om te wachten voor een nieuwe poging in het geval van een fout. Dit is een verplicht veld. Acceptabele waarden zijn 0-3600 en de standaardwaarde is 5.

    • Verwijderlogboek schrijven. Optionele instelling voor het registreren van verwijderde records.

    Tabblad Eigenschappen in het dialoogvenster Exportprofiel maken.

  5. Selecteer in de stap Entiteiten selecteren de entiteiten die u wilt exporteren naar de SQL-doeldatabase en selecteer Volgende.

    Tabblad Entiteiten selecteren in het dialoogvenster Exportprofiel maken.

  6. In de stap Relaties selecteren kunt u M:N-relaties (veel-op-veel) synchroniseren die bestaan in de entiteiten die u in de vorige stap hebt geselecteerd. Selecteer Volgende.

    Exportprofiel maken - Relaties beheren - Relaties selecteren.

  7. In de stap Samenvatting selecteert u Maken en activeren om het profielrecord te maken en met Key Vault te verbinden, waarmee het synchronisatieproces begint. Anders selecteert u Maken om het exportprofiel op te slaan en later te activeren.

    Tabblad Overzicht in het dialoogvenster Exportprofiel maken.

Een bestaand exportprofiel aanpassen

U kunt entiteiten en relaties verwijderen uit of toevoegen aan een bestaand exportprofiel dat u wilt kopiëren.

  1. Ga naar Instellingen>Gegevensexport.

  2. Selecteer in de weergave Alle gegevensexportprofielen het exportprofiel dat u wilt wijzigen.

    Een exportprofiel selecteren.

  3. Klik in de werkbalk Acties op ENTITEITEN BEHEREN en voeg entiteiten toe (of verwijder ze) voor de gegevensexport. Als u entiteitsrelaties wilt toevoegen of verwijderen, selecteert u RELATIES BEHEREN.

    Entiteiten en entiteitsrelaties beheren.

  4. Selecteer de entiteiten of entiteitsrelaties die u wilt toevoegen of verwijderen.

    Selecteer de entiteiten of entiteitsrelaties die u wilt toevoegen of verwijderen.

  5. Selecteer Bijwerken om uw wijzigingen door te geven aan het exportprofiel.

Belangrijk

Als u een entiteit of een entiteitsrelatie verwijdert uit een exportprofiel, wordt de corresponderende tabel in de doeldatabase niet verwijderd. Voordat u een entiteit die is verwijderd, weer kunt toevoegen, moet u de corresponderende tabel verwijderen uit de bestemmingsdatabase. Als u een entiteittabel wilt verwijderen, raadpleegt u De tabellen en opgeslagen procedures van een gegevensexportprofiel verwijderen voor een specifieke entiteit.

Tabeldetails voor de Azure SQL-doeldatabase

Met de Gegevensexportservice worden tabellen voor zowel metagegevens als gegevens gemaakt. Een tabel wordt gemaakt voor elke entiteit en M:N-relatie die wordt gesynchroniseerd.

Zodra een exportprofiel is ingeschakeld, worden deze tabellen gemaakt in de doeldatabase. Dit zijn systeemtabellen, waaraan niet de velden SinkCreatedTime en SinkModifiedTime zijn toegevoegd.

Tabelnaam Gemaakt op
<Prefix>_GlobalOptionsetMetadata Bij activeren van exportprofiel.
<Prefix>_OptionsetMetadata Bij activeren van exportprofiel.
<Prefix>_StateMetadata Bij activeren van exportprofiel.
<Prefix>_StatusMetadata Bij activeren van exportprofiel.
<Prefix>_TargetMetadata Bij activeren van exportprofiel.
<Prefix>_AttributeMetadata Bij activeren van exportprofiel.
<Prefix>_DeleteLog Bij activering van exportprofiel, wanneer de verwijderlogboekoptie is ingeschakeld.

Synchronisatieproblemen oplossen

Zelfs na verscheidene pogingen kunnen recordsynchronisaties mislukken vanwege databaseopslagbeperkingen of tabelvergrendeling vanwege lang lopende query's. Als u deze fouten wilt oplossen, kunt u een hersynchronisatie afdwingen van alleen mislukte records of van alle records.

  1. Geef uw exportprofielen weer om profielen te zoeken die mislukte recordsynchronisaties hebben. U doet dit door de gegevensprofielen weer te geven in het gebied Synchronisatie of door een exportprofiel te openen, zoals dit profiel dat al een mislukte synchronisatie van contactentiteitrecords heeft.

    DataExport_failed_records_exist.

  2. Onderzoek de bron van de synchronisatiefout en corrigeer deze. Meer informatie: Foutafhandeling en controle

  3. Nadat het probleem is opgelost, hersynchroniseert u de mislukte records.

    Notitie

    Synchronisatie van mislukte records is een openbare voorbeeldfunctie.

    • Preview-functies zijn niet bedoeld voor productiegebruik en bieden mogelijk beperkte functionaliteit. Deze functies zijn beschikbaar vóór een officiële release zodat klanten vroeg toegang kunnen krijgen en feedback kunnen geven.
      • Wij verwachten veranderingen in deze functies, dus kunt u deze beter niet in productie gebruiken. Gebruik deze alleen in test- en ontwikkelomgevingen.
      • Microsoft biedt geen ondersteuning voor deze voorbeeldfunctie. De technische ondersteuning voor Microsoft Dynamics 365 kan u niet helpen met problemen of vragen. Voorbeeldfuncties zijn niet bedoeld voor productiegebruik en zijn onderworpen aan aparte aanvullende gebruiksvoorwaarden.
    1. Meld u aan bij uw omgeving en ga naar Instellingen>Gegevens exporteren.

    2. Open het exportprofiel dat de mislukte recordsynchronisaties bevat.

    3. Selecteer op de werkbalk Exportprofiel de optie HERSYNCHRONISATIE VAN MISLUKTE RECORDS.

    4. Selecteer in het bevestigingsdialoogvenster OK als de hersynchronisatie van de mislukte records is geslaagd.

    Bericht van een succesvolle hersynchronisatie.

    1. Controleer of het exportprofiel geen meldingen over mislukte records bevat door het gegevensexportprofiel te openen en de teller Mislukte meldingen te bekijken op het tabblad EIGENSCHAPPEN EN OVERZICHT. Dat aantal moet 0 zijn. Selecteer VERNIEUWEN op de werkbalk Exportprofiel om te zorgen dat de waarde Mislukte meldingen actueel is.

    Indicatie van nul records mislukt.

  4. Als de fouten van de recordsynchronisatie voor na de resynchronizing door de vorige stappen uit te voeren, blijft bestaan, neem contact op met. Microsoft Customer Support Services

Foutafhandeling en controle

Als u de synchronisatiestatus van een exportprofiel wilt bekijken, gaat u naar Instellingen>Gegevensexport en opent u het exportprofiel. Op het tabblad ENTITEITEN wordt de synchronisatiestatus weergegeven inclusief een kolom Mislukte records voor records die niet konden worden gesynchroniseerd. Voor mislukte records kan een lijst met records en de statusreden worden gedownload door MISLUKTE RECORDS in de opdrachtbalk te selecteren.

Opdrachtbalk Profiel exporteren - knop Mislukte records.

In het exportprofiel kunt u EIGENSCHAPPEN & BEOORDELING selecteren om de eigenschappen van het profiel weer te geven. Selecteer RELATIES om de synchronisatiestatus van relaties weer te geven.

Gedetailleerde informatie weergeven over records die niet zijn gesynchroniseerd

De mislukte-recordlogboeken kunnen helpen de oorzaak van synchronisatiefouten te bepalen. U kunt de mislukte records weergeven in de doeldatabase van Azure SQL met behulp van Azure Storage Explorer, een gratis zelfstandige toepassing waarmee u simpel kunt werken met gegevens in Azure Storage. Meer informatie: Azure Storage Explorer.

  1. Ga naar Instellingen>Gegevensexport.

  2. Ga naar de weergave Alle gegevensexportprofielen en selecteer het exportprofiel waarbij meldingen voor mislukte records worden getoond.

    Mislukte meldingen.

  3. Selecteer op de werkbalk Acties de optie MISLUKTE RECORDS.

    Werkbalkknop Mislukte records.

  4. Selecteer in het dialoogvenster Mislukte records downloaden de optie Blob-URL kopiëren en vervolgens OK.

    Dialoogvenster Mislukte records downloaden.

    Notitie

    De blob-URL is maximaal 24 uur geldig. Als u de URL gebruikt na deze periode van 24 uur, herhaal dan de hierboven beschreven stappen en genereer een nieuwe blob-URL.

  5. Start Azure Storage Explorer op.

  6. Selecteer in Azure Storage Explorer de optie Connect to Azure Storage (Verbinding maken met Azure Storage).

  7. Plak de URL vanuit het klembord in het vak Connect to Azure Storage en selecteer Volgende.

    URL voor opslagruimte.

  8. Selecteer op de pagina Connection Summary de optie Connect.

  9. Azure Storage Explorer maakt verbinding met de doeldatabase. Als er mislukte records zijn voor het exportprofiel, worden in Azure Storage Explorer mislukte recordsynchronisatiemappen weergegeven.

Gedetailleerde informatie weergeven over records die niet zijn gesynchroniseerd (preview)

U kunt mislukte records direct vanuit de gebruikersinterface van de Gegevensexportservice downloaden. Deze functie zit momenteel in Preview en zou handig zijn voor u om uit te proberen en feedback te geven.

Stappen om mislukte records te downloaden:

  1. Zoek het profiel met mislukte records.

    Gegevensexportprofielen.

  2. Selecteer het profiel en selecteer Download Mislukte records (Preview) in de bovenste menubalk.

    Downloaden van mislukte records (preview).

  3. In het dialoogvenster Download Mislukte records ziet u de lijst van het laatste gesorteerde (maximaal 20) blobbestanden zien. Selecteer welk u wilt downloaden en kies vervolgens OK.

    Mislukte records downloaden.

  4. Zodra het is gedownload opent u het bestand in een teksteditor van uw keuze (bijvoorbeeld Notepad) en bekijkt u het op fouten.

    Voorbeeld van foutenlogboek.

Mapstructuur en logbestanden van mislukte recordsynchronisatie

De opslag-URL van Azure-blobopslag voor mislukte records verwijst naar een locatie met de volgende mapstructuur:

  • data. Deze map bevat mislukte gegevensmeldingen en de gekoppelde JSON voor recordgegevens.

  • metadata. Deze map bevat mislukte metagegevensmeldingen en de gekoppelde JSON voor metagegevens.

  • failurelog. Deze map bevat logboeken die gegevens bevatten over de synchronisatiefout en de reden waarom de fout is opgetreden.

  • forcerefreshfailurelog. Deze map bevat fouten van de laatste uitvoering van de Gegevensexportservice-opdracht Mislukte records die is gebruikt om mislukte records opnieuw te synchroniseren.

  • unprocessablemessages. Deze map bevat de gegevensmeldingen die niet zijn verwerkt vanwege verwijdering van gegevens of metagegevens en de gekoppelde JSON.

    De mappen failurelog en forcerefreshfailurelog zijn als volgt ingedeeld: Jaar\Maand\Dag\Uur, zodat u snel de meest recente fouten kunt vinden. Alle records voor mislukkingen worden na 30 dagen verwijderd.

    Hier volgt een voorbeeldlogboekbestand, dat wijst op een synchronisatiefout voor een record van de entiteit contactpersoon.

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.  

Veelvoorkomende redenen voor mislukte recordsynchronisaties

Hier is een aantal redenen waarom recordsynchronisatiefouten kunnen optreden.

  • Onvoldoende opslagruimte voor de bestemmingdatabase. Voordat u de mislukte records opnieuw probeert te synchroniseren, vergroot u de opslagruimte van Azure SQL-database. Als dit probleem zich voordoet, wordt een bericht zoals dit opgenomen in het foutlogboek.

    De database 'databasenaam' heeft de groottetarget bereikt. Partition or delete data, drop indexes, or consult the documentation for possible resolutions.

  • Synchronisatietime-outs met Azure SQL-database. Dit kan tijdens de eerste synchronisatie van een gegevensexportprofiel voorkomen wanneer grote hoeveelheden gegevens tegelijk worden verwerkt. Als dit probleem zich voordoet, synchroniseert u de mislukte records opnieuw. Synchronisatieproblemen oplossen

Aanbevolen procedures voor het gebruik van Azure SQL-database met gegevensexport

  • Als u synchronisatiefouten wegens resourcebeperking wilt voorkomen, adviseren we u een Premium P1-plan van Azure SQL-database of beter te nemen wanneer u de Gegevensexportservice gebruikt. Meer informatie: Resourcelimieten van Azure SQL-database en Prijzen van SQL-database

  • Stel de Azure SQL-database in om Read Committed Snapshot Isolation (RCSI) te gebruiken voor werklasten die tegelijkertijd worden uitgevoerd op de doeldatabase en die langdurige leesquery's uitvoeren, zoals rapportage- en ETL-taken. Dit vermindert het voorkomen van time-outfouten die met de Gegevensexportservice kunnen optreden vanwege lees-/schrijfconflicten.

  • Om queryprestaties te helpen verbeteren raden we aan dat "database max degree of parallelism" (MAXDOP) voor de Gegevensexportservice wordt ingesteld op 1. Meer informatie: MSDN: De opties geheugen van de server

  • Evalueer vaak de hoeveelheid fragmentatie en herbouw indien nodig de indexen in de database van Gegevensexportservice. Meer informatie: Reorganiseer en herbouw indexen

  • Periodiek databasestatistieken bijwerken in tabellen en geïndexeerde weergaven in de Gegevensexportservice-database. Meer informatie: Updatestatistieken

  • Bewaak het gebruik van de Gegevensexportservice-database. Meer informatie: Perf controle

Over de wachttijd voor gegevenssynchronisatie

De Gegevensexportservice is ontworpen voor het synchroniseren van gegevenswijzigingen in de doeldatabase met een pushmechanisme door te luisteren naar wijzigingen terwijl ze plaatsvinden in apps voor klantbetrokkenheid. De service streeft ernaar om gegevens binnen een paar minuten te verwerken, maar is aantal factoren kan de wachttijd voor volledige synchronisatie beïnvloeden.

Factoren die op de duur van de synchronisatie van invloed zijn:

  • De huidige werkbelasting op apps voor klantbetrokkenheid.
  • De snelheid waarmee gegevens worden gewijzigd in apps voor klantbetrokkenheid.
  • Het aantal entiteiten dat is toegevoegd aan elk exportprofiel en de kenmerken daarvan.
  • Prestaties van SQL Server. Bijvoorbeeld:
    • Insteltijd voor SQL-verbinding.
    • Uitvoeringstijd voor SQL-instructie.

Op basis van ons toezicht op de service wordt aangenomen dat een bestaande deltasynchronisatie meestal in 15 minuten wordt voltooid, wanneer de service onder de volgende omstandigheden werkt:

  • De synchronisatie die plaatsvindt, is een deltasynchronisatie en niet de eerste synchronisatie. De deltasynchronisatie is alleen voor bewerkingen met gegevenswijziging, zoals transacties voor record maken, bijwerken en verwijderen. Houd er rekening mee dat de deltasynchronisatie begint als de eerste synchronisatie is voltooid.
  • De maximale snelheid voor gegevenswijziging in apps voor klantbetrokkenheid voor alle entiteiten in het exportprofiel is lager dan 3000 records per uur. Eventuele plotselinge toename in de snelheid voor gegevenswijziging door bulkwijziging waarbij de maximale wijzigingssnelheid wordt overschreden, veroorzaakt extra wachttijd.
  • Elke entiteit die aan een exportprofiel wordt toegevoegd, heeft minder dan 150 kenmerken.
  • De databaseverbinding of de uitvoering van de SQL-instructie wordt voltooid in minder dan 10 seconden. Als deze limiet wordt overschreden, resulteert dat in extra wachttijd.
  • Er treden geen fouten op in de verbinding met de doeldatabase of de SQL-uitvoering tijdens de synchronisatie.

Als de bovenstaande voorwaarden wordt voldaan, is 15 minuten een gebruikelijke synchronisatiewachttijd. Microsoft biedt geen dienstverleningsovereenkomst (SLA) voor de Gegevensexportservice en worden er geen garanties of toezeggingen gegeven voor synchronisatiewachttijden.

De Azure sleutelkluis instellen

Voer het hier beschreven Windows PowerShell-script uit als een Azure-accountbeheerder om toestemming te geven voor de Gegevensexportservice-functie zodat toegang tot uw Azure Key Vault mogelijk is. Dit script toont de URL van de sleutelkluis die vereist is voor het maken van het exportprofiel dat wordt gebruikt om toegang te verkrijgen tot de verbindingstekenreeks.

Vervang voordat u het script uitvoert, de tijdelijke aanduidingen door de volgende variabelen.

  • $subscriptionId. De Key Vault-resourcegroep die u wilt gebruiken. Als een resourcegroep niet al bestaat, wordt een nieuwe gemaakt met de naam die u opgeeft. In dit voorbeeld wordt ContosoResourceGroup1 gebruikt.

  • $location. Geef de locatie waar de resourcegroep zich bevindt, of zou moeten bevinden, zoals Het westen van de VS.

  • $connectionString. De verbindingsreeks voor de Azure SQL-database. U kunt de ADO.NET-verbindingstekenreeks gebruiken zoals deze wordt weergegeven op uw Azure-dashboard.

  • $organizationIdList = door komma's gescheiden lijst met organisaties, vermeld op basis van organisatie-id (organizationId), die mogen worden ingeschakeld voor de Gegevensexportservice. Als u de id van een organisatie wilt vinden, gaat u naar Instellingen>Aanpassingen>Resources voor ontwikkelaars. De organisatie-id bevindt zich onder Omgevingsreferentiegegevens.

  • $tenantId. Hiermee wordt de tenant-id van Azure Active Directory opgegeven waartoe het Key Vault-abonnement behoort.

Belangrijk

Een Azure-abonnement kan meerdere tenant-id's van Azure Active Directory hebben. Zorg ervoor dat u de juiste tenant-id voor Azure Active Directory selecteert die hoort bij de omgeving die u wilt gebruiken voor het exporteren van gegevens.

Notitie

Zorg ervoor dat de gebruikers-id waarnaar wordt verwezen binnen de $connectionString de juiste machtiging heeft voor de Azure SQL-doeldatabase.

# -------------------------------------------------------------------------------- #
    #  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)""

Alle tabellen en opgeslagen procedures voor een gegevensexportprofiel verwijderen

Belangrijk

Let er voordat u deze SQL-instructie uitvoert, op dat de waarden voor @prefix en @schema correct zijn gedefinieerd in de instructie. Het exportprofiel moet opnieuw worden aangemaakt nadat u deze SQL-instructie hebt uitgevoerd.

-----------------------------------------------------------------
-- 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;

De tabellen en opgeslagen procedures van een gegevensexportprofiel verwijderen voor een specifieke entiteit

Belangrijk

Let er voordat u deze SQL-instructie uitvoert, op dat de waarden voor @prefix, @schema en @entityName correct zijn gedefinieerd in de instructie. In dit voorbeeld worden de tabel, typen en opgeslagen procedures voor de entiteit Potentiële klant verwijderd.

-----------------------------------------------------------------
-- 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;

Gegevensexportservice verwijderen uit Power Platform beheren

  1. Ga naar Geavanceerde instellingen.
  2. Selecteer Instellingen > Aanpassingen en selecteer Oplossingen.
  3. Kies DataExportService gepubliceerd door Microsoft Dynamics 365 en selecteer vervolgens Verwijderen.

De Azure Active Directory-tenant-id voor uw tenant vinden

  1. Meld u aan bij de Azure-portal.
  2. Selecteer onder Azure-services de optie Tenanteigenschappen.
  3. Selecteer de waarde in het veld Tenant-id.

Statische IP-adressen voor Azure SQL-databases, die de Gegevensexportservice gebruikt

Selecteer in Azure SQL-database de optie Serverfirewall instellen, stel Toegang verlenen aan Azure-services in op UIT, selecteer IP van client toevoegen en voeg daarna de juiste IP-adressen toe voor de regio van uw omgeving. Meer informatie: Azure: firewallregel configureren op niveau van Azure SQL-databaseserver met Azure Portal

Regio Nieuw IP-adres Oud IP-adres
US - west 20.245.127.60 13.64.148.9
US - oost 172.174.41.63 20.228.153.81
Azië - oost 20.239.192.9 104.208.84.217
Azië - zuidoost 20.24.15.60 20.205.153.14
India - centraal 20.219.158.75 20.198.113.107
India Zuid 52.140.54.95 104.211.204.18
Europa - west 20.126.43.104 40.68.244.253
Europa - noord 20.166.94.137 20.238.83.32
Japan - west Geen wijziging 104.214.144.93
Japan - oost 52.253.104.175 20.89.138.246
Brazilië - zuid 4.228.211.102 20.197.186.17
Australië - zuidoost Geen wijziging 20.70.112.80
Oost-Australië 20.5.88.96 20.213.58.3
Canada - centraal 20.220.227.230 20.151.173.107
Canada - oost 40.86.216.207 52.229.109.91
Verenigd Koninkrijk (West) 51.142.173.150 20.68.113.18
Verenigd Koninkrijk (Zuid) 20.117.159.198 20.117.89.184

Notitie

Klanten in Noord-Amerika moeten IP-adressen toevoegen aan een goedgekeurde lijst voor US - oost en US - west.

Om onderbrekingen van de gegevenssynchronisatie te voorkomen, moeten klanten het nieuwe IP-adres en het oude IP-adres behouden.

Bekende problemen

Verwijderde records kunnen opnieuw in de entiteittabel worden ingevoegd na een synchronisatiefout

Als u herstelt van synchronisatiefouten, kunnen records die eerder zijn verwijderd, weer worden ingevoegd in de oorspronkelijke entiteittabel. Als u dit probleem wilt omzeilen wanneer synchronisatiefouten optreden, volgt u deze stappen.

  1. Maak exportprofielen waarvoor Verwijderlogboek schrijven is ingeschakeld. Maak bestaande exportprofielen opnieuw waarvoor Verwijderlogboek schrijven niet is ingeschakeld.

  2. Maak en start een SQL-query voor de Azure SQL-bestemmingdatabase die records zoekt in de tabel DeleteLog. Als een of meer records worden gevonden, duidt dit op de aanwezigheid van verwijderde records.

  3. Als een of meer records bestaan in de tabel DeleteLog, maakt u een SQL-query en voert u deze uit om omgevingen te detecteren waarbij de record-id voor een record in de tabel DeleteLog overeenkomt met de record-id voor een record in een tabel EntityName en het versionNumber in de tabel DeleteLog groter is dan het versionNumber van de record in de tabel EntityName. Als er een overeenkomst van record-id's optreedt, verwijdert u de record uit de tabel EntityName. Als een record-id in de kolom AccountId van de tabel DeleteLog bijvoorbeeld overeenkomt met een record-id in de kolom AccountId van de entiteittabel AccountBase en het versionNumber in de tabel DeleteLog groter is dan het versionNumber in de tabel Account, verwijdert u de record uit de entiteittabel AccountBase.

    Belangrijk

    Afhankelijk van uw zakelijke behoeften en vereisten, adviseren wij u de SQL-query's voor het verwijderen van records regelmatig uit te voeren, maar wel buiten bedrijfsuren.

    Voorbeeldquery voor verwijdering van entiteitsrecords.

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)

Entiteiten die geen gegevensexport ondersteunen

De hier weergegeven entiteiten ondersteunen wel bijhouden van wijzigingen, maar worden niet ondersteund voor gegevensexport met de Gegevensexportservice.

Entity Tabelnaam Oplossing
Activiteit ActivityPointerBase Selecteer de specifieke activiteitsentiteiten voor export, zoals Telefoongesprek, Afspraak, E-mail en Taak.

Kan geen rij maken die groter is dan de toelaatbare maximale rijgrootte (8K )

Als in uw foutenlogboeken 'Kan geen rij maken die groter is dan de toelaatbare maximale rijgrootte van 8060', loopt u tegen een probleem aan waarbij u de maximaal toelaatbare rijgrootte overschrijdt. De Data Export Service ondersteunt geen rijgrootte die de maximaal toelaatbare rijgrootte van 8k overschrijdt. Als u dit wilt beperken, moet u ervoor zorgen dat u zich aan de limieten voor rijgroottes houdt.

De lengte van de tekenreeks in de bron is langer dan het bestemmingschema voor ColumnName

Als in uw foutenlogboeken de melding "Lengte van de tekenreeks in de bron langer dan het bestemmingschema voor [ColumnName, MaxDataLength]" verschijnt, dan loopt u tegen het probleem aan dat de tekenreekslengte van uw brongegevens langer is dan het doel. Als de tekenreekslengte van uw brongegevens langer is dan eindbestemming, zal schrijven naar de bestemming mislukken. Als u dit probleem wilt beperken, moet u ofwel de omvang van de gegevens verminderen of de lengte voor kolom handmatig vergroten, groter dan MaxLength, in het DB.

Er is geen ondersteuning voor bijlagen

Bijlagen exporteren zoals documentbody in Annotatie-tabel wordt niet ondersteund.

Privacyverklaring

Als u de Gegevensexportservice gebruikt, worden bij het activeren van een gegevensexportprofiel vanuit Dynamics 365 de gegevens van de entiteiten die zijn toegevoegd aan het profiel naar Azure verzonden. De initiële synchronisatie omvat alle gegevens die zijn gekoppeld aan de entiteiten die aan het exportprofiel zijn toegevoegd, maar daarna omvat de synchronisatie alleen nieuwe wijzigingen, die continu naar de service voor gegevensexportservice worden verzonden. Gegevens die naar de Gegevensexportservice worden verzonden, worden tijdelijk opgeslagen in Azure Service Bus en Azure Storage, verwerkt in Azure Service Fabric en tot slot gesynchroniseerd (ingevoegd, bijgewerkt of verwijderd) met de doeldatabase die is opgegeven in uw Azure-abonnement. Nadat de gegevens zijn gesynchroniseerd, worden deze verwijderd uit Azure Service Bus en Azure Storage. Als zich een fout voordoet tijdens de gegevenssynchronisatie, worden minimale gegevens, overeenkomend met entiteitstype, record-id en tijdstempel voor synchronisatie opgeslagen in Azure Storage om het downloaden van een lijst met records toe te staan die niet zijn bijgewerkt.

Een beheerder kan het gegevensexportprofiel op elk gewenst moment uitschakelen om de gegevenssynchronisatie te stoppen. Bovendien kan een beheerder het exportprofiel verwijderen om alle logbestanden met mislukte records te verwijderen en kan de oplossing Gegevensexportservice worden verwijderd om te stoppen met het gebruik van de gegevensexportservice.

Gegevenssynchronisatie vindt continu op veilige wijze plaats tussen Dynamics 365 en de Gegevensexportservice. Gegevens worden gecodeerd terwijl deze continu worden uitgewisseld tussen Dynamics 365 en de Gegevensexportservice.

Welke Azure-onderdelen en -services betrokken zijn bij de gegevensexportservice, wordt gedetailleerd besproken in de volgende secties.

Vertrouwenscentrum van Microsoft Azure

Azure Service Fabric

Deze biedt de API en virtuele Azure-machines voor het verwerken van synchronisatiemeldingen voor records die worden ontvangen van Dynamics 365 en vervolgens voor het invoegen, bijwerken of verwijderen van recordgegevens in de doeldatabase. Microservices die worden geïmplementeerd op virtuele machines die worden beheer door de Azure Service Fabric runtime handelen alle rekenservices af die verband houden met gegevenssynchronisatie.

Azure Service Bus

Deze biedt de berichtenbus waarin Dynamics 365 de berichten voor synchronisatiemelding invoegt die worden verwerkt door rekenknooppunten in Azure Service Fabric. In elk bericht wordt informatie opgeslagen, zoals de organisatie-id en record, waarvoor gegevens worden gesynchroniseerd. Gegevens in de Azure Service Bus zijn versleuteld in rusttoestand en zijn alleen toegankelijk via de service voor gegevensexport.

Azure Blob-opslag

Gegevens worden tijdelijk opgeslagen in Azure Blob Storage voor het geval dat de gegevens voor synchronisatiemelding van records te groot zijn om te worden opgeslagen in een bericht of een tijdelijke storing optreedt bij de verwerking van de synchronisatiemelding. Deze blobs zijn versleuteld met behulp van de allernieuwste functie in de Azure Storage-SDK, die ondersteuning voor symmetrische en asymmetrische encryptie en integratie met Azure biedt.

Azure SQL

In de Azure SQL-database worden de configuratie van gegevensexportprofielen en metrische gegevens voor gegevenssynchronisatie opgeslagen.

Zie ook

Overzicht van entiteitsrelaties
Gegevensexportservice
Teamblog: Inleiding tot Gegevensexportservice