Jellyfin의 데이터베이스 볼륨이 가득 찬 후에는 새 쓰기를 중지하고, 데이터베이스와 WAL 파일을 보존하며, 안전하게 공간을 확보한 다음, 일반 작업을 재개하기 전에 데이터베이스를 검증하세요.
볼륨의 여유 공간이 0에 도달한 후 Jellyfin이 시작되지 않거나 SQLite 오류를 보고하거나 사용자가 사라진 상태로 열리나요? 데이터베이스 파일을 즉시 삭제하거나 정리 작업을 실행하지 마세요. 먼저 볼륨, 여유 바이트, 데이터베이스 파일 이름, 컨테이너 상태, 마지막으로 정상 작동이 확인된 백업을 기록하세요.
장애가 쓰기 폭주로 이어지지 않도록 중지하기
Jellyfin과 동일한 볼륨에 쓰기 작업을 수행하는 모든 가져오기 도구, 스캐너 또는 사이드카를 중지하세요. inode를 포함하여 어떤 마운트가 가득 찼는지 확인하고, 기본 데이터베이스와 모든 `-wal` 또는 `-shm` 파일을 보존하세요. 디스크가 가득 차면 구성 파일이 비어 있거나 일부만 기록될 수 있습니다. 버전별 장애 사례를 보면 공간만 확보하는 것으로는 시작 문제가 해결되지 않을 수 있습니다(볼륨 전체 사용 복구 사례).
영구 상태를 복사한 후에만 폐기 가능한 로그, 완료된 트랜스코딩 파일 또는 재생성 가능한 것으로 확인된 캐시에서 공간을 확보하세요. 첫 단계로 데이터베이스를 삭제하지 마세요.
정리하기 전에 데이터베이스 크기, WAL 파일, 로그, 캐시 및 남은 여유 공간을 기록하세요. 이를 통해 볼륨이 데이터베이스 증가, 트랜스코딩 출력, 로그 또는 다른 컨테이너 때문에 가득 찼는지 파악할 수 있습니다.
복구를 시도하기 전에 데이터베이스 무결성 확인하기
Jellyfin을 중지한 상태에서 데이터베이스 사본을 대상으로 작업하세요. 환경에서 사용할 수 있는 SQLite 도구로 무결성 검사를 실행하고, 로그에서 “디스크 가득 참”, 손상된 이미지 또는 열 수 없음 오류를 확인하세요. 검사가 통과하면 공간을 확보하고 한 번 다시 시작한 뒤 사용자, 라이브러리 및 재생 기능을 확인하세요.
데이터베이스가 손상된 경우 마지막으로 정상 작동이 확인된 백업을 먼저 복원하세요. 통제된 복구 절차에서는 사본에 SQLite 복구 도구를 사용할 수 있지만, 이는 검증된 백업을 대체하지 않으며 실행 중인 데이터베이스를 대상으로 수행해서는 안 됩니다(사본 기반 복구 절차).
재생성 가능한 데이터만 삭제해 공간을 확보한 후에는 데이터베이스 파일이 함께 존재하며 읽을 수 있는지 확인하세요. 이 확인 전에 다시 시작하면 불완전한 쓰기가 두 번째 장애로 이어질 수 있습니다.
볼륨이 같은 한계에 도달하지 않도록 방지하기
캐시와 트랜스코딩 출력을 모니터링되는 경로로 이동하고, 최소 여유 공간 임계값보다 높은 지점에 알림을 설정하며, 로그 보존 기간과 스캔 일정을 검토하세요. 애플리케이션 상태를 대용량 미디어와 분리하여 라이브러리 증가로 데이터베이스 볼륨이 가득 차지 않도록 하세요.
두 번 다시 시작하고, 원래의 스캔 또는 재생을 실행한 다음, 다음 백업이 완료되는지 확인하세요. 무결성 검사가 실패하거나 데이터베이스를 복원할 수 없거나, 확인된 쓰기 주체 없이 볼륨이 다시 가득 차면 에스컬레이션하세요.
무결성 검사가 통과하면 한 번 다시 시작하고 원래 사용자 및 라이브러리 작업을 실행하세요. 검사에 실패하면 손상된 데이터베이스를 반복해서 열지 말고 사본에서 작업하거나 복원하세요.
복구를 입증하고 볼륨이 다시 가득 차지 않도록 방지하기
복구 후 콜드 재시작, 스캔 한 번, 재생 세션 한 번 및 백업을 실행하세요. 작업이 활성화된 동안 데이터베이스 볼륨에 모니터링되는 여유 공간 여유분이 있는지 확인하세요.
사용자, 라이브러리, 예약된 작업 및 재생 기능이 모두 정상적으로 돌아오면 복구 결과를 유지하세요. 공간과 inode에 대한 알림을 추가하고, 캐시 또는 로그를 데이터베이스 볼륨을 점유할 수 없는 역할의 경로로 이동하세요.
확인된 쓰기 주체 없이 볼륨이 다시 가득 차거나, 무결성 검사가 실패하거나, 복원된 데이터베이스에서 사용자 또는 상태가 손실되면 에스컬레이션하세요.
지원 및 팁
더 읽어보기

동시에 실행되는 컨테이너에 맞게 Jellyfin 데이터베이스 연결을 최적화하는 방법
데이터베이스 소유자는 한 명으로 시작하고 SQLite의 잠금 동작을 측정하세요. 동시성과 복구 요구 사항이 복잡성을 감수할 만한 경우에만 다른 백엔드를 추가하세요.

Jellyfin에서 중복 작업 또는 가져오기를 방지하는 방법
중복 작업은 대개 스케줄러가 겹치거나 작성자가 둘 이상일 때 발생합니다. 담당자 한 명, 경로 하나, 완료 확인 하나를 지정하세요.

Jellyfin은 왜 누락된 파일을 잘못된 소유자로 다시 생성하나요?
잘못된 소유권은 대개 사용자 식별자 불일치나 다른 가져오기 경로에서 발생합니다. 권한을 변경하기 전에 현재 컨테이너 사용자를 확인하세요.

