Category Archives: Elasticsearch

Elasticsearch: Snapshot & Restore

Elasticsearch 스냅샷(snapshot) 기능을 이용한 인덱스 백업 및 복원

(다른 클러스터로 인덱스 이동 가능)

 

스냅샷 만들기

elasticsearch.yml 에 스냅샷 저장할 디렉토리 지정(재기동 필요)

path.repo: “/home/elasticsearch/Data/Snapshot”

 

snapshot 등록

curl -XPUT ‘http://localhost:9200/_snapshot/my_backup’ -d’
{
“type”: “fs”,
“indices”: “tutor_p,playlist_p,video_p”,
“settings”: {
“compress”: “true”,
“location”: “/home/elasticsearch/Data/Snapshot”
}
}’

snapshot 생성

curl -XPUT ‘http://localhost:9200/_snapshot/my_backup/snapshot_1?wait_for_completion=true’

 

스냅샷 복구

snapshot 등록

curl -XPUT ‘http://172.31.2.118:9200/_snapshot/my_backup’ -d’
{
“type”: “fs”,
“settings”: {
“compress”: “true”,
“location”: “/home/elasticsearch/Data/Snapshot”
}
}’

 

스냅샷을 통한 인덱스 복구

curl -XPOST ‘http://172.31.2.118:9200/_snapshot/my_backup/snapshot_1/_restore’ -d’
{
“indices”: “tutor_1,playlist_2,video_1”,
“ignore_unavailable”: “true”,
“include_global_state”: false
}’

elasticsearch 개념 정리

Node

network layer 관련

  • http client: 외부에서 REST 접근을 하는 경우
  • transport client: 노드간 또는 노드와 자바 TransportClient 간 통신하는 경우

 

clinet 노드

스마트 라우터(smart router) 역할

  • 클러스터 레벨 요청을 마스터 노드로 전달
  • 데이터 레벨 요청(검색 등)을 데이터 노드로 전달

 

path.data

한 머신에서 여러 노드를 실행하는 경우(가급적이면 하지 않는게 좋다), 여러 노드가 동일한 데이터 경로를 보지 않도록 방지하려면

node.max_local_storage_nodes: 1

을 설정한다.

 

deleting index using wild cards

인덱스 삭제시 와일드카드 문자를 허용하지 않고, 반드시 인덱스명을 입력하게 하려면

action.destructive_requires_name: true

을 설정한다.