Репликация данных Microsoft Dynamics 365 (сетевая версия) в базу данных Microsoft Azure SQL

 

Опубликовано: Февраль 2017

Применимо к: Dynamics 365 (online), Dynamics CRM Online

Microsoft Dynamics 365-Служба экспорта данных представляет собой службу-надстройку, доступную как решение Microsoft AppSource, которое добавляет возможность репликации данных Microsoft Dynamics 365 Online в хранилище База данных SQL Microsoft Azure в принадлежащей клиенту подписке Microsoft Azure. Поддерживаемые целевые пункты назначения: База данных SQL Microsoft Azure и Microsoft AzureSQL Server на виртуальных машинах Microsoft Azure. Сначала Служба экспорта данных выполняет интеллектуальную синхронизацию всех данных Dynamics 365, затем выполняется постоянная синхронизация по мере появления изменений (разностные изменения) в системе Microsoft Dynamics 365 Online. Это помогает обеспечить несколько сценариев аналитики и отчетности поверх данных Dynamics 365 с данными Azure и службами аналитики, а также открывает новые возможности для клиентов и партнеров по созданию настраиваемых решений.

System_CAPS_noteПримечание

Можно использовать Служба экспорта данных с:

  • Microsoft Dynamics 365 Online

  • Обновление Microsoft Dynamics CRM Online 2016

Сведения о программном интерфейсе для управления конфигурацией и администрирования Служба экспорта данных см. в разделе MSDN: Служба экспорта данных.

Чтобы начать использовать Служба экспорта данных, должны быть выполнены следующие необходимые условия.

  • Подписка на База данных SQL Azure, принадлежащая клиенту. Эта подписка должна поддерживать синхронизируемое количество данных.

  • Параметры брандмауэра. Рекомендуется отключить параметр Разрешить доступ к службам Azure и указать соответствующие IP-адреса клиента, перечисленные в этом разделе. Дополнительные сведения: Статические IP-адреса базы данных Azure SQL, используемые службой экспорта данных

    Кроме того, можно включить параметр Разрешить доступ к службам Azure, чтобы разрешить доступ к службам Azure.

    Для SQL Server на виртуальной машине Azure должен быть включен параметр "Подключение к SQL Server по Интернету". Дополнительные сведения: Microsoft Azure: подключение к виртуальной машине SQL Server в Azure (классическое развертывание)

  • Пользователь базы данных должны иметь разрешения в базе данных и уровне схемы в соответствии со следующими таблицами. Пользователь базы данных используется в строке подключения экспорта данных.

    Требуемые разрешения базы данных.

    Код типа разрешения

    Имя разрешения

    CRTB

    СОЗДАТЬ ТАБЛИЦУ

    CRTY

    СОЗДАТЬ ТИП

    CRVW

    СОЗДАТЬ ПРЕДСТАВЛЕНИЕ

    CRPR

    СОЗДАТЬ ПРОЦЕДУРУ

    ALUS

    ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ

    Требуемые разрешения схемы.

    Код типа разрешения

    Имя разрешения

    AL

    ИЗМЕНИТЬ

    В

    ВСТАВИТЬ

    DL

    УДАЛИТЬ

    SL

    ВЫБРАТЬ

    UP

    ОБНОВИТЬ

    EX

    ВЫПОЛНИТЬ

    RF

    ССЫЛКИ

  • Принадлежащая клиенту подписка на Хранилище ключей Azure, которая используется для безопасного ведения строки подключения базы данных.

  • Назначьте разрешение PermissionsToSecrets для приложения с идентификатором "b861dbcc-a7ef-4219-a005-0e4de4ea7dcf". Это может сделать, выполнив приведенную ниже команду AzurePowerShell, и используется для получения доступа к Хранилище ключей , содержащему секрет строки подключения.Дополнительные сведения:Настройка хранилища ключей Azure

  • Хранилище ключей должно быть помечено кодами организации (OrgId) и клиента (TenantId) Microsoft Dynamics 365. Это можно сделать, выполнив приведенную ниже команду AzurePowerShell.Дополнительные сведения:Настройка хранилища ключей Azure

  • Экземпляр Обновление Microsoft Dynamics CRM Online 2016 или более поздней версии.

  • Должно быть установлено решение Служба экспорта данных. Получите его сейчас в Microsoft AppSource.

  • Для сущностей, которые будут добавлены в Профиль экспорта, должно быть отслеживание изменений. Чтобы можно было синхронизировать стандартную или настраиваемую сущность, перейдите в раздел Настройка > Настроить систему и щелкните сущность. На вкладке Общие сведения убедитесь, что включен параметр Отслеживание изменений в разделе Службы данных.

  • Требуется роль безопасности "Администратор системы" в экземпляре Microsoft Dynamics 365 Online.

