Elasticsearch
[Elasticsearch] 스냅샷 저장 및 복구
'김용환'
2015. 7. 29. 00:34
일래스틱서치의 스냅샷 저장 및 복구하기
스냅샷을 정의하고 어느 디렉토리에 저장될지 결정한다.
curl -XPUT 'http://localhost:9200/_snapshot/poi' -d '{
"type": "fs",
"settings": {
"location": "/home/www/backup",
"compress": true
}
}'
제대로 되어 있는지 확인한다.
curl -XGET 'http://localhost:9200/_snapshot/poi?pretty'
정상적인지 검증한다.
curl -XPOST 'http://localhost:9200/_snapshot/poi/_verify'
스냅샷으로 덤프한다. 스냅샷으로 정의된 디렉토리(/home/www/backup)에 덤프된 스냅샾 파일을 볼 수 있다.
curl -XPUT "http://localhost:9200/_snapshot/poi/snap_1?wait_for_completion=true" -d '{
"indices": "poi",
"ignore_unavailable": "true",
"include_global_state": false
}'
wait_for_completion 매개변수가 없으면 비동기로 실행되기 때문에 스냅샷 파일의 완료 시점을 알기 쉽지 않다. 동기 결과를 받기 위해 일부러 사용하는 것이 좋다.
기존 색인을 닫는다.
curl -XPOST http://localhost:9200/poi/_close
만약 기존 색인을 닫지 않으면, 다음과 같은 에러가 발생한다
{"error":"SnapshotRestoreException[[poi:location_poi_20150728] cannot restore index [poi] because it's open]","status":500}
복구(restore)한다.
curl -XPOST "localhost:9200/_snapshot/poi/snap_1/_restore?pretty" -d '{
"indices": "poi",
"ignore_unavailable": "true",
"include_global_state": "false"
}'
* 팁 : 만약 복구할 때, 새로운 이름의 색인으로 변경하려면 다음고 같이 rename_pattern과 rename_replacement를 이용하면 된다. poi라는 색인 대신 aaaaaaaaaaa 라는 색인을 만들 수 있다.
curl -XPOST "localhost:9200/_snapshot/poi/snap_1/_restore?pretty" -d '{
"indices": "poi",
"ignore_unavailable": "true",
"include_global_state": "false",
"rename_pattern": "poi",
"rename_replacement": "aaaaaaaaaaa"
}'