Gegevens repliceren naar Azure SQL-database met gegevensexportservice

De Gegevensexportservice is een invoegservice die beschikbaar wordt gesteld voor Microsoft AppSource. Deze service voegt de mogelijkheid toe om gegevens te repliceren van een Common Data Service-database naar een Azure SQL-database-archief in een Azure-abonnement dat eigendom is van de gebruiker. De ondersteunde doelen zijn Azure SQL-database en SQL Server op Azure virtuele machines. Met Gegevensexportservice worden alle gegevens initieel intelligent gesynchroniseerd. Daarna worden wijzigingen continu gesynchroniseerd (deltawijzigingen). Dit biedt verschillende analyse- en rapportagescenario's boven op de gegevens met gegevens en analyseservices uit Azure en opent nieuwe mogelijkheden voor klanten en partners aangepaste oplossingen te maken.

Note

  • U kunt de Gegevensexportservice gebruiken met modelgestuurde apps in Dynamics 365, zoals Dynamics 365 Sales en Dynamics 365 Customer Service.
  • We hebben nu een vergelijkbare mogelijkheid om uw Common Data Service-gegevens naar Azure Data Lake Gen2 te exporteren in preview. U kunt uw Common Data Service-omgeving aan een data lake in uw Azure-abonnement koppelen, standaard of aangepaste entiteiten selecteren en vervolgens gegevens naar het data lake exporteren. Alle wijzigingen in gegevens of metagegevens (initiële en incrementele) in Common Data Service worden automatisch naar Azure Data Lake Gen2 gepusht zonder extra actie. Meer informatie: Common Data Service-gegevens exporteren naar Azure Data Lake

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

Vereisten voor het gebruiken van Gegevensexportservice

Als u Gegevensexportservice gaat gebruiken, gelden de volgende vereisten.

Azure SQL-databaseservice

  • Een klant is eigenaar van het Azure SQL-database-abonnement. 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 (klassieke installatie)

    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.

  • PermissionsToSecrets-machtiging verlenen voor 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 sleutelkluis instellen

  • De sleutelkluis moet 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 sleutelkluis instellen

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

Modelgestuurde apps in Dynamics 365

  • 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 - Data Export Service en selecteer 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 klikt u op 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 Gegevensexportservice-functie 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 Azure virtuele machines.

    • Azure Key Vault.

Important

Als u de Gegevensexportservice wilt gebruiken, moeten de modelgestuurde apps in Dynamics 365 en de Azure Key Vault-services functioneren onder dezelfde tenant en binnen dezelfde Azure Active Directory. Meer informatie: Azure-integratie met Office 365

De Azure SQL-database-service 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-omgevingen die zijn geconfigureerd met Beheerdersmodus inschakelen ingeschakeld. Meer informatie: Beheerdersmodus

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

Exportprofiel

Als u gegevens van modelgestuurde apps in Dynamics 365 wilt exporteren, maakt de systeembeheerder een exportprofiel. Verschillende profielen kunnen worden gemaakt en geactiveerd als u gegevens in andere doeldatabases gelijktijdig wilt synchroniseren.

Een exportprofiel is het kernconcept van 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 die optreden in entiteitsrecords of metagegevens in modelgestuurde apps in Dynamics 365. U hoeft dus geen planning om te stellen om gegevens uit modelgestuurde apps in Dynamics 365 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 metagegevens en 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 Gegevensexportservice-oplossing wordt geïnstalleerd in uw omgeving.

  • Behoud de SQL-databaseverbindingtekenreeks 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

  • De 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 klik op Doorgaan of Annuleren als u geen gegevens wilt exporteren.

  3. Klik op Nieuw om een nieuw exportprofiel te maken.

  4. In de stap Eigenschappen voert u de volgende informatie in, en klikt u op Volgende om door te gaan zonder verbinding te maken met de Key Vault. Als u op Valideren klikt, 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 sleutelkluis instellen

      Important

      De belangrijkste Verbindings-URL sleutelkluis is hoofdlettergevoelig. Voer de Verbindings-URL sleutelkluis precies zo in als deze wordt weergegeven als u de opdrachten Windows PowerShell in dit onderwerp uitvoert.

    • 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 klik op 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. Klik op Volgende.

    Exportprofiel maken - Relaties beheren - Relaties selecteren

  7. In de stap Samenvatting klikt u op Maken en activeren om het profielrecord te maken en met Key Vault te verbinden, waarmee het synchronisatieproces begint. Anders klikt u op 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, klikt u op 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. Klik op Bijwerken om uw wijzigingen door te geven aan het exportprofiel.

Important

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

De Gegevensexportservice maakt tabellen voor metagegevens en gegevens. 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
<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.

    Note

    Synchronisatie van mislukte records is een openbare voorbeeldfunctie.

    • Preview-functies zijn niet bedoeld voor productiegebruik en bieden mogelijk beperkte functionaliteit. Deze functies zijn beschikbaar voor 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 preview-functie. 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. Klik op de werkbalk Exportprofiel op HERSYNCHRONISATIE VAN MISLUKTE RECORDS.

    4. Klik in het bevestigingsdialoogvenster op 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. Klik op 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 te klikken op MISLUKTE RECORDS in de opdrachtbalk.

Opdrachtbalk Profiel exporteren - knop Mislukte records