Разрешите всплывающие окна для домена https://discovery.crmreplication.azure.net/ в веб-браузере. Это необходимо для автоматического входа при переходе к пункту "Параметры" > "Экспорт данных".

Чтобы использовать функцию Служба экспорта данных, необходимо иметь следующие службы, учетные данные и привилегии.

  • Подписка Microsoft Dynamics 365 Online. Только пользователи, которым назначена роль системного администратора Microsoft Dynamics 365, могут настроить или внести изменения в Профиль экспорта.

  • Подписка Microsoft Azure, которая включает следующие службы.

    • База данных SQL Azure или AzureSQL Server на виртуальных машинах Azure.

    • Хранилище ключей Azure.

System_CAPS_importantВажно

Чтобы использовать Служба экспорта данных, службы Microsoft Dynamics 365 Online и Хранилище ключей Azure должны работать в одном клиенте и в одной службе Microsoft Azure Active Directory.Дополнительные сведения:Интеграция Azure с Office 365

Служба База данных SQL Azure может быть в одном и том же или в другом клиенте из службы Microsoft Dynamics 365 Online.

  • Профили экспорта необходимо удалить, а затем повторно создать при восстановлении или перемещении экземпляра Microsoft Dynamics 365 Online в другую страну или регион. Для этого удалите Профиль экспорта в представлении ПРОФИЛИ ЭКСПОРТА, затем удалите таблицы и хранимые процедуры, а затем создайте новый профиль.Дополнительные сведения:Удаление всех таблиц и хранимых процедур профиля экспорта данных

  • Служба экспорта данных не работает в экземплярах в песочнице Microsoft Dynamics 365 Online, в которых включен параметр Включить режим администрирования.Дополнительные сведения:Режим администрирования

Для экспорта данных из Microsoft Dynamics 365 Online администратор Microsoft Dynamics 365 Online создает Профиль экспорта. Несколько профилей можно создать и активировать для синхронизации данных в разных базах данных назначения одновременно.

Профиль экспорта — это базовая концепция Служба экспорта данных.Профиль экспорта собирает информацию о настройке и конфигурации для синхронизации данных с целевой базой данных. В Профиль экспорта администратор включает список сущностей, которые требуется экспортировать в целевую базу данных. После активации Профиль экспорта начинается автоматическую синхронизацию данных. Сначала экспортируются все данные, соответствующие каждой из выбранных сущностей. В дальнейшем почти в режиме реального времени непрерывно с помощью механизма push синхронизируются только изменения данных по мере их появления в записях или метаданных сущностей в Microsoft Dynamics 365 Online. Поэтому не требуется создавать расписание для извлечения данных из Microsoft Dynamics 365 Online.

Только сущности, для которых включено отслеживание изменений, можно добавить в Профиль экспорта. Примите во внимание, что для большинства обычных сущностей Microsoft Dynamics 365, которые захватывают данные, отслеживание изменений включено. Настраиваемые сущности необходимо явно включить для отслеживания изменений перед добавлением их в Профиль экспорта.Дополнительные сведения:Включение отслеживания изменений для управления синхронизацией данных

Служба экспорта данных синхронизирует как метаданные, так и данные. Каждая сущность преобразуется в одну таблицу, а каждое поле преобразуется в столбец в таблице целевой базы данных. Имена таблиц и столбцов используют имя схемы метаданных Microsoft Dynamics 365.

После активации Профиль экспорта собирает статистику для синхронизации данных, которая помогает обеспечить рабочую видимость и диагностику экспортированных данных.

Категория

Возможность

Поддерживаемые типы данных

Начальная синхронизация

Метаданные — основные типы данных

