플렉스미디어서버(PlexMediaServer)에서 시청 기록 및 평점을 백업, 복원하는 방법
플렉스(Plex)의 시청 기록, 평점
플렉스서버에서는 사용자의 시청기록과 평점을 기록합니다. 흔하지 않지만 만약 서버를 재구성하거나 다른 서버로 옮길 때 시청기록, 평점만 따로 백업, 복원해야 할 때가 있습니다.
Plex의 기본 기능에도 시청기록 동기화 기능이 있지만 이는 Plex의 에이전트를 사용할 때만 지원됩니다.
그래서 시청기록, 평점을 따로 백업, 복원하려면 DB에서 해당 부분을 추출해야 합니다.
플렉스 공식홈페이지 팁
이와 관련된 팁으로 공식 홈페이지에 나와있는 내용이 있습니다.
하지만 위의 팁은 다음과 같은 오류가 날 때가 있습니다. 새 DB에 시청기록이 존재하지 않을 때는 괜찮지만 기록이 존재한다면 덮어씌우지 못해서 오류가 발생합니다.
위의 팁을 보완해서 기존 데이터를 덮어씌우면서 복원하는 법을 설명합니다.
플렉스 시청기록/평점 백업 방법
이 팁은 우분투를 기준으로 설명합니다. 윈도우도 sqlite3.exe파일을 통해 같은 방식으로 가능할 거라 생각합니다.(윈도우는 클라이언트 접속제한이 있어서 플렉스 서버로 안써봤습니다.)
sqlite3 설치
플렉스의 DB는 sqlite를 사용하기 때문에 수정하려면 sqlite 앱이 필요합니다. 없다면 다음 명령으로 설치해 줍니다.
sudo apt install sqlite3
플렉스 DB폴더로 이동
다음으로 플렉스의 DB가 있는 폴더로 이동합니다.
cd "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Databases"
plexmediaserver 서비스 중지
systemctl stop plexmediaserver
plexmediaserver DB백업
ls -ahl
명령어로 DB폴더의 파일들을 살펴봅니다. 저의 경우는 다음과 같이 나옵니다.
.db-shm
, .db-wal
파일은 DB에 실시간 접속할 때 생성되는 파일이니 무시해도 되고 com.plexapp.plugins.library.db
파일을 백업해 둡니다.
cp com.plexapp.plugins.library.db com.plexapp.plugins.library.backup.db
나중에 문제가 생기면 com.plexapp.plugins.library.backup.db
파일의 이름을 com.plexapp.plugins.library.db
로 바꾸고 플렉스미디어서버를 다시 시작하면 이전으로 돌아갑니다.
플렉스 시청기록/평점 백업 파일 작성
다음 명령어를 실행해서 Plexmediaserver의 시청기록/평점 데이터를 추출해서 settings.sql
이라는 파일을 새로 작성합니다.
백업 파일 수정
생성된 settings.sql
파일을 그대로 사용하면 덮어씌우기 불가 오류가 나기 때문에 파일을 약간 수정합니다. 수정된 settings_replace.sql
파일이 생성됩니다.
이렇게 하면 settings_replace.sql
파일에 시청기록/평점 데이터를 보관할 수 있습니다.
플렉스 시청기록/평점 복원 방법
다음은 플렉스의 시청기록/평점 복원방법입니다.
플렉스 DB폴더로 이동
다음으로 플렉스의 DB가 있는 폴더로 이동합니다.
cd "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Databases"
plexmediaserver 서비스 중지
systemctl stop plexmediaserver
settings.sql 파일을 DB에 복사
다음 명령어를 실행하면 settings_replace.sql
파일의 내용이 DB파일인 com.plexapp.plugins.library.db
파일에 덮어씌워집니다.
plexmediaserver 서비스 재시작
다음 명령어를 통해 plexmediaserver를 재시작하면 시청기록/평점 데이터가 복원된 채로 플렉스가 시작됩니다.
systemctl start plexmediaserver