Microsoft Azure SQL 데이터베이스에 Microsoft Dynamics 365(온라인) 데이터 복제

 

게시 날짜: 2017년 2월

적용 대상: Dynamics 365 (online), Dynamics CRM Online

참고

여기에 제공된 정보는 Dynamics 365(온라인) 버전 9.0 이전의 Dynamics 365 버전입니다. 최신 설명서를 보려면 Azure SQL 데이터베이스에 데이터 복제를 참조하십시오.

Microsoft Dynamics 365-데이터 내보내기 서비스는 Microsoft AppSource에서 사용할 수 있는 추가 기능 서비스로 고객 소유 Microsoft Azure 구독에서 Microsoft Dynamics 365(온라인) 데이터를 Microsoft Azure SQL 데이터베이스 스토어에 복제하는 기능을 추가합니다.Microsoft Azure 가상 컴퓨터에서 Microsoft Azure SQL 데이터베이스 및 SQL Server에 대한 지원을 목표로 합니다.데이터 내보내기 서비스는 지능적으로 전체 Dynamics 365 데이터를 처음 동기화하고 그 이후로 Microsoft Dynamics 365(온라인) 시스템에서 변경이 발생할 때(델타 변경) 지속적으로 동기화합니다. 이렇게 하면 Azure 데이터 및 분석 서비스로 Dynamics 365 데이터에 대한 여러 분석 및 보고 시나리오를 사용할 수 있고 고객 및 파트너가 사용자 지정 솔루션을 구축할 수 있는 새로운 가능성을 엽니다.

참고

다음과 함께 데이터 내보내기 서비스를 사용할 수 있습니다.

  • Microsoft Dynamics 365(온라인)

  • Microsoft Dynamics CRM Online 2016 업데이트

데이터 내보내기 서비스 구성 및 운영 관리를 위한 프로그래밍 인터페이스에 대한 내용은 MSDN: 데이터 내보내기 서비스를 참조하십시오.

이 항목의 내용

데이터 내보내기 서비스 사용 필수 구성 요소

필요한 서비스, 자격 증명 및 권한

데이터 내보내기 서비스를 사용하기 전에 알아두어야 할 사항

내보내기 프로필

내보내기 프로필 만들기

기존 내보내기 프로필 수정

대상 SQL Azure 데이터베이스에 대한 테이블 정보

동기화 문제 해결

오류 처리 및 모니터링

데이터 내보내기를 사용하여 Azure SQL 데이터베이스를 사용할 때 최상의 방법

데이터 동기화 대기 시간 정보

Azure 주요 자격 증명 모음 설정 방법

알려진 문제 및 제한 사항

데이터 내보내기 서비스 사용 필수 구성 요소

데이터 내보내기 서비스를 사용하기 위해 다음과 같은 조건이 필요합니다.

Azure SQL 데이터베이스 서비스

  • 고객 소유 Azure SQL 데이터베이스 구독. 이 구독은 동기화되는 데이터의 양을 허용해야 합니다.

  • 방화벽 설정.Azure 서비스에 액세스 허용을 해제하고 이 항목에 나열된 해당 클라이언트 IP 주소를 지정하는 것이 좋습니다 추가 정보: 내보내기 데이터 서비스에서 사용하는 Azure SQL 데이터베이스 정적 IP 주소

    또는 Azure 서비스에 액세스 허용을 설정하여 모든 Azure 서비스에 대한 액세스를 허용할 수 있습니다.

    Azure 가상 머신의 SQL Server의 경우 "인터넷을 통해 SQL Server 연결" 옵션이 활성화되어야 합니다. 자세한 정보: Microsoft Azure: Azure에서 SQL Server 가상 머신에 연결(기본 구축)

  • 데이터베이스 사용자는 다음 테이블에 따라 데이터베이스 및 스키마 수준 권한이 있어야 합니다. 데이터베이스 사용자는 데이터 내보내기 연결 문자열에 사용됩니다.

    데이터베이스 권한이 필요합니다.

    권한 유형 코드

    권한 이름

    CRTB

    테이블 만들기

    CRTY

    유형 만들기

    CRVW

    보기 만들기

    CRPR

    절차 만들기

    ALUS

    모든 사용자 변경

    VWDS

    데이터베이스 상태 보기

    스키마 권한이 필요합니다.

    권한 유형 코드

    권한 이름

    AL

    변경

    IN

    삽입

    DL

    Delete

    SL

    선택

    UP

    업데이트

    EX

    실행

    RF

    참조

Azure 주요 자격 증명 모음 서비스

  • 구독 데이터베이스 연결 문자열을 안전하게 유지하는 데 사용되는 고객 소유 Azure 주요 자격 증명 모음.

  • ID "b861dbcc-a7ef-4219-a005-0e4de4ea7dcf"의 응용 프로그램에 PermissionsToSecrets 권한을 부여합니다. 아래의 AzurePowershell 명령을 실행하여 완료할 수 있으며 연결 문자열 보안을 포함하는 주요 자격 증명 모음에 액세스하는 데 사용할 수 있습니다.추가 정보:Azure 주요 자격 증명 모음 설정 방법

  • 주요 자격 증명 모음은 Microsoft Dynamics 365 조직(OrgId)과 테넌트 ID(TenantId)와 함께 태그를 지정해야 합니다. 이는 아래의 AzurePowershell 명령을 실행하여 완료할 수 있습니다.추가 정보:Azure 주요 자격 증명 모음 설정 방법

