본문 바로가기
개발일기/DB-MySql

elasticsearch 스냅샷 만들고 내보내기, 가져오기

by 프로그래머콩 2019. 8. 30.



# 내보내기

# 1. /etc/elasticsearch 등 elasticsearch.yml 이라는 설정 파일 열기
# 2. 맨 아래에 백업파일 저장될 경로 지정해주고 저장. ( path.repo = ["/home/el-backup"] )
# 3. elasticsearch 재부팅



# 백업파일 저장될 경로에 elasticsearch 권한주기
chown -R elasticsearch:elasticsearch ./


# '/home/elasticsearch_backup'이라는 폴더에
# 가상 'my-snaphot-repo' 라는 리포지토리 만들기
# curl 문법
curl -XPUT 'http://localhost:9200/_snapshot/my-snapshot-repo' -H 'Content-Type: application/json' -d '{"type":"fs","settings":{"location":"/Users/innonext/Documents/elasticsearch_backup","compress":true}}'

# crul 문법으로 실행할 때는 아래와 같이 작성하면 블롭(failed to create blob container?) 에러 나타날 수 있음
# 저 에러 이유는 json문법에 공백, ' " ' 짝 안맞거나, 인식 못하는 특수문자 등이 포함 될 경우 나타나는 에러.
# 그래서 위와 같이 작성해주어야 함.

# pretty(예쁘게) 모드로 보면
# 아래와 같음

curl -xPUT 'localhost:9200/_snapshot/my-snapshot-repo?pretty' -H 'Content-Type:
application/json' -d '{
"type": "fs",
"settings": {
"location": "/home/elasticsearch-backup"
}
}'


# 아래는 키바나 버전 문법

# ‘/home/el-backup’물리 저장공간에
# ‘my-snapshot-repo’라는 가상 레포지토리 저장소 이름 지어주고
# 거기 ‘snap’ 버전을 만들거다


PUT /_snapshot/my-snapshot-repo
{
"type": "fs", "settings": {
"location": "/home/elasticsearch-backup", "compress": true
}
}

curl -XPOST 'localhost:9200/_snapshot/my-snapshot-repo/snap/_restore' -H 'Content-Type: application/json'-d '{"indices":"autocomplete","ignore_unavailable":"true","include_global_state":true}

# curl 버전 문법

curl -XPUT 'http://localhost:9200/_snapshot/my-snapshot-repo/snap' -H 'Content-Type: application/json' -d '{"type":"fs","settings":{"location":"/Users/innonext/Documents/elasticsearch_backup","compress":true}}'


# 저장된 모든 인덱스 우선 확인
# (pretty = 예쁘게)
curl -XGET 'localhost:9200/_cat/indices?pretty'





# 인덱스를 만들어 놓은 저장소에 저장!
curl -XPUT 'localhost:9200/_snapshot/my-snapshot-repo/snap' -H 'Content-Type: application/json' -d '{"indicese":"complete_test01"}'



# 가져오기


# 저장소에 저장된 인덱스 목록 확인
curl -XGET 'localhost:9200/_snapshot/my-snapshot-repo/_all?pretty'




curl -XPOST 'localhost:9200/_snapshot/my-snapshot-repo/snap/_restore' -H 'Content-Type: application/json'-d '{
"indices" : "autocomplete",
"ignore_unavailable":"true",
"include_global_state" : true
}''


# 현재 있는 모든 인덱스 정보
curl -XGET 'localhost:9200/_cat/indices?pretty'