Типы данных: целое число, число с плавающей запятой, десятичное число, одна строка текста, несколько строк текста, дата и время.

Начальная синхронизация

Метаданные — дополнительные типы данных

Валюта, PartyList, набор параметров, статус, причина состояния, поиск (включая поиск типа "Клиент" и "В отношении"). Тип PartyList доступен только для экспорта версии 8.1 и выше.

Начальная синхронизация

Данные — основные типы

Все основные типы данных.

Начальная синхронизация

Данные — дополнительные типы

Все дополнительные типы данных.

Разностная синхронизация

Изменение схемы — основные типы

Добавление или изменение изменения поля, все основные типы данных.

Разностная синхронизация

Изменение схемы — дополнительные типы

Добавление или изменение изменения поля, все дополнительные типы данных.

Разностная синхронизация

Изменение данных — основные типы

Все основные типы данных.

Разностная синхронизация

Изменение данных — дополнительные типы

Все дополнительные типы данных, такие как PartyList.

Перед созданием Профиль экспорта убедитесь, что соблюдены следующие требования.

  • Решение Служба экспорта данных установлено в вашем экземпляре Microsoft Dynamics 365 Online.

  • Поддерживайте строку подключения База данных SQL в Хранилище ключей и скопируйте URL-адрес Хранилище ключей для предоставления в Профиль экспорта. Дополнительные сведения: Microsoft Azure: начало работы с хранилищем ключей Azure

  • Для сущностей, которые добавляются в Профиль экспорта, включено отслеживание изменений.Дополнительные сведения:Включение отслеживания изменений для управления синхронизацией данных

  • В службе База данных SQL есть достаточно места для хранения данных Microsoft Dynamics 365.

  • Вы являетесь системным администратором в экземпляре Microsoft Dynamics 365 Online.

  1. В Microsoft Dynamics 365 Online откройте пункт Параметры > Экспорт данных.

  2. Просмотрите уведомление и щелкните Продолжить или Отмена, если не нужно экспортировать данные.

  3. Щелкните Создать, чтобы создать новый Профиль экспорта.

  4. В шаге Свойства введите следующую информацию, затем щелкните Далее для продолжения без подключения к Хранилище ключей . Если нажать Проверить, будет использован указанный вами URL-адрес Хранилище ключей для соединения с Хранилище ключей .

    • Имя. Уникальное имя профиля. Это поле является обязательным.

    • URL-адрес подключения к хранилищу ключей. URL-адрес Хранилище ключей , указывающий на строку подключения, хранящуюся с учетными данными для подключения к целевой базе данных. Это поле является обязательным.Дополнительные сведения:Настройка хранилища ключей Azure

      System_CAPS_importantВажно

      URL-адрес подключения к хранилищу ключей вводится с учетом регистра. Введите URL-адрес подключения к хранилищу ключей так, как он отображается после выполнения команд Windows PowerShell в этом разделе.

    • Схема. Имя для альтернативной схемы базы данных. Допускаются только буквы и цифры. Это поле необязательно. По умолчанию для целевой База данных SQL используется схема dbo.

    • Префикс. Префикс, используемый для имен таблиц, созданных в целевой базе данных. Это поможет легко идентифицировать таблицы, созданные для Профиль экспорта в целевой базе данных. Если указан, убедитесь, что длина префикс меньше 15 знаков. Это поле не является обязательным и допускает только буквы и цифры.

    • Число повторов. Число повторных попыток для записи в случае сбоя вставки или обновления в целевой таблице. Это поле является обязательным. Допустимые значения: от 0 до 20. Значение по умолчанию: 12.

    • Интервал повтора. Число секунд ожидания перед повторной попыткой в случае ошибки. Это поле является обязательным. Допустимые значения: от 0 до 3600. Значение по умолчанию: 5.

    • Записать журнал удаления. Необязательный параметр для ведения журнала удаленных записей.

    Вкладка "Свойства" в диалоговом окне "Создать профиль экспорта"

  5. В шаге Выберите сущности выберите сущности, которые нужно экспортировать в целевую База данных SQL, затем нажмите Далее.

    Вкладка "Выбор сущностей" в диалоговом окне "Создать профиль экспорта"

  6. В шаге Выберите отношения можно синхронизировать существующие отношения M:N (многие-ко-многим) с сущностями, выбранными на предыдущем шаге. Нажмите кнопку Далее.

    Создание профиля экспорта — Управление отношениями — Выбор отношений

  7. В шаге Сводка щелкните Создать и активировать для создания записи профиля и подключения к Хранилище ключей , который запускается процесс синхронизации. В противном случае нажмите Создать, чтобы сохранить Профиль экспорта и активировать его позже.

    Вкладка "Сводка" в диалоговом окне "Создать профиль экспорта"

