판매 주문 병합 복제 예제 추가 정보

이 예제는 SQL Server 2005 및 SQL Server 2008에서만 작동합니다. SQL Server 2005보다 이전 버전의 SQL Server에서는 작동하지 않습니다.

이 추가 정보 파일에서는 판매 주문 예제를 설치하여 실행하는 방법을 자세히 설명합니다. 또한 예제의 알려진 문제도 자세히 설명합니다.

시나리오

이 예제에서는 데이터를 모바일 사용자에게 전달하기 위한 병합 복제 토폴로지를 중점적으로 보여 주며 또한 SQL Server에 있는 병합 복제의 프로그래밍 기능을 보여 줍니다. 이 예제는 판매 직원이 표준 Microsoft 데이터 액세스 기술 및 병합 복제를 사용하여 자신의 로컬 데이터를 관리하면서 주기적으로 홈 오피스와 동기화할 수 있도록 하는 Windows 폼 기반 응용 프로그램입니다. 이 예제는 모든 버전의 SQL Server를 실행하는 구독자에서 지원됩니다. 게시는 SQL Server Compact 3.5 SP1 구독자도 지원합니다. 이 예제 시나리오에 대한 자세한 내용은 판매 주문 예제 시나리오를 참조하십시오.

언어

  • C#
  • Transact-SQL

기능

판매 주문 예제는 다음과 같은 병합 복제 기능을 보여 줍니다.

  • RMO(복제 관리 개체)
  • 매개 변수가 있는 행 필터
  • 사전 계산 파티션
  • 클라이언트가 요청한 분할된 스냅숏
  • 아티클 유형 기반의 성능 최적화
  • SQL Server Compact 3.5 SP1 및 SQL Server Express 구독자
  • 자동 ID 범위 관리
  • 비즈니스 논리 처리기
  • 웹 동기화(옵션)

이러한 복제 기능이 예제에서 보여지는 방법에 대한 자세한 내용은 주문 예제 구현 정보를 참조하십시오.

필수 구성 요소

이 예제를 실행하기 전에 다음 소프트웨어가 설치되어 있는지 확인하십시오.

  • SQL Server 2005 이상 버전(선택적으로 설치된 다음 구성 요소 포함)
    • SQL Server 데이터베이스 엔진 서비스(복제 포함)
    • 클라이언트 도구
    • AdventureWorks 예제 OLTP 데이터베이스. 이러한 예제 데이터베이스는 CodePlexMicrosoft SQL Server 예제 및 커뮤니티 프로젝트(Microsoft SQL Server Samples and Community Projects) 페이지에서 다운로드할 수 있습니다.
    • SQL Server 예제. 이러한 예제는 CodePlexMicrosoft SQL Server 예제 및 커뮤니티 프로젝트(Microsoft SQL Server Samples and Community Projects) 페이지에서 다운로드할 수 있습니다. 자세한 내용은 SQL Server 예제 및 예제 데이터베이스 설치 시 고려 사항을 참조하십시오.
  • .NET Framework SDK 2.0 또는 Microsoft Visual Studio 2005. .NET Framework SDK는 무료로 구할 수 있습니다. 자세한 내용은 .NET Framework 설명서 설치를 참조하십시오.

필요한 권한

판매 주문 예제의 구성 및 실행에 필요한 권한은 복제 보안 요구 사항에 따라 다음과 같습니다.

  • 복제를 구성하고 AdvWorksSalesOrders 게시를 만들며 초기 스냅숏을 생성하는 InstallSalesOrdersSample.bat를 실행하려면 Windows 계정이 게시자에서 sysadmin 고정 서버 역할의 멤버여야 합니다.

  • 판매 주문 예제에서는 AdventureWorksLocal 데이터베이스 만들기, 로컬 구독 만들기 및 병합 에이전트 실행을 통한 구독 초기화, 다시 초기화 또는 동기화 등의 다양한 데이터베이스 엔진 및 복제 작업을 수행합니다. 구독자에서 예제 실행 파일(SalesOrders.exe)을 성공적으로 실행하려면 Windows 계정이 구독자에서 적어도 CREATE DATABASE 권한을 가지고 있어야 합니다.

    참고

    로컬 데이터베이스 및 구독이 존재하는 경우 응용 프로그램을 실행하려면 구독자의 AdventureWorksLocal 데이터베이스에서 Windows 계정이 적어도 db_owner 고정 데이터베이스 역할의 멤버여야 합니다.

  • 구독을 초기화하고 게시자와 동기화하려면 게시자(또는 웹 동기화를 사용하는 경우 웹 서버)에 연결하는 데 사용되는 Windows 계정이 다음 요구 사항을 충족해야 합니다.

    • 게시 데이터베이스의 사용자와 연결된 게시자에 유효한 로그인이 있어야 합니다.
    • 배포 데이터베이스의 사용자(또는 게스트 사용자)와 연결된 배포자에 유효한 로그인이 있어야 합니다.
    • AdvWorksSalesOrders 게시에 대한 PAL(게시 액세스 목록)의 멤버여야 합니다.

