elasticsearch的备份与恢复

1. 创建快照和从快照还原

1.1 注册快照存储库

停止elasticsearch服务,编辑配置文件指定快照存储库的目录

# mkdir /_snapshot/my_backup
# chown -R es /_snapshot/my_backup/
# cat elasticsearch.yml | grep -v '^#' | grep -v '^$'
node.name: master
path.data: /app/elasticsearch-7.8.0/data
path.logs: /app/elasticsearch-7.8.0/logs
path.repo: /_snapshot/my_backup
network.host: 0.0.0.0
cluster.initial_master_nodes: ["master"]
xpack.ml.enabled: false

启动elasticsearch后注册存储库
当设置了登录密码时,undefined:$ESPASS需要替换为自己的登录账号和密码

$ curl -X PUT -u undefined:$ESPASS "localhost:9200/_snapshot/my_backup?pretty" -H 'Content-Type: application/json' -d'
{
"type": "fs",
"settings": {
  "location": "my_backup_location"
}
}
'
#返回信息:
{
"accepted" : true
}

1.2 查看和取消已注册的快照存储库

使用get snapshot API检索有关已注册存储库的信息

$ curl -X GET -u undefined:$ESPASS "localhost:9200/_snapshot/my_backup?pretty"
# 返回信息:
{
"my_backup" : {
  "type" : "fs",
  "settings" : {
    "location" : "my_backup_location"
  }
}
}

查询所有存储库的信息

$ curl -X GET -u undefined:$ESPASS "localhost:9200/_snapshot/_all?pretty"

取消指定已注册存储库(快照文件不会丢失)

$ curl -X DELETE -u undefined:$ESPASS "localhost:9200/_snapshot/my_backup?pretty"

1.3创建和还原快照(elasticsearch中所有索引)

在存储库my_backup中创建一个名为snapshot_1的快照

curl -X PUT -u undefined:$ESPASS "localhost:9200/_snapshot/my_backup/snapshot_1?wait_for_completion=true&pretty"
返回信息:
{
  "snapshot" : {
    "snapshot" : "snapshot_1",
    "uuid" : "7U8s0R5yTIS93ry1fthuAw",
    "version_id" : 7080099,
    "version" : "7.8.0",
    "indices" : [
      "test01",
      "canal_product",
      ".security-7"
    ],
    "include_global_state" : true,
    "state" : "SUCCESS",
    "start_time" : "2022-11-24T08:07:14.289Z",
    "start_time_in_millis" : 1669277234289,
    "end_time" : "2022-11-24T08:07:54.131Z",
    "end_time_in_millis" : 1669277274131,
    "duration_in_millis" : 39842,
    "failures" : [ ],
    "shards" : {
      "total" : 5,
      "failed" : 0,
      "successful" : 5
    }
  }
}

模拟数据丢失,删除Elasticsearch索引

还原存储库my_backup中的snapshot_1快照索引索引

curl -X POST -u undefined:$ESPASS "localhost:9200/_snapshot/my_backup/snapshot_1/_restore?pretty"
返回信息:
{
  "accepted" : true
}

还原存储库my_backup中的snapshot_1快照指定的索引

curl -X POST -u undefined:$ESPASS "localhost:9200/_snapshot/my_backup/snapshot_1/_restore?pretty" -H 'Content-Type: application/json' -d'
{
"indices": "test01,canal_product", 
"ignore_unavailable": true,
"include_global_state": false,              
"rename_pattern": "index_(.+)",
"rename_replacement": "restored_index_$1",
"include_aliases": false
}
'

删除存储库my_backup中名为snapshot_1的快照

curl -X DELETE -u undefined:$ESPASS "localhost:9200/_snapshot/my_backup/snapshot_1"

1.4 创建和还原快照(指定elasticsearch中的索引)

在存储库my_backup中创建一个名为snapshot_2的快照

curl -X PUT -u undefined:$ESPASS "localhost:9200/_snapshot/my_backup/snapshot_2?wait_for_completion=true&pretty" -H 'Content-Type: application/json' -d'
{
"indices": "test01",
"ignore_unavailable": true,
"include_global_state": false,
"metadata": {
  "taken_by": "kimchy",
  "taken_because": "backup before upgrading"
}
}
'

还原索引test01的快照

curl -X POST -u undefined:$ESPASS "localhost:9200/_snapshot/my_backup/snapshot_2/_restore?pretty"
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛秋c

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值