Можно добавить или удалить сущности и связи в существующем Профиль экспорта, который необходимо реплицировать.

  1. В Microsoft Dynamics 365 (сетевая версия) откройте пункт Параметры > Экспорт данных.

  2. В представлении "Все профили экспорта данных" выберите Профиль экспорта, который требуется изменить.

    Выбор профиля экспорта
  3. На панели действий щелкните УПРАВЛЕНИЕ СУЩНОСТЯМИ для добавления или удаления сущностей для экспорта данных. Для добавления или удаления отношений сущностей щелкните УПРАВЛЕНИЕ ОТНОШЕНИЯМИ.

    Управление сущностями или отношениями сущностей
  4. Выберите сущности или отношения сущностей для добавления или удаления.

    Выбор сущностей или отношений сущностей для добавления или удаления
  5. Щелкните Обновить, чтобы отправить изменения в Профиль экспорта.

System_CAPS_importantВажно

При удалении сущности или отношения сущности из Профиль экспорта соответствующая таблица не переносится в целевую базу данных. Прежде чем повторно добавлять удаленную сущность, сначала необходимо переместить соответствующую таблицу в целевую базу данных. Чтобы переместить таблицу сущностей, см. раздел Удаление таблиц и хранимых процедур профиля экспорта данных для определенной сущности.

Служба экспорта данных создает таблицы как для данных, так и для метаданных. Таблица создается для каждой сущности и отношения M:N, которые синхронизируются.

После активации Профиль экспорта эти таблицы создаются в целевой базе данных. Это системные таблицы, и они не будут содержать поля SinkCreatedTime и SinkModifiedTime.

Имя таблицы

Создано

<префикс>_GlobalOptionsetMetadata

После активации Профиль экспорта.

<префикс>_OptionsetMetadata

После активации Профиль экспорта.

<префикс>_StateMetadata

После активации Профиль экспорта.

<префикс>_StatusMetadata

После активации Профиль экспорта.

<префикс>_TargetMetadata

После активации Профиль экспорта.

<префикс>_AttributeMetadata

После активации Профиль экспорта.

<префикс>_DeleteLog

После активации Профиль экспорта, если включен параметр удаления журналов.