예제 빌드 및 구성

예제 프로젝트를 빌드하고 복제 토폴로지를 구성하려면 다음을 수행해야 합니다.

  • 게시자에서 복제 설치 스크립트를 실행합니다.
  • 인터넷 정보 서비스(IIS) 서버가 병합 복제를 위해 웹 동기화를 지원하도록 구성합니다(옵션). 구성되지 않은 경우 예제의 웹 동기화 기능을 사용할 수 없습니다.
  • 구독자에서 예제의 app.config 파일에 있는 구성 설정을 수정합니다.
  • 구독자에서 Visual Studio 2005 또는 .NET Framework 2.0 SDK를 사용하여 예제를 빌드합니다.
  • 구독자에서 BusinessLogic.dll 어셈블리 복사본을 C:\Program Files\Microsoft SQL Server\100\COM 디렉터리에 저장합니다. 웹 동기화를 사용하는 경우 BusinessLogic.dll 복사본을 웹 서버에 있는 C:\Program Files\Microsoft SQL Server\100\COM 디렉터리에 저장해야 합니다.

게시자에서 판매 주문 예제를 구성하려면

  1. AdventureWorks 예제 데이터베이스가 설치되어 있고 해당 데이터베이스가 연결되어 있는지 확인합니다. 자세한 내용은 SQL Server 예제 및 예제 데이터베이스 설치 시 고려 사항을 참조하십시오.

  2. SQL Server 데이터베이스 엔진 예제가 설치되어 있는지 확인합니다. 자세한 내용은 SQL Server 예제 및 예제 데이터베이스 설치 시 고려 사항을 참조하십시오.

  3. SQL Server 에이전트가 실행 중인지 확인합니다. SQL Server Management Studio의 개체 탐색기에서 이 서비스의 상태를 확인하고 시작할 수 있습니다.

  4. 판매 주문 예제 스크립트의 설치 위치로 이동합니다. 기본값은 C:\Program Files\Microsoft SQL Server\100\Samples\Replication\Merge\SalesOrders\Scripts입니다.

  5. 게시자 또는 웹 동기화에 사용된 서버에서 SSL(Secure Sockets Layer)을 구성합니다(옵션) . SSL은 IIS 서버와 모든 구독자 간의 통신을 위해 필요합니다. SSL을 구성하려면 IIS 서버가 사용할 서버 인증서를 지정하십시오.

  6. InstallSalesOrdersSample.bat를 실행한 후 로그인 및 암호를 입력하라는 메시지가 표시되면 스냅숏 에이전트 작업이 실행될 Windows 계정의 로그인("DOMAIN\login" 형식으로 대/소문자 구분) 및 암호를 입력합니다. 그러면 sqlcmd.exe를 호출하여 CreateAdvWorksSalesOrdersPublication.sql을 실행하며 다음을 수행합니다.

    • 복제가 로컬 서버에서 구성되었는지 확인하고 구성되지 않은 경우 배포 데이터베이스를 사용하여 로컬 배포자가 있는 게시자로 복제를 구성합니다.
    • 클라이언트에서 데이터 액세스에 사용된 저장 프로시저 및 사용자 정의 함수를 삭제한 후 다시 만듭니다.
    • AdvWorksSalesOrders 게시를 삭제한 후 다시 만듭니다.
    • 아티클을 게시에 추가합니다.
    • 배포자에서 비즈니스 논리 처리기를 등록합니다.
    • 스냅숏 에이전트 작업을 시작하여 초기 스냅숏을 생성합니다.

    또한 배치 파일은 게시자에서 가상 디렉터리를 자동으로 구성하여 웹 동기화를 지원합니다. 설치 중에 게시자에서 가상 디렉터리를 구성하지 않기로 선택했거나 별도의 웹 서버를 사용하려는 경우 예제의 웹 동기화 기능을 사용하기 전에 웹 동기화 구성 마법사를 실행해야 합니다.

  7. 웹 동기화 구성 마법사를 실행하여 IIS 서버가 웹 동기화를 지원하도록 구성합니다(옵션). InstallSalesOrdersSample.bat가 성공적으로 가상 디렉터리를 만들었거나 웹 동기화를 사용하지 않을 경우에는 이 단계를 건너뜁니다. 이 마법사 사용 방법에 대한 자세한 지침은 How to: Configure an IIS Server for Web Synchronization (SQL Server Management Studio)을 참조하십시오.

  8. 계속하기 전에 AdvWorksSalesOrders 게시의 스냅숏 에이전트 작업이 성공적으로 완료되었는지 확인하십시오. 이 작업의 상태는 복제 모니터를 통해 확인할 수 있습니다. 복제 모니터를 사용하여 스냅숏 에이전트 작업 상태를 확인하는 방법에 대한 자세한 내용은 SQL Server 온라인 설명서의 How to: View Information and Perform Tasks for the Agents Associated With a Publication (Replication Monitor) 항목을 참조하십시오.

