docs: ChromaDB 메타데이터 손상 문제 해결 완료
- 해결 과정: ChromaDB 초기화 (24 서버) - 원인: ChromaDB 1.0.x 스키마 자동 마이그레이션 실패 - 결과: 정상 작동 중 (2025-09-16 23:23 해결)
This commit is contained in:
parent
9a6ce27e27
commit
088d8ed24d
@ -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는 구버전 스키마 자동 마이그레이션 실패 가능
|
||||||
- 백업 없이 마이그레이션 진행 금지
|
- 백업 없이 마이그레이션 진행 금지
|
||||||
- 메타데이터 타입 변경 시 명시적 타입 캐스팅 필요
|
- 스키마 손상 시 초기화가 가장 확실한 해결책
|
||||||
Loading…
x
Reference in New Issue
Block a user