elasticsearch 백업 (스냅샷)

By lhcsoft - 3월 08, 2019

elasticsearch는 데이터를 백업 및 복구하기위해 snapshot 기능을 지원한다.


다음은 스냅샷 기능을 이용하는 방법에 대해서 설명한다.



테스트 장비는 2개가 필요하다.
- 백업을 하기위한 System(이후 A System으로 지칭): 192.168.0.3
- 복원을 하기위한 System(이후 B System으로 지칭): 192.168.0.4


백업하기 위한 과정 설명

1) A 시스템에서 repository를 생성한다.
- config정보에 다음을 추가한다.
path.repo: ["/data/backup"]
- elasticsearch를 다시 구동하고 다음 명령을 이용하여 repository를 등록한다.
PUT /_snapshot/my_backup

{
"type": "fs",
"settings": {
"compress": true,
"location": "/data/backup" }
}


2) 스냅샷을 실행한다.
$ curl -XPUT '_snapshot/my_backup/111_20190305?pretty' -d '

(for postman: PUT localhost:9200/_snapshot/my_backup/111_20190305?pretty)
{ "indices": "twitter", "ignore_unavailable": true,
}'
"include_global_state": false

3) 스냅샷 상태를 확인한다.

GET _snapshot/my_backup/111_20190305/_status



스냅샷된 데이터를 이용하여 복원하는 과정 설명

1) B 시스템에서 repository를 생성한다.
- config정보에 다음을 추가한다.
path.repo: ["/data/backup"]
- elasticsearch를 다시 구동하고 다음 명령을 이용하여 repository를 등록한다.
PUT /_snapshot/my_backup

{
"type": "fs",
"settings": {
"compress": true,
"location": "/data/backup" }
}

2) 스냅샷 데이터 복사하기
A 시스템의 /data/backup 하위의 데이터를 복사하여 B 시스템의 /data/backup에 복사한다.

3) 데이터 복원하기
현재 노드(복원하기 위한 노드)를 close 한다.

curl -XPOST _all/_close"
POST _snapshot/my_backup/111_20190305/_restore
{ "indices": "twitter",
"index.number_of_replicas": 0
"index_settings": { },
"index.refresh_interval"
"ignore_index_settings": [ ]
}


 4) 상기 과정을 통해 스냅샷을 통해 A 시스템의 내용이 B 시스템에 복원된다.

  • Share:

You Might Also Like

0 개의 댓글