{{tag>search indexer elasticsearch indexer}}

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

===== Создание дампа / Dump create =====

  * English: https://gist.github.com/lucidlibrary/188d6ff895e56c83dea3

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

nano /usr/local/etc/elasticsearch/elasticsearch.yml
<code bash>
path.repo: ["/usr/local/var/elasticsearch/snapshot"]
</code>
</note>

==== Регистрация ====

<code bash>
$ curl -XPUT 'http://localhost:9200/_snapshot/backup' -d '{
    "type": "fs",
    "settings": {
        "location": "/usr/local/var/elasticsearch/snapshot",
        "compress": true
    }
}'
</code> 

  * где: 
    * backup - название репозитория
    * /usr/local/var/elasticsearch/snapshot - папка с содержанием самого репозитория

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

<code bash>
$ curl -XGET "http://localhost:9200/_snapshot/_all?pretty"
</code>

ответ от elasticsearch
<code json>
{
  "backup" : {
    "type" : "fs",
    "settings" : {
      "compress" : "true",
      "location" : "/usr/local/var/elasticsearch/snapshot/backup"
    }
  }
}
</code>

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

<code bash>
$ curl -XPOST "http://localhost:9200/_snapshot/backup/_verify
</code>

ответ от elasticsearch
<code json>
{"nodes":{"zKsDO_G3SlCdbLlhVmgLKA":{"name":"Vapor"}}}
</code>

==== Создание snapshot / Backup ====

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

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

Проверить наличие инднеса можно командой
<code bash>
$ curl --silent -XGET  "http://localhost:9200/_stats?pretty"|grep my_index
</code>

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

<code bash>
$ curl -XDELETE 'http://localhost:9200/_snapshot/backup'
</code>

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

  * English: https://gist.github.com/lucidlibrary/188d6ff895e56c83dea3

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

==== Настройка ====

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

<code bash>
$ curl -XPUT 'http://localhost:9200/_snapshot/_restore?wait_for_completion=true' -d '{
    "type": "fs",
    "settings": {
        "location": "/usr/local/var/elasticsearch/snapshot",
        "compress": true
    }
}'
</code>

  * где: 
    * backup - название репозитория
    * /usr/local/var/elasticsearch/snapshot - папка с содержанием самого репозитория

==== Проверка ====

<code bash>
$ curl -XPOST http://localhost:9200/_snapshot/backup/_verify?pretty
</code>

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

<code bash>
$ curl -XPOST http://localhost:9200/_snapshot/backup/_restore?pretty
</code>