Microsoft Dynamics 365(온라인)

  • Microsoft Dynamics CRM Online 2016 업데이트 또는 이후 버전 인스턴스.

  • 데이터 내보내기 서비스 솔루션이 설치되어야 합니다.Microsoft AppSource에서 지금 얻으십시오.

  • 내보내기 프로필에 추가할 수 있는 엔터티는 변경 내용 추적을 사용하도록 설정해야 합니다. 표준 또는 사용자 지정 엔터티를 동기화할 수 있는지 확인하려면 사용자 지정 > 시스템 사용자 지정으로 이동하여 엔터티를 클릭합니다.일반 탭에서 데이터 서비스 섹션 아래에 있는 변경 내용 추적 옵션이 활성화되어 있는지 확인합니다.

  • Microsoft Dynamics 365(온라인) 인스턴스의 시스템 관리자 보안 역할을 가지고 있어야 합니다.

웹 브라우저

웹 브라우저에서 도메인 https://discovery.crmreplication.azure.net/에 대한 팝업을 허용합니다. 설정 > 데이터 내보내기로 이동할 때 자동 로그인을 위해 필요합니다.

필요한 서비스, 자격 증명 및 권한

데이터 내보내기 서비스 기능을 사용하려면 다음과 같은 서비스, 자격증 및 권한이 있어야 합니다.

  • Microsoft Dynamics 365(온라인) 구독.Microsoft Dynamics 365 시스템 관리자 보안 역할에 할당된 사용자만 내보내기 프로필을 설정하거나 변경할 수 있습니다.

  • 다음과 같은 서비스를 포함하는 Microsoft Azure 구독.

    • Azure 가상 컴퓨터에서 Azure SQL 데이터베이스 또는 AzureSQL Server.

    • Azure 주요 자격 증명 모음.

중요

데이터 내보내기 서비스를 사용하려면 Microsoft Dynamics 365(온라인) 및 Azure 주요 자격 증명 모음 서비스가 동일한 테넌트와 동일한 Microsoft Azure Active Directory에서 작동해야 합니다.추가 정보:Office 365와 Azure 통합

Azure SQL 데이터베이스 서비스는 Microsoft Dynamics 365(온라인) 서비스와 동일한 또는 다른 테넌트에 있을 수 있습니다.

데이터 내보내기 서비스를 사용하기 전에 알아두어야 할 사항

  • Microsoft Dynamics 365(온라인) 인스턴스에서 다음 작업을 수행할 때마다 내보내기 프로필을 삭제한 다음 다시 만들어야 합니다.

    • 인스턴스를 복원합니다.

    • 인스턴스를 복사합니다(전체 또는 최소).

    • 인스턴스를 초기화합니다.

    • 인스턴스를 다른 국가나 지역으로 이동합니다.

    이를 위해 내보내기 프로필 보기에서 내보내기 프로필을 삭제한 다음 테이블 및 저장 프로시저를 삭제하고 새 프로필을 만듭니다.추가 정보:모든 데이터 내보내기 프로필 테이블 및 저장 프로시저를 삭제하는 방법

  • 데이터 내보내기 서비스는 관리 모드 사용이 활성화된 상태로 구성된 Microsoft Dynamics 365(온라인) 샌드박스 인스턴스에 대해 작동하지 않습니다.추가 정보:관리 모드

  • 다음 작업이 발생할 때 데이터 내보내기 서비스는 대상 Azure SQL 데이터베이스에 있는 관련 테이블, 열 또는 저장 프로시저 개체를 제거(삭제)하지 않습니다.

    • Microsoft Dynamics 365(온라인)에서 엔터티가 삭제됩니다.

    • Microsoft Dynamics 365(온라인)에서 필드가 삭제됩니다.

    • 내보내기 프로필에서 엔터티가 제거됩니다.

    이러한 항목은 수동으로 삭제해야 합니다.특정 엔터티에 대해 데이터 내보내기 프로필 테이블 및 저장 프로시저를 삭제하는 방법

    메타데이터 삭제 알림은 unprocessablemember 폴더에 기록됩니다.오류 처리 및 모니터링

내보내기 프로필

Microsoft Dynamics 365(온라인)에서 데이터를 내보내려면 Microsoft Dynamics 365(온라인) 관리자가 내보내기 프로필을 만들어야 합니다. 여러 프로필을 만들고 활성화하여 데이터를 동시에 다른 대상 데이터베이스와 동기화할 수 있습니다.

내보내기 프로필은 데이터 내보내기 서비스의 핵심 개념입니다.내보내기 프로필은 설정 및 구성 정보를 수집하여 데이터를 대상 데이터베이스와 동기화합니다.내보내기 프로필의 일부로서 관리자는 대상 데이터베이스로 내보낼 엔터티 목록을 제공합니다. 한 번 활성화되면 내보내기 프로필은 데이터의 자동 동기화를 시작합니다. 처음에 선택한 엔터티 각각에 해당하는 데이터가 모두 내보내집니다. 그 후 Microsoft Dynamics 365(온라인)의 엔터티 레코드 또는 메타데이터 데이터 변경이 발생할 때만 푸시 메커니즘을 사용하여 지속적으로 거의 실시간으로 동기화됩니다. 따라서 Microsoft Dynamics 365(온라인)에서 데이터를 검색하는 일정을 설정할 필요가 없습니다.