Даже после нескольких повторных попыток могут возникать ошибки синхронизации записей из-за ограничений хранилища базы данных или блокировки таблицы по причине выполняемых запросов. Чтобы устранить эти ошибки, можно принудительно выполнить повторную синхронизацию только отклоненных записей или выполнить повторную синхронизацию всех записей.

  1. Просмотрите профили экспорта, чтобы найти профили с ошибками синхронизации записей. Для этого просмотрите профили данных в области синхронизации или откройте Профиль экспорта, например этот профиль, имеющий ошибку синхронизации записей сущностей контактов.

    DataExport_failed_records_exist
  2. Изучите источник ошибки синхронизации и устраните ее.Дополнительные сведения:Обработка ошибок и мониторинг

  3. После устранения проблемы выполните повторную синхронизацию отклоненных записей.

    System_CAPS_noteПримечание

    Неудачная синхронизация записей — общедоступная предварительная версия.

    • Функции предварительного ознакомления — это функция, работа над которой еще не завершена, но которая предоставляется клиентам до официального выпуска, чтобы они могли опробовать ее и предоставить разработчику свои отзывы. Функции предварительного ознакомления не предназначены для использования в рабочей среде, их функциональность может быть ограничена.

    • Мы предполагаем, что эта функция будет изменена, поэтому не следует использовать ее в рабочей среде. Используйте ее только в средах тестирования и разработки.

    • Корпорация Майкрософт не предоставляет поддержку этой функции, предназначенной для предварительного ознакомления. Служба технической поддержки Microsoft Dynamics 365 не рассматривает обращения и не отвечает на вопросы, связанные с этой функцией. Функции для предварительного ознакомления не предназначены для использования в рабочей среде; на них распространяются дополнительные условия использования.

    1. Войдите в экземпляр Microsoft Dynamics 365 Online и перейдите в раздел Параметры > Экспорт данных.

    2. Откройте Профиль экспорта, который содержит ошибки синхронизации.

    3. На панели инструментов Профиль экспорта щелкните ПОВТОРНАЯ СИНХРОНИЗАЦИЯ ЗАПИСЕЙ С ОШИБКАМИ.

    4. Нажмите кнопку OK после успешного завершения повторной синхронизации отклоненных записей в диалоговом окне подтверждения.

      Уведомление об успешной повторной синхронизации
    5. Проверьте, что Профиль экспорта не содержит уведомления об отклоненных записях, открыв профиль экспорта данных и просмотрев счетчик Уведомления о сбое на вкладке СВОЙСТВА И ОБЗОР, который должен иметь значение 0. Щелкните ОБНОВИТЬ на панели инструментов Профиль экспорта, чтобы убедиться, что значение Уведомления о сбое актуально.

      Ноль записей не прошли индикацию
  4. Если ошибки синхронизации записей сохраняются, после попытки выполнить повторную синхронизацию, выполнив предыдущие шаги, переместите таблицы, типы и хранимые процедуры из целевой базы данных, а затем удалите и добавьте сущности назад в Профиль экспорта.

    1. Удалите связанные объекты базы данных в целевой База данных SQL Azure. Например, если у вас постоянно возникают проблемы с синхронизацией сущностей интересов, перетащите таблицы, типы и хранимые процедуры интересов из целевой База данных SQL Azure.Дополнительные сведения:Удаление таблиц и хранимых процедур профиля экспорта данных для определенной сущности

    2. Удалите сущности, например сущность интереса, из Профиль экспорта.Дополнительные сведения:Изменение существующего профиля экспорта

    3. Добавьте сущность, например сущность интересов, обратно в Профиль экспорта и активируйте профиль.

Чтобы просмотреть состояние синхронизации Профиль экспорта, перейдите в раздел Параметры > Экспорт данных и откройте Профиль экспорта. На вкладке СУЩНОСТИ отображается состояние синхронизации, включая столбец Отклоненные записи для записей, которые не могут быть синхронизированы. Для любых сбойных записей можно загрузить список таких записей, включающий причину состояния, нажав ОТКЛОНЕННЫЕ ЗАПИСИ на панели команд.

Командная строка "Профиль экспорта" — Кнопка "Отклоненные записи"

В Профиль экспорта можно нажать СВОЙСТВА И ОБЗОР, чтобы просмотреть свойства профиля. Нажмите ОТНОШЕНИЯ для просмотра состояния синхронизации отношений.

Просмотр журналов отклоненных записей может помочь определить причину ошибок синхронизации. Чтобы просмотреть записи со ошибками в базе данных назначения Azure, используйте Microsoft Azure Storage Explorer, бесплатное отдельное приложение, позволяющее легко работать с данными хранилища Azure. Дополнительные сведения: Microsoft Azure Storage Explorer.

  1. В Dynamics 365 откройте пункт Параметры > Экспорт данных.

  2. В представлении "Все профили экспорта данных" выберите Профиль экспорта с уведомлениями о сбоях.

    Уведомления о сбое
  3. На панели инструментов "Действия" щелкните ОТКЛОНЕННЫЕ ЗАПИСИ.

    Кнопка панели инструментов "Отклоненные записи"
  4. В диалоговом окне "Загрузить отклоненные записи" щелкните Копировать URL-адрес большого двоичного объекта, а затем нажмите кнопку OK.

    Диалоговое окно "Загрузить отклоненные записи"
    System_CAPS_noteПримечание

    URL-адрес большого двоичного объекта действует в течение 24 часов. По прошествии 24 часов повторите описанные выше шаги для создания нового URL-адреса большого двоичного объекта.

  5. Запустите Microsoft Azure Storage Explorer.

  6. В Microsoft Azure Storage Explorer щелкните Подключиться к хранилищу Azure.

  7. Вставьте URL-адрес из буфера обмена в окне Подключиться к хранилище Azure и нажмите кнопку Далее.

    URL-адрес хранилища
  8. На странице Сводка подключения" щелкните Подключить.

  9. Azure Storage Explorer подключится к базе данных назначения. Если отклоненные записи существуют для Профиль экспорта, Azure Storage Explorer отобразит папки синхронизации отклоненных записей.

