다음을 통해 공유


자습서: 복제를 위한 SQL Server 준비(게시자, 배포자, 구독자)

적용 대상: SQL Server

복제 토폴로지를 구성하려면 보안을 계획해야 합니다. 이 자습서에서는 복제 토폴로지의 보안을 강화하는 방법에 대해 설명합니다. 또한 데이터를 복제하는 첫 번째 단계인 배포를 구성하는 방법도 보여 집니다. 다른 자습서를 사용하기 전에 먼저 이 자습서를 완료해야 합니다.

참고 항목

서버 간 데이터를 안전하게 복제하려면 복제 보안을 위한 최선의 구현 방법의 모든 권장 사항을 구현해야 합니다.

학습할 내용

이 자습서에서는 최소 권한으로 복제를 안전하게 실행할 수 있도록 서버를 준비하는 방법을 설명합니다.

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

  • 복제용 Windows 계정을 만듭니다.
  • 스냅샷 폴더를 준비합니다.
  • 배포를 구성합니다.

필수 조건

이 자습서는 기본적인 데이터베이스 작업에는 익숙하지만 복제에 대한 경험은 풍부하지 않은 사용자를 위한 것입니다.

이 자습서를 완료하려면 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는 트랜잭션 복제에서 구독자가 될 수 없습니다.

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

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

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

참고 항목

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

이 자습서에 소요되는 예상 시간: 30분

복제용 Windows 계정을 만듭니다.

이 단원에서는 복제 에이전트를 실행할 Windows 계정을 만듭니다. 다음 에이전트에 대해 로컬 서버에 별도의 Windows 계정을 만듭니다.

에이전트 위치 계정 이름
스냅샷 에이전트 게시자 <machine_name>\repl_snapshot
로그 판독기 에이전트 게시자 <machine_name>\repl_logreader
배포 에이전트 게시자 및 구독자 <machine_name>\repl_distribution
병합 에이전트 게시자 및 구독자 <machine_name>\repl_merge

참고 항목

복제 자습서에서 게시자와 배포자는 SQL Server의 동일한 인스턴스(NODE1\SQL2016)를 공유합니다. 구독자 인스턴스(NODE2\SQL2016)가 원격입니다. 게시자와 구독자는 SQL Server의 동일한 인스턴스를 공유할 수 있지만 요구 사항은 아닙니다. 게시자와 구독자가 같은 인스턴스를 공유하는 경우 구독자에서는 계정을 만드는 단계를 수행하지 않아도 됩니다.

게시자에서 복제 에이전트에 대한 로컬 Windows 계정을 만들려면

  1. 게시자에서 제어판의 관리 도구에 있는 컴퓨터 관리를 엽니다.

  2. 시스템 도구에서 로컬 사용자 및 그룹을 확장합니다.

  3. 사용자를 마우스 오른쪽 단추로 클릭한 다음, 새 사용자를 선택합니다.

  4. 사용자 이름 상자에 repl_snapshot을 입력하고 암호 및 다른 관련 정보를 입력한 다음 만들기를 클릭하여 repl_snapshot 계정을 만듭니다.

  5. 이전 단계를 반복하여 repl_logreader, repl_distribution 및 repl_merge 계정을 만듭니다.

    복제 사용자 목록

  6. 닫기를 선택합니다.

구독자에서 복제 에이전트에 대한 로컬 Windows 계정을 만들려면

  1. 구독자에서 제어판의 관리 도구에 있는 컴퓨터 관리를 엽니다.

  2. 시스템 도구에서 로컬 사용자 및 그룹을 확장합니다.

  3. 사용자를 마우스 오른쪽 단추로 클릭한 다음, 새 사용자를 선택합니다.

  4. 사용자 이름 상자에 repl_distribution을 입력하고, 암호 및 다른 관련 정보를 입력한 다음, 만들기를 선택하여 repl_distribution 계정을 만듭니다.

  5. 이전 단계를 반복하여 repl_merge 계정을 만듭니다.

  6. 닫기를 선택합니다.

자세한 내용은 복제 에이전트 개요를 참조하세요.

스냅샷 폴더 준비

