이 페이지가 유용했습니까?
이 콘텐츠에 대한 여러분의 의견은 중요합니다. 의견을 알려주십시오.
추가 의견
1500자 남음
SQL 데이터 동기화에 대한 유용한 정보

SQL 데이터 동기화에 대한 유용한 정보

업데이트 날짜: 2015년 5월

 

SQL Azure 데이터 동기화 아이콘

SQL 데이터 동기화(미리 보기)에 오신 것을 환영합니다. 이 항목은 데이터 동기화 계획을 디자인하고 구현하기 전에 알아두어야 하는 5가지 항목 중 마지막입니다. 5가지 준비 항목은 다음과 같습니다.

Microsoft Azure Silverlight 포털의 Microsoft Azure SQL 데이터 동기화 플러그 인이 서비스 해제되었습니다. 앞으로는 Azure SQL 데이터 동기화용 Microsoft Azure 관리 포털을 사용합니다.

SQL 데이터 동기화(미리 보기)는 Microsoft Azure 관리 포털의 SQL 데이터베이스에 있는 SYNC 탭을 통해 액세스합니다. 동기화 탭은 하나 이상의 동기화 그룹이 있는 경우에만 사용할 수 있습니다. 이 포털에서 동기화 그룹을 만들고 수정하는 방법에 대한 지침은 방법: 동기화 그룹 만들기(SDS) 항목을 참조하세요.

시작하기 전에 읽어야 하는 항목과 동기화 그룹 만들기 및 수정에 대한 지침은 아래의 탐색 섹션을 참조하세요.

  • 네트워크 서비스 액세스 권한을 포함하는 최소 권한의 계정을 사용하여 클라이언트 에이전트를 설치합니다.

  • 클라이언트 에이전트가 내부 SQL Server 컴퓨터와 별개의 컴퓨터에 설치된 경우에 가장 좋습니다.

  • 내부 DB는 두 개 이상의 에이전트에 등록하지 마세요.

    • 서로 다른 동기화 그룹에 대한 서로 다른 테이블을 동기화하는 경우에도 마찬가지입니다.

    • 내부 데이터베이스를 여러 클라이언트 에이전트에 등록할 경우 동기화 그룹 중 하나를 삭제할 때 문제가 발생합니다.

  • 동기화 설정의 경우:
    테이블 만들기/수정 권한, 데이터베이스 수정 권한, 프로시저 만들기 권한, 스키마 선택/수정 권한, 사용자 정의 형식 만들기 권한

  • 지속적인 동기화의 경우:
    동기화하도록 선택한 테이블 및 동기화 메타데이터 및 추적 테이블에 대한 선택/삽입/업데이트/삭제 권한, 서비스로 만든 저장 프로시저에 대한 실행 권한, 사용자 정의된 테이블 형식에 대한 실행 권한

  • 프로비전 해제의 경우:
    동기화 중 테이블에 대한 수정 권한, 동기화 메타데이터 테이블에 대한 선택/삭제 권한, 동기화 추적 테이블, 저장 프로시저 및 사용자 정의된 형식에 대한 제어 권한

동기화 그룹의 DB에 대해 자격 증명이 하나만 있으므로 이 정보로는 무엇을 할 수 있습니까?

  • 다른 단계에 대해 자격 증명을 변경합니다(예: 설정의 경우 cred1 및 지속적인 동기화의 경우 cred2).

  • 자격 증명의 권한을 변경합니다(예: 동기화가 설정된 후 권한 변경).

엔터프라이즈-클라우드 시나리오:

대기 시간을 최소화하기 위해 동기화 그룹의 데이터베이스 트래픽이 가장 집중된 곳에서 가까운 곳에 허브 데이터베이스를 유지합니다.

클라우드-클라우드 시나리오:

동기화 그룹의 모든 데이터베이스가 하나의 데이터 센터에 있으면 동일한 데이터 센터에 허브를 배치해야 합니다. 그러면 데이터 센터 간 데이터 전송 비용 및 대기 시간을 줄일 수 있습니다.

동기화 그룹의 데이터베이스가 여러 데이터 센터에 있으면 데이터베이스 및 데이터베이스 트래픽이 가장 많은 데이터 센터에 허브를 배치해야 합니다.

혼합된 시나리오:

