자습서: 두 개의 완전히 연결된 서버 간 복제 구성(트랜잭션)

적용 대상:SQL Server

트랜잭션 복제본(replica)은 지속적으로 연결된 서버 간에 데이터를 이동하는 문제에 대한 좋은 솔루션입니다. 복제 마법사를 사용하여 복제본(replica) 토폴로지 구성 및 관리를 쉽게 수행할 수 있습니다.

이 자습서에서는 지속적으로 연결된 서버에 대한 트랜잭션 복제본(replica) 토폴로지를 구성하는 방법을 보여 줍니다. 트랜잭션 복제본(replica)tion의 작동 방식에 대한 자세한 내용은 트랜잭션 복제본(replica) 개요를 참조하세요.

학습할 내용

이 자습서에서는 트랜잭션 복제본(replica) 사용하여 한 데이터베이스에서 다른 데이터베이스로 데이터를 게시하는 방법을 설명합니다.

이 자습서에서는 다음을 수행하는 방법을 배우게 됩니다.

  • 트랜잭션 복제본(replica) 통해 게시자를 만듭니다.
  • 트랜잭션 게시자에 대한 구독자를 만듭니다.
  • 구독의 유효성을 검사하고 대기 시간을 측정합니다.

필수 조건

이 자습서는 기본 데이터베이스 작업에 익숙하지만 복제본(replica) 경험이 제한된 사용자를 위한 것입니다. 이 자습서를 시작하기 전에 자습서: 복제용 SQL 서버 준비를 완료해야 합니다.

이 자습서를 완료하려면 SQL Server, SSMS(SQL Server Management Studio) 및 AdventureWorks 데이터베이스가 필요합니다.

  • 게시자 서버(원본)에서 다음을 설치합니다.

    • SQL Server Express 또는 SQL Server Compact를 제외한 모든 버전의 SQL Server. 이들 버전은 복제 게시자가 될 수 없습니다.
    • 샘플 데이터베이스입니다 AdventureWorks2022 . 보안을 강화하기 위해 샘플 데이터베이스는 기본적으로 설치되지 않습니다.
  • 구독자 서버(대상)에서 SQL Server Compact를 제외한 모든 버전의 SQL Server를 설치합니다. SQL Server Compact는 트랜잭션 복제본(replica) 구독자가 될 수 없습니다.

  • SQL Server Management Studio를 설치합니다.

  • SQL Server 2017 Developer Edition을 설치 합니다.

  • AdventureWorks 샘플 데이터베이스를 다운로드합니다. SSMS에서 데이터베이스를 복원하는 방법에 대한 지침은 데이터베이스 복원을 참조하세요.

참고 항목

  • 두 개 이상의 버전이 떨어져 있는 SQL Server 인스턴스에서는 복제가 지원되지 않습니다. 자세한 내용은 복제 토폴로지에서 지원되는 SQL Server 버전을 참조 하세요.
  • SQL Server Management Studio에서 sysadmin 고정 서버 역할의 멤버인 로그인을 사용하여 게시자 및 구독자에 연결해야 합니다. 이 역할에 대한 자세한 내용은 서버 수준 역할을 참조 하세요.

이 자습서를 완료하는 데 소요되는 예상 시간: 60분

트랜잭션 복제를 위한 게시자 구성

이 섹션에서는 SQL Server Management Studio를 사용하여 샘플 데이터베이스에 Product 테이블의 필터링된 하위 집합을 게시하여 트랜잭션 게시를 AdventureWorks2022 만듭니다. 또한 배포 에이전트 사용하는 SQL Server 로그인을 PAL(게시 액세스 목록)에 추가합니다.

