如何通过快照进行数据备份?

以下以elasticsearch7为例讲解一下关于备份的问题

首先看一段官网给出的:

翻译成中文大概意思是:备份集群的唯一可靠且受支持的方法是拍摄快照。

  • 关于备份可以分为备份数据备份集群配置备份安全配置

  • 关于还原可以分为还原数据还原安全配置

以下我们主要针对备份数据做一个示例

备份数据

  • 大致分为以下几步(如果您的集群启用了安全功能,则在备份数据时必须授权快照API调用)

    • 修改elasticsearch.yml添加快照存储位置配置

      path.repo: ["/data"]

    • 注册快照存储库

      快照可以存储在本地或远程存储库中。远程存储库可以驻留在 Amazon S3、HDFS、Microsoft Azure、Google Cloud Storage 和存储库插件支持的其他平台上。

      curl -H 'Content-Type:application/json' -XPUT -d '{"type": "fs","settings":{"location":"/data/backups/risen_backup"}}' http://192.168.5.135:13500/_snapshot/risen_backup
      

    • 创建快照

      curl -H 'Content-Type:application/json' -XPUT http://192.168.5.135:13500/_snapshot/risen_backup/snapshot_1?wait_for_completion=true
      # wait_for_completion 为 true 是指该 api 在备份执行完毕后再返回结果,否则默认是异步执行的,我们这里为了立刻看到效果,所以设置了该参数,线上执行时不用设置该参数,让其在后台异步执行即可。
      

        {
            "snapshot":{
                "snapshot":"snapshot_1",
                "uuid":"Fr7MsRT-TpKpEQ26tP10Wg",
                "version_id":7120099,
                "version":"7.12.0",
                "indices":[
                    ".kibana-event-log-7.12.0-000001",
                    "risen_app_log_9beb25232bc8433f8cca5f747574396d",
                    ".tasks",
                    ".apm-agent-configuration",
                    "test",
                    ".kibana_task_manager_7.12.0_001",
                    ".kibana_7.12.0_001",
                    ".security-7",
                    "risen_app_log_test",
                    ".ds-ilm-history-5-2021.07.02-000001",
                    ".apm-custom-link"
                ],
                "data_streams":[
                    "ilm-history-5"
                ],
                "include_global_state":true,
                "state":"SUCCESS",
                "start_time":"2021-07-15T09:17:27.607Z",
                "start_time_in_millis":1626340647607,
                "end_time":"2021-07-15T09:17:27.807Z",
                "end_time_in_millis":1626340647807,
                "duration_in_millis":200,
                "failures":[
      
                ],
                "shards":{
                    "total":15,
                    "failed":0,
                    "successful":15
                },
                "feature_states":[
                    {
                        "feature_name":"security",
                        "indices":[
                            ".security-7"
                        ]
                    },
                    {
                        "feature_name":"kibana",
                        "indices":[
                            ".kibana_task_manager_7.12.0_001",
                            ".kibana_7.12.0_001",
                            ".apm-agent-configuration",
                            ".apm-custom-link"
                        ]
                    },
                    {
                        "feature_name":"tasks",
                        "indices":[
                            ".tasks"
                        ]
                    }
                ]
            }
        }
      
    • 删除快照

      curl -H 'Content-Type:application/json' -XDELETE http://192.168.5.135:13500/_snapshot/risen_backup/snapshot_1?pretty
      

    通过上面的步骤创建好备份快照后,但是随着数据新增,如何实现增量数据备份呢?继续执行创建快照的名但是需要更换快照名称

    curl -H 'Content-Type:application/json' -XPUT http://192.168.5.135:13500/_snapshot/risen_backup/snapshot_2?wait_for_completion=true
    

    当执行完毕后,你会发现 /data/backups/my_backup 体积变大了。这说明新数据备份进来了。要说明的一点是,当你在同一个 repository 中做多次 snapshot 时,elasticsearch会检查要备份的数据 segment 文件是否有变化,如果没有变化则不处理,否则只会把发生变化的 segment file 备份下来。这其实就实现了增量备份。

还原数据

curl -H 'Content-Type:application/json' -XPOST -d '{"indices":"risen_app_log_test","rename_replacement":"risen_app_log_test_from_backup"}' http://192.168.5.135:13500/_snapshot/risen_backup/snapshot_1/_restore?wait_for_completion=true

  • 查看risen_app_log_test的数据
curl -XGET http://192.168.5.135:13500/risen_app_log_test/_search?pretty
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我教你啊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值