변경 내용 추적을 사용할 수 있는 엔터티만 내보내기 프로필에 추가할 수 있습니다. 데이터를 수집하는 대부분의 표준 Microsoft Dynamics 365 엔터티는 변경 내용 추적을 사용하도록 설정됩니다. 사용자 지정 엔터티를 내보내기 프로필에 추가 하려면 이전에 변경 내용 추적이 명시적으로 활성화되어야 합니다.추가 정보:데이터 동기화를 제어하기 위해 변경 내용 추적을 활성화

데이터 내보내기 서비스는 메타데이터와 데이터를 모두 동기화합니다. 각 엔터티는 하나의 테이블로 변환하고 각 필드는 대상 데이터베이스 테이블의 열로 변환합니다. 테이블 및 열 이름은 Microsoft Dynamics 365 메타데이터의 스키마 이름을 사용합니다.

한 번 활성화하면 내보내기 프로필은 작업 가시성과 내보낸 데이터 진단에 도움이 되는 데이터 동기화에 대한 통계를 수집합니다.

사용할 수 있는 내보내기 프로필 데이터 동기화

범주

기능

지원되는 데이터 형식

초기 동기화

메타데이터 - 기본 데이터 형식

정수, 부동 숫자, 십진수, 한 줄 텍스트, 여러 줄 텍스트, 날짜 및 시간 데이터 형식.

초기 동기화

메타데이터 - 고급 데이터 형식

통화, PartyList, 옵션 설정, 상태, 상태 설명, 조회(고객 및 관련 형식 조회 포함). PartyList는 내보내기 버전 8.1과 이상에서만 제공됩니다.

초기 동기화

데이터 - 기본 형식

모든 기본 데이터 형식

초기 동기화

데이터 - 고급 형식

모든 고급 데이터 형식

델타 동기화

스키마 수정 - 기본 형식

필드 변경 추가 또는 변경, 모든 기본 데이터 형식

델타 동기화

스키마 수정 - 고급 형식

필드 변경 추가 또는 변경, 모든 고급 데이터 형식

델타 동기화

데이터 수정 - 기본 형식

모든 기본 데이터 형식

델타 동기화

데이터 수정 - 고급 형식

PartyList와 같은 모든 고급 데이터 형식.

내보내기 프로필 만들기

내보내기 프로필을 만들기 전에 다음 요구 사항이 충족되었는지 확인합니다.

  • 데이터 내보내기 서비스 솔루션이 Microsoft Dynamics 365(온라인) 인스턴스에 설치됩니다.

  • 주요 자격 증명 모음 에서 SQL 데이터베이스 연결 문자열을 유지한 채 주요 자격 증명 모음 URL을 복사하여 내보내기 프로필에 제공합니다. 자세한 정보: Microsoft Azure: Azure 주요 자격 증명 모음 시작

  • 내보내기 프로필에 추가할 엔터티는 변경 내용 추적을 사용하도록 설정됩니다.추가 정보:데이터 동기화를 제어하기 위해 변경 내용 추적을 활성화

  • SQL 데이터베이스 서비스는 Microsoft Dynamics 365 데이터를 저장하기에 충분 한 공간이 있습니다.

  • Microsoft Dynamics 365(온라인) 인스턴스의 시스템 관리자인 경우,

  1. Microsoft Dynamics 365(온라인)에서 설정 > 데이터 관리로 이동합니다.

  2. 공지를 검토한 다음 계속 또는 데이터를 내보내지 않으려는 경우 취소를 클릭합니다.

  3. 새로 만들기를 클릭하여 내보내기 프로필을 만듭니다.

  4. 속성 단계에서 다음 정보를 입력한 다음 다음을 클릭하여 주요 자격 증명 모음에 연결하지 않고 계속합니다.유효성 검사를 클릭하면 제공한 주요 자격 증명 모음 URL을 사용하여 주요 자격 증명 모음에 연결합니다.

    • 이름. 프로필의 고유한 이름입니다. 이 필드는 필수입니다.

    • 주요 자격 증명 모음 연결 URL. 대상 데이터베이스에 연결하는 데 사용되는 자격 증명과 함께 저장된 연결 문자열을 가리키는 주요 자격 증명 모음 URL입니다. 이 필드는 필수입니다.추가 정보:Azure 주요 자격 증명 모음 설정 방법

      중요

      주요 자격 증명 모음 연결 URL은 대소문자를 구분합니다. 이 항목의 Windows PowerShell 명령을 실행한 후 주요 자격 증명 모음 연결 URL을 표시되는 대로 정확하게 입력합니다.

    • 스키마. 대체 데이터베이스 스키마에 대한 이름입니다. 영숫자 문자만 유효합니다. 이 필드는 선택적입니다. 기본적으로 dbo는 대상 SQL 데이터베이스에 사용되는 스키마입니다.

    • 접두사: 대상 데이터베이스에서 만든 테이블 이름에 사용되는 접두사입니다. 대상 데이터베이스에 있는 내보내기 프로필을 위해 만든 테이블을 쉽게 식별할 수 있게 해줍니다. 지정된 경우 접두사 문자가 15개 이내인지 확인합니다. 이 필드는 선택 사항이며 영숫자 문자만 사용할 수 있습니다.

    • 재시도 횟수. 대상 테이블에 삽입 또는 업데이트 실패 시 레코드가 다시 시도된 횟수입니다. 이 필드는 필수입니다. 사용할 수 있는 값은 0~20이고 기본값은 12입니다.

    • 재시도 간격 실패 시 다시 시도하기 전에 대기할 시간(초)입니다. 이 필드는 필수입니다. 사용할 수 있는 값은 0~3600이고 기본값은 5입니다.

    • 삭제 로그 쓰기. 삭제된 레코드 로딩에 대한 설정입니다(선택 사항).

    내보내기 프로필 만들기 대화 상자의 속성 탭

  5. 엔터티 선택 단계에서 대상 SQL 데이터베이스로 내보내고자 하는 엔터티를 선택한 다음 다음을 클릭합니다.

    내보내기 프로필 만들기 대화 상자의 엔터티 선택 탭

  6. 관계 선택 단계에서 이전 단계에서 선택한 엔터티와 함께 존재하는 M:N(다대다) 관계를 동기화할 수 있습니다.다음을 클릭합니다.

    내보내기 프로필 만들기 - 관계 관리 - 관계 선택

  7. 요약 단계에서 만들기 및 활성화를 클릭하여 프로필 레코드를 만들고 동기화 프로세스를 시작하는 주요 자격 증명 모음와 연결합니다. 아니면 만들기를 클릭하여 내보내기 프로필을 저장하고 나중에 인증합니다.

    내보내기 프로필 만들기 대화 상자의 요약 탭

