官方提供了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'