REPL SNAPSHOT 에러 원인과 해결방법

By | 2025-07-28

REPL SNAPSHOT 작업(= Snapshot Agent)이 실패하는 경우는 권한 문제, 디스크 경로 문제, 데이터 문제, 리플리케이션 설정 오류 등 다양한 이유로 발생할 수 있습니다.

이 작업은 초기 스냅샷 파일(테이블 스키마 + 데이터)을 생성해서 구독자에게 배포할 준비를 하는 핵심 프로세스입니다. 아래에 자주 발생하는 원인과 해결 방법을 정리해 드릴게요.


✅ Snapshot Agent 실패 주요 원인 및 해결 방법

1. 권한 문제 (가장 흔함)

예:

  • Access is denied.
  • The process could not read file ...
  • The process could not connect to Subscriber ...

🛠️ 해결 방법:

  • Snapshot Agent 계정(SQL Server Agent에서 실행되는 계정)이 스냅샷 폴더에 읽기/쓰기 권한이 있는지 확인.
    • 스냅샷 폴더 예: \\SERVER\ReplData
  • 폴더가 네트워크 공유가 되어 있어야 함.
  • Snapshot Agent 계정이 Publisher와 Distributor 서버 둘 다에 접근 가능한 로컬 관리자 or 도메인 계정인지 확인.

2. 스냅샷 폴더 공유 문제

예:

  • The process could not access the file because it is being used by another process.
  • The snapshot folder path is invalid or inaccessible.

🛠️ 해결 방법:

  • SSMS → 퍼블리셔 → Publications → 해당 Publication 우클릭 → Properties → Snapshot → Snapshot Folder 경로 확인
  • 공유 폴더인지(\\서버이름\폴더) 확인하고, Snapshot Agent 계정에 접근 권한이 있는지 확인
  • 실제 경로에 접근해서 수동으로 테스트해 보기

3. 대량의 데이터/테이블로 인한 Timeout 또는 메모리 초과

예:

  • Timeout expired
  • There is insufficient system memory in resource pool 'internal' to run this query.

🛠️ 해결 방법:

  • 스냅샷 생성 시간 연장 (-QueryTimeout 옵션 늘리기)
  • 대량 데이터는 초기에는 필터링하거나 테이블 단위로 나눠서 복제
  • 필요 시 서버 메모리/디스크 자원 확인

4. 스키마 문제 (예: 제약 조건, FK 순서 오류)

예:

  • Violation of PRIMARY KEY, Cannot insert duplicate key
  • Error converting data type

🛠️ 해결 방법:

  • Foreign Key 제약이 잘 정의되어 있는지 확인
  • Circular FK가 있으면 Publication 설정에서 “지연된 FK 적용” 옵션 사용
  • 초기 데이터가 문제될 수 있으니, 클린 DB에서 테스트

5. 리플리케이션 구성 오류

예:

  • The process could not execute 'sp_replcmds'
  • Publication does not exist
  • The snapshot agent failed to prepare the snapshot folder.

🛠️ 해결 방법:

  • Publication 및 구독 구성 확인
  • Publication 재생성 (중요한 경우 스크립트 백업 먼저!)
  • 배포자(distributor) 초기화 재설정 고려

🔍 진단을 위한 에이전트 로그 확인 방법

  1. SSMS → SQL Server Agent → Jobs → "Snapshot Agent - <PublicationName>" 선택
  2. 마우스 오른쪽 → View History
  3. 오류 메시지 및 스텝 실패 위치 확인

✅ Snapshot Agent 수동 실행 테스트 (에러 로그 직접 확인)

replsnapshot.exe -Publisher [PublisherName] -PublisherDB [DBName] -Publication [PublicationName] -Distributor [DistributorName] -DistributorSecurityMode 1

이 명령어는 명령줄에서 Snapshot Agent를 수동으로 실행하며, 구체적인 오류 메시지를 더 자세히 보여줍니다.


✳️ Snapshot Agent 설정 확인 경로

  • SSMS → Replication → Local Publications → 해당 Publication 우클릭 → Properties
    • Snapshot → Folder
    • Agent Security → Snapshot Agent 실행 계정
  • SQL Server Agent → Job → Snapshot Agent → Steps → 실행 명령 확인

📌 요약: 가장 흔한 원인 & 빠른 점검 순서

우선순위점검 항목설명
✅ 1Snapshot Agent 계정 권한스냅샷 폴더 접근 가능한지 확인
✅ 2스냅샷 폴더 유효성공유된 네트워크 경로인지 확인
✅ 3SQL Agent Job 히스토리구체적인 에러 메시지 확인
✅ 4Publication 설정제약 조건, FK, 대용량 데이터 여부 확인
✅ 5서버 리소스메모리, 디스크, 네트워크 사용률 확인

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다