구독자에서 판매 주문 예제를 빌드 및 구성하려면

  1. 명령 프롬프트에서 SQL Server 예제 설치 디렉터리로 이동합니다. 기본값은 C:\Program Files\Microsoft SQL Server\100\Samples\입니다.

  2. .NET Framework 또는 Microsoft Visual Studio 2005 명령 프롬프트에서 다음을 실행합니다.

    sn -k SampleKey.snk

    참고

    다른 예제에서 사용하기 위해 이 키를 이미 만든 경우 이 단계를 생략해도 됩니다.

  3. Microsoft Visual C#으로 된 판매 주문 예제 솔루션의 설치 위치로 이동합니다. 기본값은 C:\Program Files\Microsoft SQL Server\100\Samples\Replication\Merge\SalesOrders\CS입니다.

  4. Visual Studio 2005에서 SalesOrders.sln 솔루션 파일을 엽니다.

  5. 프로젝트를 빌드합니다.

  6. 프로젝트 출력 폴더에서 SalesOrders.exe.config 파일을 편집하여 다음을 변경합니다.

    • 구독자 키의 값을 로컬 서버의 이름으로 바꿉니다.
    • 구독자 키의 값을 구독자로 이전에 구성된 서버의 이름으로 바꿉니다.
    • 웹 동기화를 사용하여 게시자에 연결하는 경우 WebSynchronizationUrl 키의 값을 바꿉니다(옵션). 이 작업은 런타임에도 가능합니다.
    • 연결 시 동기화 기능을 사용하는 경우 SyncWhenConnectedInterval 키를 이용해 동기화 간격(초 단위)을 설정할 수 있습니다(옵션).

    참고

    복제는 서버 이름으로 localhost를 지원하지 않습니다.

  7. BusinessLogic.dll 어셈블리 복사본을 C:\Program Files\Microsoft SQL Server\100\COM 디렉터리에 저장합니다.

  8. 웹 동기화를 사용하고 있는 경우 BusinessLogic.dll 어셈블리의 복사본을 웹 서버의 C:\Program Files\Microsoft SQL Server\100\COM 디렉터리에 넣습니다(옵션).

예제 실행

판매 주문 예제를 실행하여 데이터를 동기화하려면

  1. 원격 연결이 게시자 및 구독자에서 설정되어 있고(TCP/IP 또는 명명된 파이프) SQL Server 에이전트 서비스가 실행 중인지 확인합니다.

  2. 구독자에서 How to: Configure Web Synchronization for Merge Replication (Replication Transact-SQL Programming)의 "구독자에서 클라이언트 인증서를 구성하려면"의 지침에 따라 진단 모드로 웹 서버에 연결하여 웹 동기화 연결을 테스트합니다(옵션).

    참고

    웹 동기화를 사용할 때 HTTP 오류가 발생하면 Internet Explorer를 열고 도구 메뉴에서 인터넷 옵션, 연결LAN 설정을 차례로 선택합니다. 자동으로 설정 검색이 해제되어 있는지 확인합니다.

  3. Visual Studio 2005 또는 명령 프롬프트에서 SalesOrders.exe를 시작합니다. 처음으로 응용 프로그램을 실행하는 경우 구독 데이터베이스 및 구독이 생성되고 병합 에이전트가 시작되어 구독을 초기화합니다.

  4. 구독 데이터가 초기화된 후에 Sales Orders 폼이 로드되고 판매 사원 "adventure-works\garrett1"에 속하는 기존 주문 목록이 표시됩니다.

  5. Sales Orders 폼을 사용하여 다음과 같이 판매 데이터를 변경할 수 있습니다.

    • 판매 주문 정보를 편집합니다.
    • 판매 주문에 새로운 항목을 추가합니다.
    • 판매 주문에서 항목을 삭제합니다.
    • 판매 주문에서 항목의 주문 수량을 변경합니다.
  6. Synchronize 메뉴에서 동기화 방법을 선택한 후 구독을 동기화합니다.

  7. Synchronize When Connected를 선택하여 구독을 자동으로 동기화합니다(옵션). app.config 파일의 SyncWhenConnectedInterval 키를 사용해 백그라운드 동기화의 동기화 간격을 설정합니다.

    참고

    Microsoft Windows 2000 플랫폼에서 실행할 때는 Synchronize When Connected 기능을 사용할 수 없습니다. 자세한 내용은 주문 예제 구현 정보를 참조하십시오.

