LoginSignup
11

More than 5 years have passed since last update.

Elasticsearch 6.5 Backup and Restore

Last updated at Posted at 2018-11-26

Elasticsearch Backup and Restore

Elasticsearch でバックアップとリストアをさくっとやる方法です。
ちなみにElasticsearchではsnapshotというのが正解ぽいですが、面倒なんでバックアップで。

OS コマンドラインは Ubuntu 16.04/18.04 あたり準拠です。

1. Backup

1.1. バックアップ PATH の追加

バックアップディレクトリを [elastcsearch:elasticsearch] のユーザ権限で予め作成しておきます。

バックアップ(スナップショット)が吐かれる場所の設定です。
S3とかに吐き出すモジュールとかもあるので、そのうち書きたいと思います。

/etc/elasticsearch/elasticsearch.yml
#
# Path to snapshot
#
path.repo: ["<path to backup>"]

1.2. 再起動しよう

バックアップ PATH の反映しましょう。

> systemctl restart elasticsearch.service

1.3. バックアップのレポジトリ設定

バックアップ(スナップショット)のレポジトリ設定しておきます。
この際に、バックアップ PATH がないと(確か)怒られます。

> curl -XPUT localhost:9200/_snapshot/<レポジトリ名> -H 'Content-Type: application/json' -d'
{
  "type": "fs",
  "settings": {
    "location": "<path to backup>"
  }
}'

1.4. バックアップしよう

全部取るように書いてあるので、* のとこを indices 名にすれば、それが取れるはずです。はず。
,区切りとかにすればその分の indices が取れるはずです。はず。

> curl -XPUT localhost:9200/_snapshot/<レポジトリ名>/<バックアップ名>?pretty&wait_for_completion=true -H 'Content-Type: application/json' -d '{
    "indices": "*",
    "ignore_unavailable": "true",
    "include_global_state": false
 }'

1.5. バックアップしたやつをドナドナする

適当にバックアップディレクトリを tar とかで固めて、リストアしたいサーバとかに持ってきましょう。
もちろん、持ってかなくてもそのサーバだけで使ってもOKです。

2. Restore

バックアップしたので、リストアもしとかないとってことで、リストアします。

2.1. リストア側にバックアップ PATH を追加

バックアップディレクトリを [elastcsearch:elasticsearch] のユーザ権限で予め作成しておきます。

1.1 と同じです。

/etc/elasticsearch/elasticsearch.yml
#
# Path to snapshot
#
path.repo: ["<path to backup>"]

2.2. 再起動してみる

1.2 と同じですね。

> systemctl restart elasticsearch.service

2.3. バックアップのレポジトリ設定

1.3 と同じ・・・

> curl -XPUT localhost:9200/_snapshot/<レポジトリ名> -H 'Content-Type: application/json' -d'
{
  "type": "fs",
  "settings": {
    "location": "<path to backup>"
  }
}'

2.4. リストアしよう

リストアしてみます。

>  curl -XPOST localhost:9200/_snapshot/<レポジトリ名>/<バックアップ名>/_restore

3. おまけ

レポジトリとかバックアップの一覧とか見るには。

3.1. レポジトリ一覧

> curl -XGET localhost:9200/_cat/repositories?v
id       type
snapshot   fs

3.2. バックアップ一覧

レポジトリ名:snapshot の場合

> curl -XGET localhost:9200/_cat/snapshots/snapshot?v
id             status start_epoch start_time end_epoch  end_time duration indices successful_shards failed_shards total_shards
snapshot_1    SUCCESS 1531294342  07:32:22   1531294427 07:33:47     1.4m     395              1955             0         1955
snapshot_2    SUCCESS 1542699331  07:35:31   1542699561 07:39:21     3.8m     880              4396             0         4396

4. 参照

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11