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) 초기화 재설정 고려
🔍 진단을 위한 에이전트 로그 확인 방법
- SSMS → SQL Server Agent → Jobs →
"Snapshot Agent - <PublicationName>"
선택 - 마우스 오른쪽 → View History
- 오류 메시지 및 스텝 실패 위치 확인
✅ 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 → 실행 명령 확인
📌 요약: 가장 흔한 원인 & 빠른 점검 순서
우선순위 | 점검 항목 | 설명 |
---|---|---|
✅ 1 | Snapshot Agent 계정 권한 | 스냅샷 폴더 접근 가능한지 확인 |
✅ 2 | 스냅샷 폴더 유효성 | 공유된 네트워크 경로인지 확인 |
✅ 3 | SQL Agent Job 히스토리 | 구체적인 에러 메시지 확인 |
✅ 4 | Publication 설정 | 제약 조건, FK, 대용량 데이터 여부 확인 |
✅ 5 | 서버 리소스 | 메모리, 디스크, 네트워크 사용률 확인 |