In het exportprofiel kunt u klikken op EIGENSCHAPPEN & BEOORDELING om de eigenschappen van het profiel weer te geven. Klik op 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 over dit onderwerp vindt u in: 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. Klik in de werkbalk Acties op Mislukte records.

    Werkbalkknop Mislukte records

  4. Klik in het dialoogvenster Mislukte records downloaden op Blob-URL kopiëren en vervolgens op OK.

    Dialoogvenster Mislukte records downloaden

    Note

    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. Klik in Azure Storage Explorer op Connect to Azure Storage (verbinding maken met Azure Storage).

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

    URL voor opslagruimte

  8. Klik op de pagina Connection Summary op 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 nu direct vanuit de gebruikersinterface van de Data Export Service 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 Azure SQL-database-opslagruimte. 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 Azure SQL-database Premium P1-plan 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 bestemmingdatabase 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 queryprestatie helpen verbeteren raden we aan dat de Gegevensexportservice "database max degree of parallelism" (MAXDOP) ingesteld=wordt= in 1. Meer informatie: MSDN: De opties geheugen van de server

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

  • Periodiek de statistieken van de updatedatabase in welke tabellen en geïndexeerde weergaven in de Gegevensexportservice - database. Meer informatie: Updatestatistieken

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

Over de wachttijd voor gegevenssynchronisatie

De Gegevensexportservice is ontworpen voor het synchroniseren van gegevenswijzigingen in de bestemmingdatabase met een pushmechanisme door te luisteren naar wijzigingen terwijl ze plaatsvinden in modelgestuurde apps in Dynamics 365. 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 voor modelgestuurde apps in Dynamics 365.
  • De snelheid waarmee gegevens wijzigen in Dynamics 365.
  • 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 modelgestuurde apps in Dynamics 365 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 Gegevensexportservice en worden er geen garanties of toezeggingen gegevens voor synchronisatiewachttijden.

De Azure sleutelkluis instellen

Voer het hier beschreven Windows PowerShell-script uit als een Azure-accountbeheerder om toestemming te geven voor de functie Gegevensexportservice met toegang tot uw Azure-sleutelkluis. 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 verbindingstekenreeks met 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 toegestane organisaties, vermeld op organisatie-id (organizationId) om in te schakelen voor 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.

Important

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

# -------------------------------------------------------------------------------- #
    #  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
Login-AzureRmAccount
Set-AzureRmContext -TenantId $tenantId -SubscriptionId $subscriptionId

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

# Create new key vault if not exists.
$kvAvail = Get-AzureRmKeyVault -VaultName $keyvaultName -ResourceGroupName $resourceGroupName -ErrorAction SilentlyContinue
if(!$kvAvail){
    New-AzureRmKeyVault -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-AzureKeyVaultSecret -VaultName $keyvaultName -Name $secretName -SecretValue $secretValue -Tags $secretTags

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

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

Alle tabellen en de opgeslagen procedures voor een gegevensexportprofiel verwijderen

Important

Let er voordat u deze SQL-instructie uitvoert, 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

Important

Let er voordat u deze SQL-instructie uitvoert, 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;

De id van de Azure Active Directory-tenant voor uw omgevingen vinden

  1. Meld u aan bij de Azure-portal.

  2. Selecteer in het linkernavigatiedeelvenster de optie Alle services.

  3. Selecteer in de lijst Alle services in de sectie Identiteit de optie Azure Active Directory.

  4. Selecteer in het linkernavigatiedeelvenster de optie Eigenschappen en in Directory-eigenschappen de Directory-id

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

Klik in Azure SQL-database op Serverfirewall instellen. Stel Toegang tot Azure-services toestaan in op UIT, klik op Client-IP toevoegen en voer daarna de juiste IP-adressen toe voor de regio van uw Dynamics 365-omgeving. Meer informatie: Azure: Firewallregel configureren op Azure SQL Database server-niveau met Azure Portal

Regio IP-adres
Westen van VS 40.112.139.218
Oost VS 23.96.92.86
West-Europa 40.68.252.224
Oost-Azië 52.175.24.148
Zuidoost-Azië 52.163.231.218
Midden-India 52.172.191.195
Zuid-India 52.172.51.15
Noord-Europa 52.169.117.212
Japan West 138.91.22.196
Japan Oost 13.73.7.177
Zuid-Brazilië 191.235.81.249
Australië Zuidoost 40.115.78.163
Australië Oost 13.73.202.160
Canada Midden 52.228.26.31
Canada Oost 40.86.251.81
Verenigd Koninkrijk (Zuid) 51.140.71.166
Verenigd Koninkrijk (West) 51.141.44.218

Note

Noord-Amerikaanse klanten moeten ip-adressen whitelisten voor zowel Oost-VS als West-VS.

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.

    Important

    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 FROM [dbo].[prefix_account] A
WHERE id IN (SELECT CONVERT(uniqueidentifier, recordid) FROM [dbo].[prefix_DeleteLog] DL WHERE DL.entityname ='account'
AND DL.VersionNumber &gt; A.VersionNumber)

Entiteiten die geen gegevensexport ondersteunen

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

Entiteit 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 uw foutenlogboeken weergegeven " Kan geen rij met omvang maken omdat dat groter is dan de toelaatbare maximale rijgrootte van 8060 ", dan loopt u ertegenaan dat 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.

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-opslag, 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 zij verwijderd uit de Azure Service Bus- en Azure-opslag. Als zich een fout voordoet tijdens de gegevenssynchronisatie, worden minimale gegevens, overeenkomend met entiteitstype, record-id en tijdstempel voor synchronisatie opgeslagen in Azure-opslag 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 Azure virtuele 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 niet gecodeerd in rusttoestand, maar zijn alleen toegankelijk via de service voor gegevensexport.

Azure-blobopslag

Gegevens worden tijdelijk opgeslagen in Azure-blobopslag 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-opslag SDK, die ondersteuning voor symmetrische en asymmetrische encryptie en integratie met Azure Key Vault biedt.

Azure SQL

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

Zie ook

Overzicht van entiteitsrelaties
AppSource: Gegevensexportservice
Gegevensexportservice
Teamblog: Inleiding tot Gegevensexportservice