URL-адрес хранилища BLOB-объектов Azure для отклоненных записей указывает на расположение со следующей структурой папок:

  • data. Эта папка содержит уведомления об отклоненных данных и связанный JSON для данных записей.

  • metadata. Эта папка содержит уведомления об отклоненных метаданных и связанный JSON для метаданных.

  • failurelog. Эта папка содержит журналы со сведениями об ошибках синхронизации и причине ошибок.

  • forcerefreshfailurelog. Эта папка содержит ошибки из последнего запуска команды отклоненных записей Служба экспорта данных, используемой для повторной синхронизации отклоненных записей.

  • unprocessablemessages. Эта папка содержит уведомления о данных, которые не были обработаны по причине удаления данных или метаданных и связанного JSON.

Папки failurelog и forcerefreshfailurelog структурированы следующим образом: Год\Месяц\День\Час для быстрого поиска последних ошибок. Все отклоненные записи старше 30 дней удаляются.

Ниже приводится пример файла журнала, который указывает ошибку синхронизации записи сущности "Контакт".

Сущность: контакт, RecordId: 459d1d3e-7cc8-e611-80f7-5065f38bf1c1, NotificationTime: 28.12.2016 12:32:39, ChangeType: обновить, FailureReason: достигнута квота по размеру базы данных 'tempdb'. Разделите или удалите данные, удалите индексы или просмотрите документацию, чтобы найти возможные решения проблемы. Инструкция была отменена.

Вот несколько причин возникновения ошибок синхронизации записей.

  • Недостаточное хранилище для целевой базы данных. Прежде чем приступить к повторной синхронизации отклоненных записей, увеличьте объем или освободите место в хранилище База данных SQL Azure при необходимости. Если возникает эта проблема, сообщение, аналогичное этому, регистрируется в журнале ошибок.

    Достигнут достигнута квота по размеру базы данных "имя_базы_данных". Разделите или удалите данные, удалите индексы или просмотрите документацию, чтобы найти возможные решения проблемы.

  • Истекает время ожидания синхронизации с База данных SQL Azure. Это может произойти в процессе начальной синхронизации профиля экспорта данных при наличии больших объемов данных, которые обрабатываются одновременно. Если возникает эта проблема, выполните повторную синхронизацию отклоненных записей.Разрешение проблем синхронизации

  • Чтобы избежать ошибок синхронизации вследствие регулирования ресурсов, рекомендуется иметь База данных SQL Azure Premium P1 или лучший план при использовании Служба экспорта данных.Дополнительные сведения:Ограничения ресурсов базы данных SQL Azure и База данных SQL Цены

  • Настройте База данных SQL Azure для использования изоляции моментального снимка (RCSI) для рабочих нагрузок, выполняемых одновременно в целевой базе данных, которые исполняют длительные запросы на чтение, такие как отчетность и задания ETL. Это позволит уменьшить количество ошибок истечения времени ожидания, которые могут возникнуть в Служба экспорта данных из-за конфликтов чтения\записи.

Запустите описанный здесь скрипт Windows PowerShell в качестве администратора учетной записи Azure для предоставления разрешения функции Служба экспорта данных, чтобы она могла получить доступ к вашему хранилищу ключей Azure. Данный скрипт показывает URL-адрес хранилища ключей, необходимый для создания Профиль экспорта, который используется для доступа к строке подключения.