위의 원칙을 보다 복잡한 동기화 그룹 구성에 적용합니다.

  • SQL 데이터베이스 인스턴스 크기

    새 SQL 데이터베이스 인스턴스를 만들 때 사용자 지정 만들기를 선택하는 경우 항상 배포하는 데이터베이스보다 크도록 최대 크기를 설정하세요. 최대 크기를 배포한 데이터베이스보다 크게 설정하지 않으면 동기화에 실패합니다. 자동으로 확장되지 않는 경우 데이터베이스가 만들어진 후에 ALTER DATABASE를 사용하여 크기를 늘릴 수 있습니다. 물론 SQL 데이터베이스 인스턴스 크기 제한 내에 있어야 합니다.


    Important중요
    SQL 데이터 동기화(미리 보기)는 데이터베이스와 함께 추가 메타 데이터를 저장합니다. 따라서 필요한 공간을 계산할 때 이를 고려해야 합니다.
    추가되는 오버헤드의 양은 테이블의 너비에 따라 달라집니다(테이블 너비가 좁으면 더 많은 오버헤드가 필요).

  • 데이터베이스 차원에 대해 지원되는 제한 사항

     

    차원 제한

    데이터베이스, 테이블, 스키마 및 열 이름

    이름당 50자

    동기화 그룹의 테이블 수

    100

    동기화 그룹의 테이블에 있는 열 수

    1000

  • 테이블 선택

    데이터베이스의 모든 테이블이 sync group에 속해 있어야 하는 것은 아닙니다. 동기화 그룹에 포함할 테이블과 제외할 테이블(또는 다른 동기화 그룹에 포함할 테이블)의 선택은 효율성과 비용에 영향을 줄 수 있습니다. 따라서 비즈니스에 필요한 테이블과 여기에 종속된 테이블만 동기화 그룹에 포함하세요.

  • 기본 키

    동기화 그룹의 각 테이블에는 기본 키가 있어야 합니다. SQL 데이터 동기화(미리 보기) 서비스는 기본 키가 없는 테이블을 동기화할 수 없습니다.

프로덕션으로 이전하기 전에 시나리오의 초기 및 지속적인 동기화 성능을 테스트합니다.

SQL 데이터 동기화(미리 보기) 미리 보기은 기본 데이터베이스 자동 프로비전을 제공합니다.

이 섹션에서는 SQL 데이터 동기화(미리 보기) 프로비전의 제한 사항에 대해 설명합니다.

다음은 SQL 데이터 동기화(미리 보기) 자동 프로비전의 제한 사항입니다.

  • 선택한 열만 대상 테이블에 생성됩니다.
    따라서 일부 열이 동기화 그룹의 일부가 아닌 경우 해당 열은 대상 테이블에서 프로비전되지 않습니다.

  • 인덱스는 선택한 열에 대해서만 생성됩니다.
    원본 테이블 인덱스에 동기화 그룹에 속하지 않는 열이 있을 경우 해당 인덱스는 대상 테이블에서 프로비전되지 않습니다.

  • XML 형식 열의 인덱스는 프로비전되지 않습니다.

  • CHECK 제약 조건은 프로비전되지 않습니다.

  • 원본 테이블의 기존 트리거는 프로비전되지 않습니다.

  • 보기와 저장 프로시저는 대상 데이터베이스에 생성되지 않습니다.

  • 자동 프로비전 기능은 서비스를 시도하는 용도로만 사용하세요.

  • 프로덕션의 경우 데이터베이스 스키마를 프로비전해야 합니다.

이 섹션에서는 동기화 그룹의 초기 동기화에 대해 설명하고 초기 동기화가 필요한 수준보다 오래 걸리고 비용이 많이 드는 것을 방지하기 위해 수행할 수 있는 작업을 살펴봅니다.

동기화 그룹을 만들 때 한 데이터베이스의 데이터만 사용하여 시작합니다. 여러 데이터베이스의 데이터를 사용하는 경우 SQL 데이터 동기화(미리 보기)는 해결해야 하는 충돌로 각 행을 처리하므로 데이터베이스 크기에 따라 초기 동기화가 며칠에서 몇 개월까지 매우 느리게 진행됩니다.

또한 데이터베이스가 여러 데이터 센터에 있는 경우 각 행이 데이터 센터 간을 이동해야 하므로 초기 동기화의 비용이 필요한 수준보다 커집니다.