기존 내보내기 프로필 수정

복제하고자 하는 기존 내보내기 프로필의 엔터티 및 관계를 추가하거나 제거할 수 있습니다.

  1. Microsoft Dynamics 365(온라인)에서 설정 > 데이터 관리로 이동합니다.

  2. 모든 데이터 내보내기 프로필 보기에서 변경하려는 내보내기 프로필을 선택합니다.

    내보내기 프로필 선택

  3. 작업 도구 모음에서 엔터티 관리를 클릭하여 데이터 내보내기의 엔터티를 추가 또는 제거합니다. 엔터티 관계를 추가하거나 제거하려면 관계 관리를 클릭합니다.

    엔터티 또는 엔터티 관계 관리

  4. 추가 또는 제거할 엔터티 또는 엔터티 관계를 선택합니다.

    추가 또는 제거할 엔터티 또는 엔터티 관계 선택

  5. 업데이트를 클릭하여 변경 내용을 내보내기 프로필에 전송합니다.

중요

내보내기 프로필에서 엔터티 또는 엔터티 관계를 제거하면 대상 데이터베이스에서 해당하는 테이블에서 삭제되지 않습니다. 제거한 엔터티를 다시 추가하기 전에 대상 데이터베이스의 해당 테이블을 삭제해야 합니다. 엔터티 테이블을 삭제하려면 특정 엔터티에 대해 데이터 내보내기 프로필 테이블 및 저장 프로시저를 삭제하는 방법을 참조하십시오.

대상 SQL Azure 데이터베이스에 대한 테이블 정보

데이터 내보내기 서비스는 데이터와 메타데이터 모두에 대한 테이블을 만듭니다. 각 엔터티 및 동기화된 M:N 관계에 대한 테이블이 생성됩니다.

내보내기 프로필이 활성화되면 이 테이블이 대상 데이터베이스에 만들어집니다. 이는 시스템 테이블이며, SinkCreatedTime및 SinkModifiedTime 필드가 추가되지 않습니다.

테이블 이름

만듦

<접두사>_GlobalOptionsetMetadata

내보내기 프로필 정품 인증 시.

<접두사>_OptionsetMetadata

내보내기 프로필 정품 인증 시.

<접두사>_StateMetadata

내보내기 프로필 정품 인증 시.

<접두사>_StatusMetadata

내보내기 프로필 정품 인증 시.

<접두사>_TargetMetadata

내보내기 프로필 정품 인증 시.

<접두사>_AttributeMetadata

내보내기 프로필 정품 인증 시.

<접두사>_DeleteLog

삭제 로그 옵션이 사용하도록 설정된 경우 내보내기 프로필 정품 인증 시.

동기화 문제 해결