Перед запуском скрипта замените заполнители для следующих переменных.

  • $subscriptionId. Код подписки на Azure. Код подписки отображается при выполнении команды Login-AzureRmAccount.

  • $keyvaultName. Выберите имя для существующего или нового Хранилище ключей . Имя используется для ссылки на Хранилище ключей . В этом примере используется имя ContosoKeyVault. Это имя будет использоваться для других командлетов Хранилище ключей .

  • $secretName. Укажите имя, используемое для программно защищенного ключа для Хранилище ключей . Если защищенный ключ не существует, он создается с использованием указанного секретного имени. В этом примере используется имя ContosoDataExportSecret.

  • $resourceGroupName. Укажите имя группы ресурсов Azure, которое требуется использовать. Если группа ресурсов еще не существует, будет создана новая группа с указанным именем. В этом примере используется имя ContosoResourceGroup1.

  • $location. Укажите местоположение, в котором размещена или должна быть размещена группа ресурсов, например West US.

  • $connectionString. Строка подключения к База данных SQL Microsoft Azure. Можно использовать строку подключения ADO.NET, выводимую на панель мониторинга Azure.

  • $organizationIdList = разделенный запятыми список разрешенных организаций Microsoft Dynamics 365, перечисленных по коду организации (organizationId), чтобы разрешить их для Служба экспорта данных. Найти выяснить код организации, в Microsoft Dynamics 365 перейдите в Параметры > Настройки > Ресурсы для разработчиков. Код организации указан в поле Справочная информация экземпляра.

  • $tenantId. Определяет код клиента Azure Active Directory, с которым связаны экземпляры Microsoft Dynamics 365. Дополнительные сведения: Поиск кода клиента Azure Active Directory для экземпляров Dynamics 365

# -------------------------------------------------------------------------------- #
	#  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.
$secretVaule = ConvertTo-SecureString $connectionString -AsPlainText -Force
$secret = Set-AzureKeyVaultSecret -VaultName $keyvaultName -Name $secretName -SecretValue $secretVaule -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)"" 

System_CAPS_importantВажно
  • Прежде чем выполнять инструкцию SQL, убедитесь, что значения @prefix и @schema правильно настроены в инструкции.

  • Потребуется повторно создать Профиль экспорта после выполнения этой инструкции 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;

System_CAPS_importantВажно

Прежде чем выполнять инструкцию SQL, убедитесь, что значения @prefix, @schema и @entityName правильно настроены в инструкции. В этом примере удаляются таблица, типы и хранимые процедуры сущности интересов.

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

  1. Войдите на портал Azure.

  2. Перейдите в раздел Azure Active Directory > Регистрации приложений > Конечные точки.

  3. Код клиента отображается в URL-адресах конечных точек, перечисленных в подписке Azure.

System_CAPS_importantВажно

Подписка Azure может иметь несколько кодов клиента Azure Active Directory. Убедитесь, что вы выбрали правильный код клиента Azure Active Directory, связанный с экземпляром Microsoft Dynamics 365, который вы будете использовать для экспорта данных.

В База данных SQL Azure щелкните Задать брандмауэр сервера, установите для параметра Разрешить доступ к службам Azure значение ВЫКЛ., щелкните Добавить IP-адрес клиентаи добавьте IP-адреса, соответствующие региону вашей База данных SQL Azure.Дополнительные сведения:Microsoft Azure. Настройка правила брандмауэра на уровне сервера для базы данных Azure SQL с помощью портала Azure

Регион

IP-адрес

Западные США

40.112.139.218

Восточная часть США

23.96.92.86

Западная Европа

40.68.252.224

Восточная Азия

52.175.24.148

Юго-Восточная Азия

52.163.231.218

Центральная Индия

52.172.191.195

Южная Индия

52.172.51.15

Северная Европа

52.169.117.212

Западная Япония

138.91.22.196

Восточная Япония

13.73.7.177

Южная Бразилия

191.235.81.249

Юго-Восточная Австралия

40.115.78.163

Восточная Австралия

13.73.202.160

Канада (центр)

52.228.26.31

Канада (восток)

40.86.251.81

Соединенное Королевство (юг)

51.140.71.166

Соединенное Королевство (запад)

51.141.44.218