가능하면 동기화 그룹 데이터베이스 중 하나의 데이터만 사용하여 시작합니다.

  • 비용

    SQL 데이터 동기화(미리 보기) 서비스는 현재 무료로 제공되지만 이동합니다. 데이터 센터에서 들어오고 나가는 데이터에는 이동합니다. 요금이 부과됩니다. 따라서 안정적이거나 자주(매일 또는 매주) 새로 고칠 필요가 없는 데이터가 포함된 테이블을 동기화해야 합니다. 시간이 중요한 데이터 또는 더욱 일시적인 데이터가 포함된 테이블은 자주 동기화하는 것이 좋습니다. 비즈니스 요구 사항을 분석하여 그에 따라 적절히 Sync Group을 만드세요.

    데이터가 데이터 센터 내부 및 외부로 전달될 때 송/수신 비용일 부과될 수도 있습니다.

  • Frequency

    동기화가 완료되지 않은 동기화 그룹을 동기화하려고 하면 작업이 시작되지 않습니다. 동기화가 수행되지 않았음을 시각적으로 확인할 수 있는 방법은 없습니다. 따라서 다른 동기화를 시도하기 전에 각 동기화가 완료되는 시간을 확보할 수 있도록 동기화를 예약하는 것이 좋습니다.

    예를 들면 다음과 같습니다.

    매 5분마다 동기화하도록 동기화 그룹을 예약(T0, T0+5, T0+10...)했지만 동기화를 완료하는 데 6분이 걸리는 경우에는 T0, T0+10, T0+20 등에서 동기화가 발생합니다. T0+5와 T0+15는 T0과 T0+10이 시간 내에 완료되지 않았으므로 실패합니다.

동기화 루프는 한 동기화 그룹 내에 순환 참조가 있어서 한 데이터베이스의 각 변경 사항이 이 동기화 그룹의 데이터베이스를 통해 순환하여 무한히 복제될 때 발생합니다. 동기화 루프는 성능 저하와 비용 증가의 원인이 될 수 있으므로 방지하는 것이 좋습니다.

동기화 루프에 대한 자세한 내용, 동기화 루프가 발생하는 디자인의 예 및 동기화 루프를 방지하기 위해 새로 디자인하는 방법에 대해 알아 보려면 동기화 루프 이해 및 방지를 참조하세요.

동기화 그룹 내의 데이터베이스 또는 동기화 그룹은 날짜가 지날 수 있습니다. 동기화 그룹의 상태가 "날짜 지남"이면 기능이 작동하지 않습니다. 데이터베이스의 상태가 "날짜 지남"인 경우 데이터가 손실될 수 있습니다. 이 상태에서 복구하는 것보다 이러한 상황을 방지하는 것이 가장 좋습니다.

45일 이상 오프라인 상태인 데이터베이스는 상태가 "날짜 지남"으로 설정됩니다. 45일 이상 오프라인 상태로 유지된 데이터베이스가 없음을 확인하여 데이터베이스에서 "날짜 지남" 상태를 방지할 수 있습니다. "날짜 지남" 상태의 데이터베이스를 복구하는 방법에 대한 자세한 내용은 A database has an "Out-of-Date" status 항목을 참조하세요.

동기화 그룹 내의 임의의 변경 사항이 동기화 그룹의 나머지에 대해 45일 이상 전파되지 못하면 동기화 그룹이 날짜 지남으로 설정됩니다. 동기화 그룹의 기록 로그를 정기적으로 확인하고 모든 충돌이 해결되며 변경 내용이 동기화 그룹 데이터베이스 전체에 성공적으로 전파되는지 확인함으로써 동기화 그룹에서 날짜 지남 상태를 방지할 수 있습니다.

동기화 그룹이 변경 사항을 적용하지 못하는 이유는 다음과 같습니다.

날짜 지남 동기화 그룹은 다음과 같은 방법으로 방지할 수 있습니다.

  • 실패한 열에 포함된 값을 허용하도록 스키마를 업데이트합니다. Q: I just changed my schema. How do I get the change into my sync group? 항목을 참조하세요.

  • 실패한 열에 포함된 값을 포함하도록 외래 키 값을 업데이트합니다.

  • 실패한 행의 데이터 값이 대상 데이터베이스의 스키마 또는 외래 키와 호환되도록 업데이트합니다.

"날짜 지남" 상태의 동기화 그룹을 복구하는 방법에 대한 자세한 내용은 A sync group has an "Out-of-Date" status 항목을 참조하세요.