데이터베이스 저장소 제약 조건 또는 긴 실행 시간의 쿼리로 인한 테이블 잠금 때문에 여러 번 재시도해도 레코드 동기화 오류가 발생할 수 있습니다. 이러한 오류를 해결하려면 실패한 레코드 또는 모든 레코드에 대해 동기화를 다시 시행할 수 있습니다.

  1. 레코드 동기화에 실패한 내보내기 프로필을 찾습니다. 이를 위해 동기화 영역에서 데이터 프로필을 살펴보거나 연락처 엔터티 레코드 동기화에 실패한 프로필 등 내보내기 프로필을 엽니다.

    DataExport_failed_records_exist

  2. 동기화 오류의 원인을 찾아 해결합니다.추가 정보:오류 처리 및 모니터링

  3. 이 문제를 해결 후 실패한 레코드를 다시 동기화합니다.

    참고

    실패한 레코드 동기화는 공개 미리 보기 기능입니다.

    • 미리 보기 기능은 완성되지 않은 기능이지만 공식적으로 릴리스되기 전에 사용할 수 있으므로 고객은 초기에 접근하여 피드백을 제공할 수 있습니다. 미리 보기 기능은 생산용으로 만들어진 것이 아니므로 기능이 제한될 수 있습니다.

    • 이 기능을 변경할 예정이므로 생산 환경에서는 사용해서는 안 됩니다. 테스트 및 개발 환경에서만 사용하십시오.

    • Microsoft는 이 미리 보기 기능에 대한 지원을 제공하지 않습니다. Microsoft Dynamics 365 기술 지원은 문제 또는 질문과 관련하여 도움을 제공할 수 없습니다. 미리 보기 기능은 생산용으로 만들어진 것이 아니므로 별도의 보충 사용 약관이 적용됩니다.

    1. Microsoft Dynamics 365(온라인) 인스턴스에 로그인하여 설정 > 데이터 내보내기로 이동합니다.

    2. 레코드 동기화 실패를 포함하는 내보내기 프로필을 엽니다.

    3. 내보내기 프로필 도구 모음에서 실패한 레코드 재동기화를 클릭합니다.

    4. 확인 대화 상자에서 실패한 레코드를 성공적으로 다시 동기화한 후 확인을 클릭합니다.

      성공적인 재동기화 알림

    5. 데이터 내보내기 프로필을 열어 내보내기 프로필에 실패한 알림이 포함되어 있지 않은지 확인합니다. 속성 및 개요 탭의 실패한 알림 카운터가 0이어야 합니다.내보내기 프로필 도구 모음에서 새로 고침을 클릭하여 실패한 알림 값이 현재인지 확인합니다.

      0 레코드 실패 표시

  4. 이전 단계에 따라 다시 동기화를 시도한 후에도 레코드 동기화 실패가 계속되면 대상 데이터베이스에서 테이블, 형식 및 저장 프로시저를 삭제하고 제거한 다음 및 다시 내보내기 프로필에 엔터티를 추가합니다.

    1. 대상 Azure SQL 데이터베이스의 연결된 데이터베이스 개체를 삭제합니다. 예를 들어 잠재 고객 엔터티 동기화 문제가 지속적으로 발생하는 경우 대상 Azure SQL 데이터베이스에서 잠재 고객 테이블, 유형 및 저장 프로시저를 삭제합니다.추가 정보:특정 엔터티에 대해 데이터 내보내기 프로필 테이블 및 저장 프로시저를 삭제하는 방법

    2. 내보내기 프로필에서 잠재 고객 엔터티 같은 엔터티를 제거합니다.추가 정보:기존 내보내기 프로필 수정

    3. 잠재 고객 엔터티 같은 엔터티를 다시 내보내기 프로필에 추가한 다음 프로필을 활성화합니다.

오류 처리 및 모니터링

내보내기 프로필의 동기화 상태를 확인하려면 설정 > 데이터 내보내기로 이동하여 내보내기 프로필을 엽니다.엔터티 탭에서 동기화하지 못한 레코드에 대한 실패한 레코드 열을 포함하여 동기화 상태가 표시됩니다. 실패한 모든 레코드에 대해 명령 모음의 실패한 레코드를 클릭하여 상태 설명을 포함하는 레코드 목록을 다운로드할 수 있습니다.

내보내기 프로필 명령 모음 - 실패한 레코드 단추

내보내기 프로필에서 속성 및 개요를 클릭하여 프로필의 속성을 표시할 수 있습니다.관계를 클릭하여 관계 동기화 상태를 봅니다.

동기화에 실패한 레코드에 대한 세부 정보를 보는 방법

실패한 레코드 로그를 보면 동기화 실패의 원인을 파악하는 데 도움이 됩니다. 대상 Azure 대상 데이터베이스에서 실패한 레코드를 보려면 독립 실행형 무료 앱인 Microsoft Azure 저장소 탐색기를 사용하면 Azure 저장소 데이터를 쉽게 사용할 수 있습니다. 자세한 정보는 Microsoft Azure 저장소 탐색기를 참조하십시오.

  1. Dynamics 365에서 설정 > 데이터 관리로 이동합니다.

  2. 모든 데이터 내보내기 프로필 보기에서 실패 알림이 있는 내보내기 프로필을 선택합니다.

    실패 알림

  3. 작업 도구 모음에서 실패한 레코드를 클릭합니다.

    실패한 레코드 도구 모음 단추

  4. 다운로드 실패 레코드 대화 상자에서 BLOB URL 복사를 누른 다음 확인을 클릭합니다.

    다운로드 실패 레코드 대화 상자

    참고

    BLOB URL은 최대 24시간 동안 유효합니다. 24시간 기간을 초과하는 URL의 경우 앞에서 설명한 단계를 반복하여 새 BLOB URL을 생성합니다.

  5. Microsoft Azure 저장소 탐색기를 시작합니다.

  6. Microsoft Azure 저장소 탐색기에서 Azure 저장소에 연결을 클릭합니다.

  7. 클립보드에서 Azure 저장소에 연결 상자에 URL을 붙여 넣고 다음을 클릭합니다.

    저장소 URL

  8. 연결 요약 페이지에서 연결을 클릭합니다.

  9. Azure 저장소 탐색기가 대상 데이터베이스에 연결됩니다.내보내기 프로필에 실패한 레코드가 있을 경우 Azure 저장소 탐색기에 실패한 레코드 동기화 폴더가 표시됩니다.

실패한 레코드 동기화 폴더 구조 및 로그 파일

