elasticsearchのsnapshotバックアップ

3849 ワード

公式にはsnapshot方式が提供されています.これはインデックスファイルをバックアップしているので、バックアップとリカバリのプロセスが速いです.結局、インデックスを再インデックスする必要はありません.この欠点はesリカバリにしか使用できないことです.バックアップデータを他の用途に使用することはできません.プロセスは次のとおりです.
snapshot:
//create repositori( , ,location nfs , )
curl -XPUT 'localhost:9200/_snapshot/my_backup?pretty' -d '{
    "type": "fs",
    "settings": {
        "location": "/mnt/elasticsearch/backups/my_backup",
        "compress": true
    }
}'

//check repository
curl -XGET 'http://localhost:9200/_snapshot/my_backup?pretty'

//get snapshot
curl -XGET 'http://localhost:9200/_snapshot?pretty'
or
curl -XGET 'http://localhost:9200/_snapshot/_all?pretty'

// verify
curl -XPOST 'http://localhost:9200/_snapshot/my_backup/_verify?pretty'

//create snapshot
//for all
curl -XPUT "localhost:9200/_snapshot/my_backup/snapshot_1?wait_for_completion=true&pretty"
//for specific index
curl -XPUT "localhost:18200/_snapshot/my_backup/snapshot_3?wait_for_completion=true&pretty" -d '{
    "indices": "test_1",
    "ignore_unavailable": true,
    "include_global_state": false
}'
//get snapshot

//all
curl -XGET "localhost:9200/_snapshot/my_backup/_all?pretty"

//by specific index
curl -XGET "localhost:9200/_snapshot/my_backup/snapshot_2?pretty"

//delete
 curl -XDELETE "localhost:9200/_snapshot/my_backup/snapshot_2?pretty"

 //delete all
 curl -XDELETE "localhost:9200/_snapshot/my_backup?pretty"

 //restore
curl -XPOST "localhost:9200/_snapshot/my_backup/snapshot_2/_restore?pretty" -d '{
    "indices": "test_1",
    "ignore_unavailable": true,
    "include_global_state": false,
    "rename_pattern": "test_1",
    "rename_replacement": "restored_test_1"
}'

//recovery
curl -XGET http://localhost:9200/restored_test_1/_recovery?pretty=true
//get status
curl -XGET 'localhost:9200/_snapshot/_status?pretty'