Edited at

Elasticsearch 6.5 Backup and Restore


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. 参照

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html