게시 만들기 및 문서 정의

  1. SQL Server Management Studio에서 게시자에 커넥트 서버 노드를 확장합니다.

  2. SQL Server 에이전트를 마우스 오른쪽 단추로 클릭한 다음, 시작을 선택합니다. SQL Server 에이전트는 게시를 만들기 전에 실행되어야 합니다. 이 단계에서 에이전트를 시작하지 않으면 SQL Server 구성 관리자에서 수동으로 시작해야 합니다.

  3. 복제 폴더를 확장하고 로컬 게시 폴더를 마우스 오른쪽 단추로 클릭한 다음 새 게시를 선택합니다. 이 단계에서는 새 게시 마법사를 시작합니다.

    Selections for starting the New Publication Wizard

  4. 게시 데이터베이스 페이지에서 AdventureWorks2022를 선택한 후, 다음을 선택합니다.

  5. 게시 유형 페이지에서 트랜잭션 게시를 선택한 다음 다음을 선택합니다.

  6. 문서 페이지에서 테이블 노드를 확장하고 제품 확인란을 선택합니다. 그런 다음 제품을 확장하고 ListPrice및 StandardCost 옆에 있는 검사 상자를 지웁니다. 다음을 선택합니다.

  7. 테이블 행 필터 페이지에서 추가를 선택합니다.

  8. 필터 추가 대화 상자에서 금고tyStockLevel 열을 선택합니다. 오른쪽 화살표를 선택하여 필터 쿼리의 필터 문 WHERE 절에 열을 추가합니다. 그런 다음 다음과 같이 WHERE 절 한정자를 수동으로 입력합니다.

    WHERE [SafetyStockLevel] < 500  
    

  9. 확인을 선택하고 다음을 선택합니다.

  10. 스냅샷 즉시 선택하고 구독 검사 초기화할 수 있는 스냅샷 유지하고 다음을 선택합니다.

  11. 에이전트 보안 페이지에서 스냅샷 에이전트의 보안 설정 사용 확인란을 선택 취소합니다.

    스냅샷 에이전트에 대한 보안 설정을 선택합니다. 프로세스 계정 상자에 Publisher_Machine_Name>\repl_스냅샷입력<하고 이 계정의 암호를 입력한 다음 확인을 선택합니다.

  12. 이전 단계를 반복하여 Publisher_Machine_Name>\repl_logreader 로그 판독기 에이전트의 프로세스 계정으로 설정합니다.< 그런 다음 확인을 선택합니다.

  13. 마법사 완료 페이지의 게시 이름 상자에 AdvWorksProductTrans입력하고 마침을 선택합니다.

  14. 게시를 만든 후 닫기를 선택하여 마법사를 완료합니다.

게시를 만들려고 할 때 SQL Server 에이전트 실행되고 있지 않으면 다음 오류가 발생할 수 있습니다. 이 오류는 게시가 성공적으로 만들어졌지만 스냅샷 에이전트를 시작하지 못했음을 나타냅니다. 이 경우 SQL Server 에이전트 시작한 다음 스냅샷 에이전트 수동으로 시작해야 합니다. 다음 섹션에서는 지침을 제공합니다.

Warning that the Snapshot Agent has failed to start

스냅샷 생성의 상태 보기

  1. SQL Server Management Studio에서 게시자에 커넥트 서버 노드를 확장한 다음 복제 폴더입니다.

  2. 로컬 게시 폴더에서 AdvWorksProductTrans를 마우스 오른쪽 단추로 클릭한 다음 스냅샷 에이전트 상태 보기를 선택합니다.
    Command on the shortcut menu for viewing the Snapshot Agent status

  3. 게시에 대한 스냅샷 에이전트 작업의 현재 상태 나타납니다. 다음 섹션을 진행하기 전에 스냅샷 작업이 성공했는지 확인합니다.

게시를 만들 때 SQL Server 에이전트 실행되지 않은 경우 게시에 대한 스냅샷 에이전트 상태 검사 때 스냅샷 에이전트 실행되지 않은 것을 볼 수 있습니다. 이 경우 시작을 선택하여 스냅샷 에이전트 시작합니다.

여기에 오류가 표시되면 문제 해결 스냅샷 에이전트 오류를 참조하세요.

PAL에 배포 에이전트 로그인 추가

  1. SQL Server Management Studio에서 게시자에 커넥트 서버 노드를 확장한 다음 복제 폴더입니다.

  2. 로컬 게시 폴더에서 AdvWorksProductTrans를 마우스 오른쪽 단추로 클릭한 다음 속성을 선택합니다. 게시 속성 대화 상자가 나타납니다.

    a. 게시 액세스 목록 페이지를 선택하고 추가를 선택합니다.
    b. 게시 액세스 추가 대화 상자<에서 Publisher_Machine_Name>\repl_distribution 선택하고 확인을 선택합니다.

    Selections for adding a login to the publication access list

자세한 내용은 복제 프로그래밍 개념을 참조 하세요.

트랜잭션 게시에 구독 만들기

이 섹션에서는 이전에 만든 게시에 구독자를 추가합니다. 이 자습서에서는 원격 구독자(NODE2\SQL2016)를 사용하지만 게시자에 로컬로 구독을 추가할 수도 있습니다.