실패한 레코드 Azure Blob 저장소 URL은 다음과 같은 폴더 구조의 위치를 가리킵니다.

  • 데이터. 이 폴더에는 실패한 데이터 알림 및 레코드 데이터에 연결된 JSON이 포함되어 있습니다.

  • 메타데이터. 이 폴더에는 실패한 메타데이터 알림 및 메타데이터에 연결된 JSON이 포함되어 있습니다.

  • 오류 기록. 이 폴더에는 동기화 실패에 대한 정보와 실패가 발생한 원인에 대한 정보를 제공하는 로그가 포함되어 있습니다.

  • 강제로 실패 로그 새로 고침. 이 폴더에는 실패한 레코드를 다시 동기화하는 데 사용한 데이터 내보내기 서비스 실패 레코드 명령의 마지막 실행의 오류를 포함합니다.

  • 실행 불가능한 메시지. 이 폴더에는 데이터 또는 메타데이터 그리고 연결된 JSON의 삭제로 인해 처리되지 않은 데이터 알림이 들어있습니다.

오류 로그 및 강제로 실패 로그 새로 고침 폴더의 구조는 \\\시간이므로 빠르게 최근 실패를 찾을 수 있습니다. 30일이 지난 모든 오류 레코드는 삭제됩니다.

연락처 엔터티 레코드 동기화 오류를 나타내는 로그 파일의 예는 다음과 같습니다.

엔터티: 연락처, 레코드ID: 459d1d3e-7cc8-e611-80f7-5065f38bf1c1, 알림시간: 12/28/2016 12:32:39 AM, 변경유형: 업데이트, 오류원인: 'tempdb' 데이터베이스가 크기 제한에 도달했습니다. 데이터를 분할 또는 삭제하거나, 인덱스를 삭제하거나, 가능한 해결 방법에 대 한 설명서를 참조하십시오. 문이 종료되었습니다.

레코드 동기화 실패의 흔한 원인

레코드 동기화 실패가 발생하는 몇 가지 원인은 다음과 같습니다.

  • 대상 데이터베이스의 저장소가 부족한 경우. 실패한 레코드를 다시 동기화하기 전에 Azure SQL 데이터베이스 저장소를 적절히 늘리거나 비웁니다. 이 문제가 발생하면 다음과 유사한 메시지가 오류 로그에 기록됩니다.

    데이터베이스 '데이터베이스 이름'이 크기 제한에 도달했습니다. 데이터를 분할 또는 삭제하거나, 인덱스를 삭제하거나, 가능한 해결 방법에 대 한 설명서를 참조하십시오.

  • Azure SQL 데이터베이스와 동기화 시간 초과. 처음 데이터 내보내기 프로필을 동기화할 때 한 번에 많은 양의 데이터 처리하는 경우 발생할 수 있습니다. 이 문제가 발생하면 실패한 레코드를 다시 동기화합니다.동기화 문제 해결

데이터 내보내기를 사용하여 Azure SQL 데이터베이스를 사용할 때 최상의 방법

  • 리소스 제한으로 인한 동기화 실패를 방지하려면 데이터 내보내기 서비스를 사용할 때 Azure SQL 데이터베이스 프리미엄 P1 또는 보다 고급의 플랜을 사용하는 것이 좋습니다.추가 정보:Azure SQL 데이터베이스 리소스 제한SQL 데이터베이스 가격 산정

  • Azure SQL 데이터베이스를 설정하면 RCSI(Read Committed Snapshot Isolation)를 보고 및 ETL 작업 등 장기 실행 읽기 쿼리를 실행하는 대상 데이터베이스에서 동시에 실행 중인 워크로드에 사용할 수 있습니다. 읽기/쓰기 충돌 때문에 데이터 내보내기 서비스에 발생할 수 있는 시간 초과 오류 발생을 감소시킵니다.

데이터 동기화 대기 시간 정보

데이터 내보내기 서비스는 Dynamics 365에서 변경 사항이 있을 때 해당 내용을 수신하여 푸시 메커니즘을 사용하여 데이터 변경 내용을 대상 데이터베이스에 동기화하도록 설계되었습니다. 서비스는 몇 분 내에 데이터를 푸시하기 위해 노력하지만 종단 간 동기화 대기 시간에 영향을 줄 수 있는 요인에는 여러 가지가 있습니다.

동기화 기간에 영향을 미치는 요인은 다음과 같습니다.

  • Dynamics 365의 현재 작업 부하.

  • Dynamics 365의 데이터 변경 비율.

  • 각 내보내기 프로필과 해당 특성에 추가되는 엔터티의 수.

  • SQL Server 성능 예를 들면 다음과 같습니다.

    • SQL 연결 설정 시간.

    • SQL 문 실행 시간.

서비스의 모니터링에 따르면 대부분의 진행 중인 델타 동기화는 서비스가 다음과 같은 조건에서 작동할 때 15분 후에 완료된다는 것이 확인되었습니다.

  • 발생하는 동기화는 초기 동기화가 아닌 델타 동기화입니다. 델타 동기화는 레코드 만들기, 업데이트 및 삭제 트랜잭션을 포함하는 데이터 변경 작업에만 사용됩니다. 초기 동기화가 완료되면 델타 동기화가 시작됩니다.

  • 내보내기 프로필의 모든 엔터티에 대한 Dynamics 365의 최대 데이터 변경 비율은 시간당 3000레코드보다 작습니다. 최대 변경 속도를 초과한 레코드의 대량 변경으로 인해 데이터 변경 비율이 급격하게 증가하면 추가 대기 시간이 발생합니다.

  • 내보내기 프로필에 추가된 각 엔터티는 150 특성보다 작습니다.

  • 데이터베이스 연결 또는 SQL 문 실행이 10초 이내에 완료됩니다. 이 제한을 초과하면 추가 대기 시간이 발생합니다.

  • 동기화 중에는 대상 데이터베이스 연결이나 SQL 실행 오류가 발생하지 않습니다.