특정 상황에서 클라이언트 에이전트에서 데이터베이스를 등록 취소하면 동기화가 실패할 수 있습니다.

시나리오:

  1. 로컬 에이전트 1과 연결된 내부 SQL Server 데이터베이스 및 SQL 데이터베이스 인스턴스를 사용하여 동기화 그룹 A를 만듭니다.

  2. 로컬 에이전트 2에 동일한 내부 데이터베이스가 등록됩니다(이 에이전트는 어떤 동기화 그룹과도 연결되어 있지 않습니다).

  3. 로컬 에이전트 2에서 내부 데이터베이스를 등록 취소하면 내부 데이터베이스에 대한 동기 그룹 A의 추적/메타 테이블이 제거됩니다.

  4. 이제 다음 오류가 발생하며 동기화 그룹 A 작업이 실패합니다.
    "The current operation could not be completed because the database is not provisioned for sync or you do not have permissions to the sync configuration tables."

솔루션:

  • 데이터베이스에 둘 이상의 에이전트를 등록하지 않으면 이 상황을 방지할 수 있습니다.

  • 이 상황에서 복구하려면:

    1. 데이터베이스가 속한 각 동기화 그룹에서 데이터베이스를 제거합니다.

    2. 방금 데이터베이스를 제거한 각 동기화 그룹에 데이터베이스를 다시 추가합니다.

    3. 영향을 받은(데이터베이스를 프로비전한) 각 동기화 그룹을 배포합니다.

변경 내용은 여러 가지 이유로 인해 전파되지 않을 수 있습니다. 이러한 원인은 다음과 같습니다.

  • 스키마/데이터 형식이 호환되지 않는 경우

  • Null을 허용하지 않는 열에 Null을 삽입하려는 시도

  • 외래 키 제약 조건 위반

  • 동기화 그룹에서 경고 상태로 표시됩니다.

  • 자세한 내용이 포털 UI 로그 뷰어에 표시됩니다.

  • 문제가 45일 동안 해결되지 않을 경우 데이터베이스가 날짜 지남 상태가 됩니다.


    note참고
    이러한 변경 내용은 전파되지 않습니다. 유일한 복구 방법은 동기화 그룹을 다시 만드는 것입니다.

포털 및 로그 UI를 통해 동기화 그룹 및 데이터베이스 상태를 정기적으로 모니터링하세요.

먼저 변경 내용 중 하나를 배포하지 않고 동기화 그룹에서 데이터베이스를 제거하고 동기화 그룹을 편집하려고 시도하지 마세요.

우선 동기화 그룹에서 데이터베이스를 제거합니다. 그런 다음 변경 내용을 배포하고 프로비전 해제가 완료될 때까지 기다립니다. 작업이 완료된 후에는 동기화 그룹을 편집하고 변경 내용을 배포할 수 있습니다.

먼저 변경 내용 중 하나를 배포하지 않고 데이터베이스를 제거하고 동기화 그룹을 편집하려고 시도할 경우 두 작업 중 하나가 실패하고 UI가 일관적이지 않은 상태가 될 수 있습니다. 하지만 이 경우 UI를 새로 고쳐서 올바른 상태로 복원할 수도 있습니다.

SQL 데이터 동기화(미리 보기)는 이동합니다.의 기능입니다. Azure 관리 포털에서 동기화 그룹을 만들고 배포하고 수정하는 데 필요한 모든 작업을 수행할 수 있습니다.

 

동기화 그룹을 만드는 방법

Azure 관리 포털에서 동기화 그룹을 만들려면 6단계를 거쳐야 합니다. 각 단계에 대한 자세한 내용을 보려면 다음 링크를 클릭하세요.

  1. Azure SQL 데이터베이스 관리 포털에 로그인
    SQL 데이터 동기화(미리 보기)는 동기화 그룹을 만든 후에만 SQL 데이터베이스 아래에 탭으로 나타납니다.

  2. SQL 데이터 동기화 클라이언트 에이전트 설치

  3. 클라이언트 에이전트에 SQL Server 데이터베이스 등록

  4. 동기화 그룹 만들기

  5. 데이터 동기화 정의

  6. 동기화 그룹 구성(SDS)

동기화 그룹을 수정하는 방법

You can modify a sync group’s schema by adding/removing tables or columns in the sync group; or by altering a column’s width or data type. 자세한 내용을 보려면 다음 링크를 클릭하세요.

참고 항목

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2015 Microsoft