이 섹션에서는 게시 스냅샷을 만들고 저장하는 데 사용되는 스냅샷 폴더를 구성합니다.

스냅샷 폴더에 대한 공유를 만들고 사용 권한을 할당하기

  1. 파일 탐색기 SQL Server 데이터 폴더로 이동합니다. 기본 위치는 C:\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\Data입니다.

  2. 이름이 repldata인 새 폴더를 만듭니다.

  3. 이 폴더를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

    a. repldata 속성 대화 상자의 공유 탭에서 고급 공유를 선택합니다.

    b. 고급 공유 대화 상자에서 이 폴더 공유를 선택한 다음 사용 권한을 선택합니다.

    repldata 폴더를 공유하기 위한 선택 항목

  4. repldata 권한 대화 상자에서 추가를 선택합니다. 사용자, 컴퓨터, 서비스 계정 또는 그룹 선택 상자에 이전에 만든 스냅샷 에이전트 계정 이름(예: <Publisher_Machine_Name>\repl_snapshot)을 입력합니다. 이름 확인을 선택한 다음, 확인을 선택합니다.

    공유 권한을 추가할 선택 항목

  5. 6단계를 반복하여 이전에 생성된 다른 두 계정(<Publisher_Machine_Name>\repl_merge and <Publisher_Machine_Name>\repl_distribution)을 추가합니다.

  6. 세 개의 계정을 추가한 후 다음 권한을 할당합니다.

    • repl_distribution - 읽기
    • repl_merge: 읽기
    • repl_snapshot: 모든 권한

    각 계정에 대한 공유 권한

  7. 공유 권한이 올바르게 구성된 후 확인을 선택하여 repldata의 사용 권한 대화 상자를 닫습니다. 고급 공유 대화 상자에서 확인을 선택하여 닫습니다.

  8. repldata 속성 대화 상자에서 보안 탭을 선택하고 편집을 선택합니다.

  9. repldata 권한 대화 상자에서 추가를 선택합니다. 사용자, 컴퓨터, 서비스 계정 또는 그룹 선택 상자에 이전에 만든 스냅샷 에이전트 계정 이름(예: <Publisher_Machine_Name>\repl_snapshot)을 입력합니다. 이름 확인을 선택한 다음, 확인을 선택합니다.

    보안 권한을 추가할 선택 항목

  10. 이전 단계를 반복하여 배포 에이전트에 대한 사용 권한을 <Publisher_Machine_Name>\repl_distribution으로, 병합 에이전트에 대한 사용 권한을 <Publisher_Machine_Name>\repl_merge로 추가합니다.

  11. 다음의 사용 권한이 부여되었는지 확인합니다.

    • repl_distribution - 읽기
    • repl_merge: 읽기
    • repl_snapshot: 모든 권한

    복제 데이터에 대한 사용자 권한

  12. 공유 탭을 다시 선택하고 공유에 대한 네트워크 경로를 기록합니다. 이 경로는 나중에 스냅샷 폴더를 구성할 때 필요합니다.

  13. 확인을 선택하여 repldata 속성 대화 상자를 닫습니다.

자세한 내용은 스냅샷 폴더 보안 설정을 참조하세요.

배포 구성

이 섹션에서는 게시자에서 배포를 구성하고 게시 및 배포 데이터베이스에 대한 필수 사용 권한을 설정합니다. 배포자를 이미 구성한 경우 이 단원을 시작하기 전에 게시와 배포를 먼저 해제해야 합니다. 특히 프로덕션 환경에서 기존 복제 토폴로지를 유지해야 하는 경우에는 이 작업을 수행하지 마세요.

원격 배포자를 사용한 게시자 구성은 이 자습서의 범위를 벗어납니다.