판매 주문 예제의 고급 동기화 옵션을 사용하려면

  1. Synchronize 메뉴의 Advanced에서 다음 옵션 중 하나를 선택합니다.

    • 다시 초기화 옵션을 선택해 구독을 다시 초기화합니다(옵션).

    • Web Synchronization Options를 선택한 후 보안 HTTPS 연결을 통해 웹 서버에 액세스하는 데 사용된 Windows 인증 자격 증명 및 인터넷 URL를 제공합니다(옵션). 이 옵션을 사용하려면 웹 동기화를 위한 IIS 서버가 이미 구성되어 있어야 합니다.

      참고

      웹 동기화에서는 업로드 전용 또는 다운로드 전용 동기화는 지원되지 않습니다. 웹 동기화를 설정하면 Only Upload Data 메뉴 항목이 해제됩니다.

    • Get Subscription Status를 선택하여 가장 최근의 병합 에이전트 세션 결과를 확인합니다(옵션).

예제 제거

다음 절차를 사용해 판매 주문 예제를 제거합니다.

구독만 제거하려면

  1. 구독자에서 다음 Transact-SQL 스크립트를 실행해 끌어오기 구독을 삭제합니다.

  2. 게시자에서 다음 Transact-SQL 스크립트를 실행해 끌어오기 구독의 등록을 취소합니다.

판매 주문 예제를 제거하려면

  1. 게시자에서 판매 주문 예제 스크립트의 설치 위치로 이동합니다. 기본값은 C:\Program Files\Microsoft SQL Server\100\Samples\Replication\Merge\SalesOrders\Scripts입니다.

  2. RemoveSalesOrdersSample.bat 배치 파일을 실행합니다.

  3. 프롬프트가 나타나면 "Y"를 입력하고 Enter 키를 눌러 게시자의 모든 복제 개체와 구독 데이터베이스의 모든 복제 개체를 제거하고 게시자에서 게시 및 배포를 제거합니다.

    중요

    이 스크립트를 사용하면 모든 복제 인프라가 제거됩니다. 이 게시자 또는 배포자를 사용하는 기타 배포를 만든 경우 DropAdvWorksSalesOrdersPublication.sql을 실행하지 않고 대신 AdvWorksSalesOrders 게시를 수동으로 제거해야 합니다. 자세한 내용은 SQL Server 온라인 설명서의 How to: Delete a Publication (SQL Server Management Studio) 또는 방법: 게시 삭제(복제 Transact-SQL 프로그래밍)을 참조하십시오.

  4. AdventureWorksLocal 데이터베이스의 구독자에서 sp_removedbreplication(Transact-SQL)을 실행합니다.

  5. 데이터베이스 컨텍스트를 master 데이터베이스로 변경하고 DROP DATABASE AdventureWorksLocal을 실행합니다.

참고

예제는 교육용으로만 제공되므로 프로덕션 환경에서 사용하기에 적합하지 않으며 프로덕션 환경에서 테스트되지 않았습니다. Microsoft에서는 이러한 예제에 대해 기술 지원을 제공하지 않습니다. 시스템 관리자 권한 없이 예제 응용 프로그램 및 어셈블리에서 프로덕션 SQL Server 데이터베이스 또는 보고서 서버에 연결하거나 이러한 데이터베이스 또는 보고서 서버에서 사용해서는 안 됩니다.

참고 항목

개념

예제(복제)

관련 자료

복제 프로그래밍 개념
개발자 정보 센터(복제)

도움말 및 정보

SQL Server 2008 지원 받기