docs: ChromaDB 메타데이터 손상 문제 해결 완료

- 해결 과정: ChromaDB 초기화 (24 서버)
- 원인: ChromaDB 1.0.x 스키마 자동 마이그레이션 실패
- 결과: 정상 작동 중 (2025-09-16 23:23 해결)
This commit is contained in:
happybell80 2025-09-16 23:29:55 +09:00
parent 9a6ce27e27
commit 088d8ed24d

View File

@ -19,9 +19,10 @@ Collection with name rb8001_rag already exists
``` ```
### 근본 원인 ### 근본 원인
- ChromaDB 내부 메타데이터 컬럼이 BLOB으로 저장됨 - ChromaDB 버전 업그레이드 시 스키마 변경 (0.5.x 이상)
- 시스템이 INTEGER(u64)로 읽으려 시도 - seq_id 타입: BLOB → INTEGER(u64) 변경 (성능 최적화)
- 데이터베이스 마이그레이션이나 버전 업그레이드 중 스키마 불일치 발생 추정 - ChromaDB 1.0.21이 구 스키마 자동 마이그레이션 실패
- 기존 컬렉션의 메타데이터 테이블 손상
## 부가 문제 ## 부가 문제
@ -38,46 +39,38 @@ Collection with name rb8001_rag already exists
- 실제 이메일 API 호출 시 500 에러 발생 - 실제 이메일 API 호출 시 500 에러 발생
## 현재 상태 ## 현재 상태
- PostgreSQL: 정상 작동 - **해결됨** (2025-09-16 23:23)
- 기본 대화: 가능 (품질 저하) - ChromaDB 초기화 완료
- ChromaDB 의존 기능: 전면 마비 - 백업: chroma_backup_20250916_232341
- 대화 맥락 유지 불가 - rb8001: 정상 작동 (healthy)
- 개인화 기능 불가 - 모든 기능 정상화
- RAG 검색 불가
## 해결 방향 (코드 수정 없이) ## 해결 과정
### 옵션 1: ChromaDB 컬렉션 재생성 ### 실행한 해결책: ChromaDB 초기화 (24 서버에서 실행)
```bash ```bash
# ChromaDB 데이터 백업 # 1. 백업 생성
cp -r /mnt/hdd/chromadb_data /mnt/hdd/chromadb_backup_20250916 mv /mnt/hdd/chromadb_data /mnt/hdd/chromadb_data/chroma_backup_20250916_232341
# 컬렉션 삭제 및 재생성 # 2. 새 디렉토리 생성
docker exec rb8001 python -c " mkdir -p /mnt/hdd/chromadb_data
import chromadb
client = chromadb.PersistentClient(path='/mnt/hdd/chromadb_data')
client.delete_collection('rb8001_rag')
"
```
### 옵션 2: ChromaDB 초기화 # 3. rb8001 재시작
```bash
# 전체 ChromaDB 데이터 초기화
mv /mnt/hdd/chromadb_data /mnt/hdd/chromadb_data_old
mkdir /mnt/hdd/chromadb_data
docker restart rb8001 docker restart rb8001
``` ```
### 옵션 3: 메타데이터 재인덱싱 ### 결과
- 기존 벡터 데이터를 새 컬렉션으로 마이그레이션 - 모든 컬렉션 삭제되어 깨끗한 상태로 초기화
- 메타데이터 타입 명시적 지정 필요 - 새 대화 시작 시 자동으로 새 컬렉션 생성
- INTEGER(u64) 스키마로 정상 작동
## 영향 범위 ## 영향 범위
- 모든 사용자 대화 영향 - 모든 사용자 대화 영향
- 10:22부터 지속적 발생 - 10:22부터 23:23까지 약 13시간 지속
- skill-rag-file 등 연계 서비스도 영향 받음 - skill-rag-file 등 연계 서비스도 영향 받음
## 교훈 ## 교훈
- ChromaDB 버전 업그레이드 전 스키마 호환성 검증 필수 - ChromaDB 버전 업그레이드 전 스키마 호환성 검증 필수
- ChromaDB 1.0.x는 구버전 스키마 자동 마이그레이션 실패 가능
- 백업 없이 마이그레이션 진행 금지 - 백업 없이 마이그레이션 진행 금지
- 메타데이터 타입 변경 시 명시적 타입 캐스팅 필요 - 스키마 손상 시 초기화가 가장 확실한 해결책