위의 조건이 충족된 경우 일반적인 동기화 대기 시간은 15분입니다.Microsoft는 데이터 내보내기 서비스에 대한 SLA(서비스 수준 계약)를 제공하지 않으며 동기화 대기 시간에 대해 어떠한 보장이나 약속을 하지 않습니다.

Azure 주요 자격 증명 모음 설정 방법

여기에 설명된 Windows PowerShell 스크립트를 Azure 계정 관리자로 실행하여 데이터 내보내기 서비스에 대한 권한을 부여하면 Azure 주요 자격 증명 모음에 액세스할 수 있을 수 있습니다. 이 스크립트는 연결 문자열에 액세스 하는 데 사용되는 내보내기 프로필을 만드는 데 필요한 주요 자격 증명 모음 URL을 표시합니다.

스크립트를 실행하기 전에 다음과 같은 변수에 대한 자리 표시자를 바꿉니다.

  • $subscriptionId.Azure 구독 ID. 구독 ID는 Login-AzureRmAccount 명령을 실행하면 표시됩니다.

  • $keyvaultName. 기존 또는 새 주요 자격 증명 모음 이름을 선택합니다. 이름은 주요 자격 증명 모음를 참조하기 위해 사용됩니다. 이 예제에서는 ContosoKeyVault가 사용됩니다. 이 이름은 다른 주요 자격 증명 모음 cmdlet에 대해 사용할 것입니다.

  • $secretName. 주요 자격 증명 모음에 대한 소프트웨어 보호 키에 사용되는 이름을 지정합니다. 보호된 키가 없으면 지정된 비밀 이름을 사용하여 만들어집니다. 이 예제에서는 ContosoDataExportSecret이 사용됩니다.

  • $resourceGroupName. 사용하고자 하는 Azure 리소스 그룹 이름을 지정합니다. 리소스 그룹이 아직 없는 경우 지정한 이름으로 새 그룹이 생성됩니다. 이 예제에서는 ContosoResourceGroup1이 사용됩니다.

  • $location.미국 서부와 같이 리소스 그룹이 있거나 있어야 할 위치를 지정합니다.

  • $connectionString.Microsoft Azure SQL 데이터베이스에 대한 연결 문자열.Azure 대시보드에 표시되는 ADO.NET 연결 문자열을 사용할 수 있습니다.

  • $organizationIdList = 허용된 Microsoft Dynamics 365 조직의 쉼표로 구분된 목록, 조직 ID(organizationId)를 기준으로 나열, 데이터 내보내기 서비스에 대해 활성화. 조직 ID를 찾으려면 Microsoft Dynamics 365에서 설정 > 사용자 지정 > 개발자 리소스로 이동합니다. 조직에서 ID는 인스턴스 참조 정보 아래에 있습니다.

  • $tenantId.Microsoft Dynamics 365 인스턴스에 연결된 Azure Active Directory ID를 지정합니다. 추가 정보: Dynamics 365 인스턴스에 대한 Azure Active Directory 테넌트 ID 찾기

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

모든 데이터 내보내기 프로필 테이블 및 저장 프로시저를 삭제하는 방법

중요

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

특정 엔터티에 대해 데이터 내보내기 프로필 테이블 및 저장 프로시저를 삭제하는 방법

중요

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

Dynamics 365 인스턴스에 대한 Azure Active Directory 테넌트 ID 찾기

  1. Azure 포털에 로그인합니다.

  2. Azure Active Directory > 앱 등록 > 끝점으로 이동합니다.

  3. 테넌트 ID는 Azure 구독으로 나열된 끝점 URL에 표시됩니다.

중요

한 Azure 구독에 여러 Azure Active Directory 테넌트 ID가 있을 수 있습니다. 데이터 내보내기에 사용할 Microsoft Dynamics 365 인스턴스와 관련된 올바른 Azure Active Directory 테넌트 ID를 선택했는지 확인합니다.

내보내기 데이터 서비스에서 사용하는 Azure SQL 데이터베이스 정적 IP 주소

Azure SQL 데이터베이스에서 서버 방화벽 설정을 클릭하고, Azure 서비스에 액세스 허용해제로 설정하고, 클라이언트 IP 추가를 클릭한 다음 Azure SQL 데이터베이스 영역에 적절한 IP 주소를 추가합니다.추가 정보:Microsoft Azure: Azure 포털을 사용하여 Azure SQL 데이터베이스 서버 수준 방화벽 규칙 구성