После устранения ошибок синхронизации записи, которые были удалены ранее, могут быть повторно вставлены в исходную таблицу сущностей. Чтобы обойти эту проблему при возникновении ошибок синхронизации, выполните следующие действия.

  1. Создайте профили экспорта, для которых включен журнал записи/удаления. Повторно создайте существующий профиль экспорта, для которого не включен журнал записи/удаления.

  2. Создайте и выполните запрос SQL для целевой базы данных SQL Azure, в которой выполняется поиск записей в таблице DeleteLog. При обнаружении одной или нескольких записей он указывает наличие удаленных записей.

  3. Если одна или несколько записей существуют в таблице DeleteLog, создайте и выполните запрос SQL, обнаруживающий экземпляры, в которых код записи для записи, найденной в таблице DeleteLog, соответствует коду записи для записи в таблице EntityName. При наличии соответствия кода записи удалите запись из таблицы EntityName. Например, если код записи в столбце AccountId таблицы DeleteLog совпадает с кодом записи в столбце AccountId таблицы сущностей AccountBase, удалите запись из таблицы сущностей AccountBase.

    System_CAPS_importantВажно

    Выполнять запросы SQL для удаления записей рекомендуется в нерабочее время.

Объекты, представленные ниже, хотя и поддерживают отслеживание изменений, не поддерживаются для экспорта данных с помощью Служба экспорта данных.

Сущность

Имя таблицы

Альтернативные варианты

Действие

ActivityPointerBase

Выберите конкретные объекты действий для экспорта, например телефонный звонок, встречу, электронную почту или задачи.

Примечание

AnnotationBase

Нет известного альтернативного варианта.

Если используется служба экспорта данных, при активировании профиля экспорта данных из Microsoft Dynamics 365 данные добавленных в профиль сущностей отправляются в Azure. Исходная синхронизация охватывает все данные, связанные с добавленными в профиль экспорта сущностями, но впоследствии синхронизируются только новые изменения, которые постоянно отправляются в службу экспорта данных. Данные, отправленные в службу экспорта данных, временно сохраняются в Служебная шина Azure и хранилище Azure, обрабатываются в Azure Service Fabric и, наконец, синхронизируются (вставляются, обновляются или удаляются) с целевой базой данных, указанной в вашей подписке Azure. После синхронизации данных они удаляются из Служебная шина Azure и хранилища Azure. В случае сбоя во время синхронизации данных в хранилище Azure сохраняются минимальные данные, соответствующие типу сущности, коду записи и отметке времени синхронизации, позволяющие загрузить список записей, которые не были обновлены.

Администратор может в любой момент деактивировать профиль экспорта данных, чтобы прекратить синхронизацию данных. Кроме того, администратор может удалить профиль экспорта, чтобы удалить все журналы сбойных записей, а также удалить решение службы экспорта данных, чтобы прекратить использование службы экспорта данных.

Синхронизация данных между Dynamics 365 и службой экспорта данных производится непрерывно и безопасно. Во время непрерывного обмена данными между Dynamics 365 и службой экспорта данных эти данные шифруются.

Компоненты и службы Azure, необходимые для реализации службы экспорта данных, подробно рассматриваются в следующих разделах.

Примечание. Дополнительные сведения о других предложениях служб Azure см. в Центре управления безопасностью Microsoft Azure.

Обеспечивает API-интерфейс и вычислительные виртуальные машины Azure для обработки уведомлений о синхронизации записей, полученных из Dynamics 365, и последующей обработки для вставки, обновления или удаления данных записей в целевой базе данных. Микрослужбы, развернутые на виртуальных машинах под управлением среды выполнения Azure Service Fabric, обрабатывают все вычислительные службы, связанные с синхронизацией данных.

Обеспечивает шину сообщений, по которой Dynamics 365 отправляет сообщения уведомлений о синхронизации, которые обрабатываются вычислительными узлами в Azure Service Fabric. В каждом сообщении хранятся сведения, например код организации и запись, для которой выполняется синхронизация данных. В неактивном состоянии данные в служебной шине Azure не зашифрованы, но они доступны только службе экспорта данных.

Данные временно сохраняются в Хранилище больших двоичных объектов Azure, если данные уведомления о синхронизации записи слишком велики для хранения в сообщении или если в процессе обработки уведомления о синхронизации возник временный сбой. Эти большие двоичные объекты шифруются с помощью новейшей функции в пакете SDK хранилища Azure, обеспечивая поддержку симметричного и асимметричного шифрования и интеграцию с Хранилище ключей Azure.

В База данных SQL Azure хранятся конфигурация профиля экспорта данных и показатели синхронизации данных.

© Корпорация Майкрософт (Microsoft Corporation), 2017. Все права защищены. Авторские права

Добавления сообщества

Показ: