728x90
Snapshot 저장
1. snapshot용 repository 생성
/config/elasticsearch.yml
path.repo: ["/usr/share/elasticsearch/backup"]
2. elasticsearch 재시작
3. repository 등록
- elasticsearch 서버에 생성한 repository를 등록한다
PUT /_snapshot/my_backup
{
"type": "fs",
"settings": {
"compress": true,
"location": "/usr/share/elasticsearch/backup"
}
}
location
- snapshot의 위치
compress
mapping
과settings
메타 데이터만 압축
4. Repository 등록 확인
- repository가 잘 생성되었는지 확인한다
- 아래와 같은 값이 반환되면 repository 등록에 성공한 것이다
GET /_snapshot/my_backup
{
"my_backup": {
"type": "fs",
"settings": {
"location": "/usr/share/elasticsearch/backup"
}
}
}
5. 현재 index 확인
- snapshot으로 만들 index들을 확인한다
- snapshot용으로 만든 test 인덱스로 snapshot을 진행하도록 할 것이다
GET _cat/indices
6. 스냅샷 생성
PUT /_snapshot/my_backup/bgpark_20170206?wait_for_completion=true
{
"indices": "test",
"ignore_unavailable": true,
"include_global_state": true
}
스냅샷을 생성하면 repository 경로에 아래 폴더들이 생성된다
해당 폴더를 압축하여 원하는 서버로 옮겨주면 된다
- incompatible-snapshot
- index-0
- index.latest
- indices
- meta-*
- snap-*
Snapshot 불러오기
앞서 생성한 클러스터의 snapshot을 다른 서버의 클러스터로 불러온다
1. snapshot용 repository 생성
- 앞서 생성한 클러스터의 snapshot을 복사하기 전에 Repository 생성한다
/config/elasticsearch.yml
path.repo: ["/usr/share/elasticsearch/backup"]
2. elasticsearch 재기동
3. repository 등록
- elasticsearch 서버에 생성한 repository를 등록한다
PUT /_snapshot/my_backup
{
"type": "fs",
"settings": {
"compress": true,
"location": "/usr/share/elasticsearch/backup"
}
}
4. Repository 등록 확인
- repository가 잘 생성되었는지 확인한다
GET /_snapshot/my_backup
5. snapshot 불러오기
- repository 경로에 생성한 snapshot을 불러온다
6. snapshot 확인
- 아래와 같이 snapshot이 잘 불러온 것을 알 수 있다
GET /_snapshot/my_backup/bgpark_20210311/_status
7. snapshot 복원
- 마지막으로 불러온 snapshot을 index로 복원한다
POST /_snapshot/my_backup/bgpark_20210311/_restore
{
"indices": "test",
}
8. index 확인
- 아래 명령어로 snapshot의 index가 잘 복원되었음을 확인할 수 있다
GET _cat/indices
출처
728x90