지역

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 Azure 대상 데이터베이스에 대한 SQL 쿼리를 만들고 실행합니다. 하나 이상의 레코드가 발견되면 삭제된 레코드의 존재 여부를 나타냅니다.

  3. 로그 삭제 테이블에 하나 이상의 레코드가 있으면 로그 삭제 테이블에서 찾을 수 있는 레코드의 레코드 ID가 엔터티 이름 테이블에 있는 레코드의 레코드 ID와 일치하고 삭제 로그의 버전 번호가 엔터티 이름 테이블의 레코드의 버전 번호보다 큰 인스턴스를 검색하는 SQL 쿼리를 만들고 실행합니다. 레코드 ID가 일치하는 경우 엔터티 이름 테이블에서 레코드를 삭제합니다. 예를 들어, 로그 삭제의 거래처 ID 열에 있는 레코드 엔터티가 거래처 기반 엔터티 테이블의 거래처 ID 열에 있는 레코드 ID와 일치하고 삭제 로그의 버전 번호가 거래처 테이블의 버전 번호보다 큰 경우 거래처 기반 엔터티 테이블에서 레코드를 삭제합니다.

    중요

    비즈니스 요구와 조건에 따라 작동 시간이 아닌 경우 레코드 삭제에 대한 SQL 쿼리를 자주 실행하는 것이 좋습니다.

엔터티 레코드 삭제에 대한 예제 쿼리.

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 > A.VersionNumber)

데이터 내보내기를 지원하지 않는 엔터티

여기에 나열된 엔터티는 변경 내용 추적을 지원하지만 데이터 내보내기 서비스를 사용하여 데이터 내보내기는 지원하지 않습니다.

엔터티

테이블 이름

문제 해결 방안

활동

ActivityPointerBase

전화 통화, 약속, 전자 메일 및 작업과 같은 내보내기에 사용할 특정 활동 엔터티를 선택합니다.

개인정보취급방침

데이터 내보내기 서비스를 사용하면 Microsoft Dynamics 365 내에서 데이터 내보내기 프로필을 활성화할 때 프로필에 추가된 엔터티의 데이터가 Azure로 전송됩니다. 초기 동기화에는 내보내기 프로필에 추가된 엔터티에 연결된 데이터가 모두 포함되지만 동기화한 후에는 데이터 내보내기 서비스에 지속적으로 전송되는 새로운 변경 내용만 포함됩니다. 데이터 내보내기 서비스에 전송된 데이터는 임시로 Azure 서비스 버스 및 Azure Storage에 저장되고 Azure Service Fabric에서 처리되고, 마지막으로 Azure 구독에 지정된 대상 데이터베이스에 동기화(삽입, 업데이트 또는 삭제)됩니다. 데이터가 동기화된 후에는 Azure 서비스 버스 및 Azure Storage에서 삭제됩니다. 데이터 동기화 중에 오류가 발생하면, 엔터티 유형, 레코드 ID 및 동기화 타임스탬프에 해당하는 최소 데이터가 Azure Storage에 저장되어 업데이트되지 않은 레코드 목록을 다운로드할 수 있습니다.

관리자는 데이터 내보내기 프로필을 언제든지 활성화하여 데이터 동기화를 중지할 수 있습니다. 또한 관리자는 내보내기 프로필을 삭제하여 실패한 레코드 로그를 제거하고 데이터 내보내기 서비스 솔루션을 제거하여 데이터 내보내기 서비스 사용을 중단할 수 있습니다.

데이터 동기화는 Dynamics 365과 데이터 내보내기 서비스 간에 안전한 방식으로 지속적으로 일어납니다. 데이터는 Dynamics 365과 데이터 내보내기 서비스 간에 지속적으로 교환될 때 암호화됩니다.

데이터 내보내기 서비스에 포함된 Azure 구성 요소 및 서비스는 다음 섹션에서 자세히 설명합니다.

참고: 추가 Azure 서비스 제공에 대한 자세한 내용은 Microsoft Azure 보안 센터를 참조하십시오.

Azure Service Fabric

API를 제공하고 Azure VM을 계산하여 Dynamics 365에서 받은 레코드 동기화 알림을 처리한 후 대상 데이터베이스에서 레코드 데이터를 삽입, 업데이트 또는 삭제하도록 처리합니다. Azure Service Fabric 런타임에서 관리되는 가상 컴퓨터에 배포되는 마이크로 서비스는 데이터 동기화와 관련된 모든 계산 서비스를 처리합니다.

Azure Service Bus

Dynamics 365에서 Azure Service Fabric의 계산 노드에서 처리되는 동기화 알림 메시지를 삽입하는 메시지 버스를 제공합니다. 각 메시지는 데이터를 동기화하는 데 필요한 조직 id 및 레코드와 같은 정보를 저장합니다. Azure Service Bus의 데이터는 미사용 시 암호화되어 있지 않지만, 데이터 내보내기 서비스에서만 액세스할 수 있습니다.

Azure Blob Storage

레코드 동기화 알림의 데이터가 너무 커서 메시지에 저장할 수 없거나 일시적 오류가 발생하여 동기화 알림을 처리하지 못할 경우 데이터가 Azure Blob 저장소에 임시로 저장됩니다. 이러한 blob는 대칭 및 비대칭 암호화 지원 및 Azure 주요 자격 증명 모음와의 통합을 제공하는 Azure Storage SDK의 최신 기능을 활용하여 암호화됩니다.

Azure SQL

Azure SQL 데이터베이스는 데이터 내보내기 프로필 구성 및 데이터 동기화 메트릭을 저장합니다.

참고 항목

AppSource: Microsoft Dynamics 365 - 데이터 내보내기 서비스
Dynamics 365 ‒ 데이터 내보내기 서비스의 새로운 기능은 무엇입니까?
데이터 관리
MSDN: 데이터 내보내기 서비스
팀 블로그: Dynamics 365 소개 - 데이터 내보내기 서비스

© 2017 Microsoft. All rights reserved. 저작권 정보