게시자에서 배포 구성

  1. SQL Server Management Studio에서 게시자에 연결한 다음 해당 서버 노드를 확장합니다.

  2. 복제 폴더를 마우스 오른쪽 단추로 클릭하고 배포 구성을 선택합니다.

    바로 가기 메뉴에서

    참고 항목

    • 실제 서버 이름이 아닌 localhost를 사용하여 SQL Server에 연결한 경우 SQL Server가 localhost 또는 IP 주소에 연결할 수 없다는 경고 메시지가 표시됩니다. 경고 대화 상자에서 확인을 선택합니다. 서버에 연결 대화 상자에서 서버 이름localhost 또는 IP 주소에서 서버 이름으로 변경합니다. 그런 다음 연결을 선택합니다.
    • 현재 SSMS(SQL Server Management Studio) 18.0 이상에서는 IP 주소를 사용하여 배포자에 연결할 때 경고 메시지가 표시되지 않지만 여전히 유효하지 않은 알려진 문제가 있습니다. 배포자에 연결할 때 실제 서버 이름을 사용해야 합니다.

    배포 구성 마법사가 시작됩니다.

  3. 배포자 페이지에서 <'ServerName'>을(를) 자체 배포자로 사용합니다. SQL Server에서 배포 데이터베이스와 로그를 만듭니다.를 선택하고 다음을 클릭합니다. 그런 후 다음을 선택합니다.

    서버가 자체 배포자로 작동하도록 하는 옵션

  4. SQL Server 에이전트가 실행되고 있지 않으면 SQL Server 에이전트 시작 페이지에서 예, SQL Server 에이전트 서비스를 자동으로 시작하도록 구성합니다.를 선택합니다. 다음을 선택합니다.

  5. 스냅샷 폴더 상자에 \\<Publisher_Machine_Name>\repldata 경로를 입력하고 다음을 선택합니다. 이 경로는 공유 속성을 구성한 후 repldata 속성 폴더의 네트워크 경로에서 이전의 본 것과 일치해야 합니다.

  6. 마법사의 나머지 페이지에서 기본값을 적용합니다.

    마법사의 마지막 페이지

  7. 마침을 선택하여 배포를 사용하도록 설정합니다.

배포자를 구성할 때 다음과 같은 오류가 발생할 수 있습니다. SQL Server 에이전트 계정을 시작하는 데 사용된 계정이 시스템의 관리자가 아님을 나타냅니다. SQL Server 에이전트 수동으로 시작하거나, 기존 계정에 해당 권한을 부여하거나, SQL Server 에이전트 사용 중인 계정을 수정해야 합니다.

SQL Server 에이전트 구성하기 위한 오류 메시지

SQL Server Management Studio 인스턴스가 관리 권한으로 실행되는 경우 SSMS 내에서 SQL 에이전트를 수동으로 시작할 수 있습니다.

SSMS에서 에이전트의 바로 가기 메뉴에서

참고 항목

SQL 에이전트가 시각적으로 시작되지 않으면 SSMS에서 SQL Server 에이전트를 마우스 오른쪽 단추로 클릭하고 새로 고침을 클릭합니다. 여전히 중지된 상태인 경우 SQL Server 구성 관리자 수동으로 시작합니다.

데이터베이스 사용 권한 설정

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

    바로 가기 메뉴의

  2. 일반 페이지에서 검색을 선택합니다. 선택할 개체 이름 입력 상자에서 <Publisher_Machine_Name>\repl_snapshot을 입력한 후, 이름 확인을 선택한 다음, 확인을 선택합니다.

    개체 이름을 입력하기 위한 선택 영역

  3. 사용자 매핑 페이지의 이 로그인 목록에 매핑된 사용자에서 배포AdventureWorks2022 데이터베이스를 모두 선택합니다.

    데이터베이스 역할 멤버 자격 목록에서 두 데이터베이스의 로그인에 대한 db_owner 역할을 선택합니다.

    데이터베이스와 해당 역할 선택

  4. 확인을 선택하여 로그인을 만듭니다.

  5. 1~4단계를 반복하여 다른 로컬 계정(repl_distribution, repl_logreader 및 repl_merge)에 대한 로그인을 만듭니다. 이러한 로그인은 배포AdventureWorks 데이터베이스에서 db_owner 고정 데이터베이스 역할의 멤버인 사용자에게도 매핑되어야 합니다.

    개체 탐색기 네 개의 계정 모두 보기

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

다음 단계

이제 복제를 위해 서버를 성공적으로 준비했습니다. 다음 문서에서는 트랜잭션 복제를 구성하는 방법을 설명합니다.