Архивация и восстановление / Dump && Restore

Добавляем путь до сохранения снапшотов в конфигурационный файл

nano /usr/local/etc/elasticsearch/elasticsearch.yml

path.repo: ["/usr/local/var/elasticsearch/snapshot"]

Регистрация

$ curl -XPUT 'http://localhost:9200/_snapshot/backup' -d '{
    "type": "fs",
    "settings": {
        "location": "/usr/local/var/elasticsearch/snapshot",
        "compress": true
    }
}'
  • где:
    • backup - название репозитория
    • /usr/local/var/elasticsearch/snapshot - папка с содержанием самого репозитория

Проверка регистрации

$ curl -XGET "http://localhost:9200/_snapshot/_all?pretty"

ответ от elasticsearch

{
  "backup" : {
    "type" : "fs",
    "settings" : {
      "compress" : "true",
      "location" : "/usr/local/var/elasticsearch/snapshot/backup"
    }
  }
}

Проверка целостности

$ curl -XPOST "http://localhost:9200/_snapshot/backup/_verify

ответ от elasticsearch

{"nodes":{"zKsDO_G3SlCdbLlhVmgLKA":{"name":"Vapor"}}}

Создание snapshot / Backup

$ curl -XPUT "http://localhost:9200/_snapshot/backup/my_index/?wait_for_completion=true"

Где my_index является существующим индексом.

Проверить наличие инднеса можно командой

$ curl --silent -XGET  "http://localhost:9200/_stats?pretty"|grep my_index

Удаление регистрации репозитория

$ curl -XDELETE 'http://localhost:9200/_snapshot/backup'

Восстановление / Restore

Настройка

Если ранее небыл зарегистрирован.

$ curl -XPUT 'http://localhost:9200/_snapshot/_restore?wait_for_completion=true' -d '{
    "type": "fs",
    "settings": {
        "location": "/usr/local/var/elasticsearch/snapshot",
        "compress": true
    }
}'
  • где:
    • backup - название репозитория
    • /usr/local/var/elasticsearch/snapshot - папка с содержанием самого репозитория

Проверка

$ curl -XPOST http://localhost:9200/_snapshot/backup/_verify?pretty

Восстановление

$ curl -XPOST http://localhost:9200/_snapshot/backup/_restore?pretty