solr migration (export/import)

hjeun0111·2022년 9월 27일
0

Solr DB를 migration하는 방법을 간단히 정리함

필요한 이유?

. Solr가 로컬 파일시스템에 위치한다해서 색인된 collection을 원하는 서버로 복사는 할 수 있지만, 제대로 로딩이 되지 않음
. 동일한 환경을 갖춰놓고, Solr 를 구동해도 로딩시 색인DB는 내용은 사라질 것임

왜 제대로 구동이 되지 않는지 이유를 찾기보다, 그냥 정상적인 방법으로 migration 하도록 합시다!!

export 단계

아래 명령어 한줄이면 백업이 가능함
저장할 곳과 컬렉션이름, 저장할 폴더명과 같이 파라미터만 잘넣어서 사용해주면 됩니다.

$ curl "http://xxx.xxx.xxx.xxx:8983/solr/admin/collections?action=BACKUP&name=[저장할폴더명]&collection=[컬렉션이름]&location=[Local Path]"

예를 들어 아래처럼 실행하면 수행하면 /home/guest/tmp 폴더로 news 컬렉션이 저장됩니다.
curl "http://xxx.xxx.xxx.xxx:8983/solr/admin/collections?action=BACKUP&name=tmp&collection=news&location=/home/guest/"

import 단계

1. import할 서버에 이미 동일한 컬렉션이 있다면, 삭제합니다. (덮어쓰기가 안되요)
2. 컬렉션 업로드
(컬렉션 삭제 하는 명령어 입니다. import 할 서버에 컬렉션이 있을때 아래 명령어를 수행하고, 그렇지 않을경우 건너뛰세요)
$ curl "http://xxx.xxx.xxx.xxx:8983/solr/admin/collections?action=DELETE&name=[컬렉션이름]"

(import 명령어 입니다)
$ curl "http://xxx.xxx.xxx.xxx:8983/solr/admin/collections?action=RESTORE&name=[컬렉션이저장된폴더명]&location=[Local Path]&collection=[컬렉션이름]"

예를 들어 아래와 같이 명령어를 수행하면 /home/guest/tmp 폴더에 저장된 export된 컬렉션을 news 컬렉션 이름으로 import 함
curl "http://xxx.xxx.xxx.xxx:8983/solr/admin/collections?action=RESTORE&name=tmp&location=/home/guest/&collection=news"

그럼 이만!!

profile
I'm a software engineer

0개의 댓글