이 문서는 LuckPerms의 저장소 선택과 데이터 이전을 다룬다.

LuckPerms는 권한 데이터를 어디에 저장할지 선택할 수 있다. 서버가 한 대인지 여러 대인지에 따라 선택이 달라지며, 저장소 종류를 바꾸는 것만으로 기존 데이터가 옮겨가지는 않는다.

저장소 종류

설정 파일의 storage-method에서 지정한다.[1]

종류 적합한 경우
H2 기본값. 서버 한 대에서 별도 준비 없이 사용
SQLite 서버 한 대. 파일 기반
MySQL · MariaDB 여러 서버가 데이터를 공유할 때
PostgreSQL 여러 서버. 기존 인프라가 있는 경우
MongoDB 여러 서버
YAML · JSON · HOCON 파일로 직접 열어 확인해야 할 때

서버가 한 대라면 기본값을 바꿀 이유가 거의 없다. 프록시 네트워크로 확장할 때 SQL 계열로 옮기는 것이 일반적인 전환 시점이다.

저장소 이전

저장소를 바꿀 때는 내보내고 다시 가져온다.

  1. 현재 상태를 내보낸다.
    /lp export backup-20260806
  2. 서버를 정지한다.
  3. 설정 파일의 storage-method와 접속 정보를 새 저장소로 바꾼다.
  4. 서버를 시작한다. 이 시점의 데이터는 비어 있다.
  5. 가져온다.
    /lp import backup-20260806

내보내기 파일은 반드시 별도 위치에 보관한다. 이전에 실패하면 이 파일이 유일한 복구 수단이다.

--replace를 붙이면 기존 데이터를 교체하고, 붙이지 않으면 병합한다. 이전 작업에서는 대상이 비어 있으므로 차이가 없지만, 이미 데이터가 있는 서버에 가져올 때는 결과가 크게 달라진다.

다른 권한 플러그인에서 이전

PermissionsEx, GroupManager, bPermissions 등에서 옮겨오는 경우 전용 명령을 사용한다.

/lp migration <플러그인>

이전 플러그인이 설치되어 있고 데이터를 읽을 수 있는 상태여야 한다. 이전 후에는 두 플러그인을 동시에 두지 말고 이전 플러그인을 제거한다. 권한 플러그인이 둘 이상이면 어느 쪽이 판정하는지 예측할 수 없다.

이전 결과는 그대로 신뢰하지 말고 구조를 점검한다. 오래된 플러그인에서 넘어온 구성은 사용자에게 권한이 직접 붙어 있는 경우가 많다.

여러 서버 동기화

SQL 저장소를 공유하더라도 각 서버는 데이터를 캐시하므로, 변경 내용이 즉시 전파되지는 않는다. 메시징 서비스를 설정하면 변경 시점에 다른 서버로 알린다.[1]

설정 항목은 messaging-service이며 Redis, RabbitMQ, SQL, 플러그인 메시지 등을 선택할 수 있다. 설정하지 않으면 각 서버에서 /lp sync를 직접 실행해야 한다.

즉시 전파가 필요할 때는 다음을 사용한다.

/lp networksync

백업

권한 데이터는 손실 시 복구가 어렵다. 다음 시점에는 반드시 내보내기를 남긴다.

  • 그룹 구조를 크게 바꾸기 전
  • /lp import --replace 실행 전
  • 저장소를 이전하기 전
  • 서버 판을 올리기 전

내보내기 파일은 사람이 읽을 수 있는 형식이므로, 문제가 생겼을 때 어떤 값이 있었는지 직접 확인할 수 있다.

같이 보기

각주

  1. 1.0 1.1 Storage types, LuckPerms. 2026년 8월 6일 확인.