본문 바로가기
Programming/Elasticsearch

[Elasticsearch] snapshot 저장과 불러오기

by peter paak 2021. 3. 11.
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

  • mappingsettings 메타 데이터만 압축

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