구독 만들기

  1. SQL Server Management Studio에서 게시자에 커넥트 서버 노드를 확장한 다음 복제 폴더입니다.

  2. 로컬 게시 폴더에서 AdvWorksProductTrans 게시를 마우스 오른쪽 단추로 클릭한 다음 새 구독을 선택합니다. 새 구독 마법사가 시작됩니다.

    Selections to start the New Subscription Wizard

  3. 게시 페이지에서 AdvWorksProductTrans를 선택한 후, 다음을 선택합니다.

  4. 배포 에이전트 위치 페이지에서 배포자에서 모든 에이전트 실행을 선택한 다음, 다음을 선택합니다. 끌어오기 및 밀어넣기 구독에 대한 자세한 내용은 게시 구독을 참조 하세요.

  5. 구독자 페이지에서 구독자 인스턴스 이름이 표시되지 않는 경우 구독자 추가를 선택한 다음, 드롭다운 목록에서 SQL Server 구독자 추가를 선택합니다. 이 단계에서는 서버에 대한 커넥트 대화 상자를 엽니다. 구독자 인스턴스 이름을 입력한 다음 커넥트 선택합니다.

    구독자가 추가된 후 구독자의 인스턴스 이름 옆에 있는 검사 상자를 선택합니다. 그런 다음, 구독 데이터베이스에서 새 데이터베이스를 선택합니다.

  6. 새 데이터베이스 대화 상자가 나타납니다. 데이터베이스 이름 상자에 ProductReplica입력하고 확인을 선택한 다음 다음을 선택합니다.

    Entering a name for the subscription database

  7. 배포 에이전트 보안 페이지에서 줄임표(...) 단추를 선택합니다. 프로세스 계정 상자에 Publisher_Machine_Name>\repl_distribution 입력<하고, 이 계정의 암호를 입력하고, 확인을 선택한 다음, 다음을 선택합니다.

    Distribution account information in the

  8. 마침을 선택하여 다시 기본 페이지에서 기본값을 적용하고 마법사를 완료합니다.

구독자에서 데이터베이스 사용 권한 설정

  1. SQL Server Management Studio에서 구독자에게 커넥트. 보안을 확장하고 로그인을 마우스 오른쪽 단추로 클릭한 다음 새 로그인을 선택합니다.

    a. 일반 페이지의 로그인 이름 아래에서 검색을 선택하고 Subscriber_Machine_Name\repl_distribution> 대한 로그인을 <추가합니다.

    b. 사용자 매핑 페이지에서 ProductReplica 데이터베이스에 대한 로그인 db_owner 멤버 자격을 부여합니다.

    Selections for configuring the login on the subscriber

  2. 확인을 선택하여 새 로그인 대화 상자를 닫습니다.

구독의 동기화 상태 보기

  1. SQL Server Management Studio의 게시자에 커넥트. 서버 노드를 확장한 다음, 복제 폴더를 확장합니다.

  2. 로컬 게시 폴더에서 AdvWorksProductTrans 게시를 확장하고 ProductReplica 데이터베이스에서 구독을 마우스 오른쪽 단추로 클릭한 다음 동기화 상태 보기를 선택합니다. 구독의 현재 동기화 상태가 표시됩니다.

    Selections for opening the

  3. AdvWorksProductTrans 아래에 구독이 표시되지 않는 경우 F5 키를 선택하여 목록을 새로 고칩니다.

자세한 내용은 다음을 참조하세요.

복제 대기 시간 측정

이 섹션에서는 추적 프로그램 토큰을 사용하여 변경 내용이 구독자에 복제본(replica) 있는지 확인하고 대기 시간을 확인합니다. 대기 시간은 게시자에서 변경한 내용이 구독자에게 표시되는 데 걸리는 시간입니다.

  1. SQL Server Management Studio의 게시자에 커넥트. 서버 노드를 확장하고 복제 폴더를 마우스 오른쪽 단추로 클릭한 다음 복제 모니터 시작을 선택합니다.

  2. 왼쪽 창에서 게시자 그룹을 확장하고 게시자 인스턴스를 확장한 다음 AdvWorksProductTrans 게시를 선택합니다.

    a. 추적 프로그램 토큰 탭을 선택합니다.
    b. 추적 프로그램 삽입을 선택합니다.
    c. 게시자에서 배포자로 연결 시 대기 시간, 배포자에서 구독자로 연결 시 대기 시간, 총 대기 시간열에서 추적 프로그램 토큰에 대한 경과 시간을 확인합니다. 보류값은 토큰이 지정된 지점에 도달하지 않음을 나타냅니다.

    Information for the tracer token

자세한 내용은 다음을 참조하세요.

다음 단계

트랜잭션 복제를 위해 게시자와 구독자를 모두 성공적으로 구성했습니다. 이제 게시자의 Product 테이블에서 데이터를 삽입, 업데이트 또는 삭제할 수 있습니다. 그런 다음 구독자에서 Product 테이블을 쿼리하여 복제본(replica) 변경 내용을 볼 수 있습니다.

다음 문서에서는 병합 복제본(replica) 구성 방법을 설명합니다.