广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Elasticsearch 备份数据到
  • 774
分享到

Elasticsearch 备份数据到

备份数据Elasticsearch 2023-01-31 06:01:52 774人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

ES集群备份数据到S3 集群环境: 系统版本:Centos 7.3 安装方式 : yum ES版本环境: 6.0.1 基本概念 使用 elasticsearch Snapshot 时需要有一些基本概念澄清,

ES集群备份数据到S3

集群环境:

系统版本:Centos 7.3
安装方式 : yum
ES版本环境: 6.0.1

基本概念

使用 elasticsearch Snapshot 时需要有一些基本概念澄清,他不是拿指定的 Indices 文件做个压缩包丢在 S3 完事,他是有控制的。

snapshot 结构

Elasticsearch 的 snapshot 是由其自身控制的,整个系统保持了一个如下的从下到上的控制结构,他们具备包含关系:

snapshot --> repository --> single snapshot --> indices

snapshot

这里将 snapshot 单独列出,是因为在 Elasticsearch 中 snapshot 独占性工作的,他更像是一个管道,任何一个 repository 在工作的时候是排他的,虽然他并不阻止 indices 的写入。
repository
这个仓库应该是一组 snapshot 备份的集合,也可以认为是一个目标的选择。在一个 Elasticsearch 系统中你可以根据自己的意愿设定不同的 Repository。

Single snapshot

这个指的是在 Repository 中我们进行的每个备份内容,他更像一个集合,包含了这次 snapshot 中所有的 Indices。

Indices

在一个 snapshot 当中,可以包含多个 Indices 文件内容。他可以在执行 snapshot 的时候用 pattern 识别,也可以一个一个的指定。

S3 插件

如果要想让 Elasticsearch 备份到 S3 当中需要单独安装一个插件 S3 Repository Plugin。

Repository

在正常执行 _snapshot 以前,需要先建立好自己的 Repository。具体操作可以参考 S3 Repository Plugin 完成 S3 的配置操作。

其中 AWS 的账户口令控制不必非要写在系统的 YAML 配置文件中,直接在创建 Repository 的设定用起来会更加灵活。获取 Repository 的时候,系统会自动屏蔽账户信息部分。

AWS IAM

这个稍微复杂一点,也可能是我们对 AWS IAM 并不熟悉。按照 Elastic 官方给出的 Recommanded S3 Permissions 直接配置即可。

Recommanded S3 Permissions:
https://www.elastic.co/guide/en/elasticsearch/plugins/current/repository-s3-repository.html#repository-s3-permissions

这里他需要获取到 AWS S3 Bucket 的列表权限,因为他会放置自己的一些控制文件进入,并且还需要进行比对操作。

如果你需要备份不同的 ES 系统到一个 AWS S3 Bucket 一定要分配到不同的目录当中,因为 Elasticsearch 的那些控制文件会导致他们之间冲突。这里可以参考这个 S3 Permissions 的说明中后面一个 IAM 配置说明即可。

snapshot 操作

当 Repository 做好后,就可以直接执行 _snapshot 操作了。具体的操作方法可以参考 Snapshot and Restore 部分的说明了。指令比 _search 不知道简单多少倍.

如果你执行的时候,其他的 snapshot 正在执行,你会得到一个 503: Service Unavailable 的错误信息。这就是上面说的 snapshot 执行的独占性,哪怕不同的 repository 之间也不能并行。

S3 中文件的作用

Elasticsearch 在 S3 中创建 snapshot 的时候,会形成一些辅助文件,帮他管理 snapshot 内容。

最坑爹是 Elasticsearch 并不在自己的 Indices 当中创建备份信息,而是将所有这些信息都放在了 S3 当中。当然熟悉后也明白,这么做的好处是,可以让另一个 ES 系统通过同样的 Repository 配置读取这些 S3 中的内容。

备份配置步骤

需要安装的插件 (推荐每台es节点都安装,并重启服务)

        /opt/elasticsearch/bin/elasticsearch-plugin install repository-s3

配置访问S3账号与密码

#ACCESS-KEY
/opt/elasticsearch/bin/elasticsearch-keystore add s3.client.default.access_key

         AKIAJLFDDDDDDDDDDDDD

#SECRET-KEY
/opt/elasticsearch/bin/elasticsearch-keystore add s3.client.default.secret_key

         nHr5vFTxCBI6CbRgNGDAAAAAAAAAA

删除key 信息;

/opt/elasticsearch/bin/elasticsearch-keystore remove s3.client.default.access_key

/opt/elasticsearch/bin/elasticsearch-keystore remove s3.client.default.secret_key

Amazon S3存储库实例如下:

curl -XPUT 'Http://localhost:9200/_snapshot/backup'  -H 'Content-Type: application/JSON' -d '{ "type": "s3", "settings": { "bucket": "pte-es-backup", } }'       
参数名词解释:

Type: 仓库类型
Setting: 仓库的额外信息
Bucket: 存储桶名称

不同的ES版本支持的region参考:

Region: AWS Region
Access_key: 访问秘钥
Secret_key: 私有访问秘钥

使用上面的命令,创建一个仓库(s3-backup),并且还创建了存储桶(esbackup),返回{"acknowledged":true} 信息证明创建成功。

确认备份仓库是否创建成功:
curl -XPOST http://localhost:9200/_snapshot/backup/_verify?pretty

{
  "nodes" : {
    "Uz61yrDjRXy-otyYiwLXtA" : {
      "name" : "172.17.5.152"
    },
    "JgrZMa9CTRuoV1cezEeXuQ" : {
      "name" : "172.17.5.153"
    },
    "z_BLa4u1SZWt5gA4oZRpOA" : {
      "name" : "172.17.5.196"
    }
  }
}
查看刚创建的存储仓库:
    curl -XGET localhost:9200/_snapshot/backup?pretty
查看所有的存储桶:
    curl -XGET localhost:9200/_snapshot/_all?pretty

备份索引

创建好存储仓库之后就可以开始备份了。一个仓库可以包含多个快照(snapshots),快照可以存所有的索引或者部分索引,当然也可以存储一个单独的索引。(要注意的一点就是快照只会备份open状态的索引,close状态的不会备份)

备份所有索引

curl -XPUT http://127.0.0.1:9200/_snapshot/backup/snapshot_all

上面的代码会将所有正在运行的open状态的索引,备份到backup仓库下一个叫snapshot_all的快照中。上面的api会立刻返回{"accepted":true},然后备份工作在后台运行。

如果你想api同步执行,可以加wait_for_completion 标志:

curl -XPUT http://127.0.0.1:9200/_snapshot/backup/snapshot_all?wait_for_completion=true

上面的方法会在备份完全完成后才返回,如果快照数据量大的话,会花很长时间。

备份部分索引

默认是备份所有open状态的索引,如果你想只备份某些或者某个索引,可以指定indices参数来完成

curl -XPUT 'http://localhost:9200/_snapshot/backup/index-kjh-201712' -H 'Content-Type: application/json' -d '{ "indices": "index-kjh-2017.12" }'

备份多索引方法:
{
   "indices": "products,index_1,index_2",
   "ignore_unavailable": true,
   "include_global_state": false
}

indices: 需要备份的索引
ignore_unavailable: 如果索引不存在,则略过。
include_global_state: 为了让同一个snapshot可以恢复到多个不同的cluster,这里设置成false。之所以是false,是因为我们不想把global cluster state备份进snapshot

查看快照信息

curl -XGET 'http://localhost:9200/_snapshot/backup/_all'?pretty

curl -XGET 'http://localhost:9200/_snapshot/backup/index-kjh-201712?'pretty

查看快照信息,只需要发起GET请求就好:
详细信息:


    {
      "snapshot" : "index-kjh-201712",
      "uuid" : "MQPVTiYlR_Wc2ftR7OIrZw",
      "version_id" : 6010099,
      "version" : "6.1.0",
      "indices" : [
        "index-kjh-2017.12"
      ],
      "state" : "SUCCESS",              <============总体状况
      "start_time" : "2018-01-04T11:15:04.974Z",
      "start_time_in_millis" : 1515064504974,
      "end_time" : "2018-01-04T11:15:07.658Z",
      "end_time_in_millis" : 1515064507658,
      "duration_in_millis" : 2684,
      "failures" : [ ],
      "shards" : {
        "total" : 5,
        "failed" : 0,
        "successful" : 5
      }
    }
  ]
}

快照总体状况:

上面信息深入每和每个实例统计数据。这给你一个令人难以置信的详细视图快照是如何进展的。碎片可以以不同的方式完成:

INITIALIZING: 集群的碎片是检查状态是否可以快照。这通常是非常快。
STARTED:数据被转移到存储库。
FINALIZING:数据传输完成;碎片现在发送快照的元数据。
DONE:快照完成。
FAILED:在快照过程中错误的出处,这碎片/索引/快照无法完成。检查你的日志以获取更多信息。

恢复索引数据:

curl -XPOST 'http://localhost:9200/_snapshot/backup/index-kjh-201712/_restore

查看恢复状态:

GET http://127.0.0.1:9200/_recovery/index-kjh-201712
GET http://127.0.0.1:9200/_recovery/

删除一个快照存储桶:

curl -XDELETE localhost:9200/_snapshot/backup/index-kjh-201712?pretty

{
  "acknowledged" : true
}

部分恢复:

默认情况下,如果一个或多个索引在快照中没有可用的分片,整个恢复操作将失败。可以通过设置部分恢复为true,以恢复这些索引。注意:在这种情况下,只有成功的分片快照被恢复,丢失的分片将被重建为空的。

恢复到另一个集群

快照存储的信息不依赖于特定的集群或集群名称。因此,可以恢复到另一个集群。这需要在新的集群上注册快照包含的存储介质,并启动恢复过程。新集群不必具有相同的大小或者拓扑,但是,新集群的版本要与所创建的快照的版本一样或者更高。

可以减少索引副本以恢复成更小的集群。

如果原始集群的索引使用分片分配过滤被分配到特定节点,同样的规则将在新集群中强制执行。因此,如果新的集群不包含与该索引恢复的分配属性的适当节点,该索引将不会恢复成功的,除非这些索引在恢复操作过程中分配设置被更改。

恢复操作也支持wait_for_completion参数,会阻止客户端一直到操作完成。这是获知关于操作完成的最简单方法。

同一时刻,只允许执行一个快照或者一个恢复操作。

恢复操作使用标准的分片恢复机制。因此,当前运行的任何恢复操作可通过删除正在恢复的索引来中止。该操作的结果将会把删除索引的数据从集群中清除。

夸集群恢复步骤如下:

clusterA —— 配置s3备份环境----clusterA执行备份到S3存储桶
clusterB —— 配置s3备份环境(指向clusterA备份存储桶)----clusterB执行恢复操作

curl -XPOST 'http://localhost:9200/_snapshot/backup/index-kjh-201712/_restore

参考信息:

https://medium.com/@federicopanini/elasticsearch-backup-snapshot-and-restore-on-aws-s3-f1fc32fbca7f

https://www.elastic.co/guide/cn/elasticsearch/guide/current/backing-up-your-cluster.html#backing-up-your-cluster

--结束END--

本文标题: Elasticsearch 备份数据到

本文链接: https://www.lsjlt.com/news/189827.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Elasticsearch 备份数据到
    ES集群备份数据到S3 集群环境: 系统版本:centos 7.3 安装方式 : yum ES版本环境: 6.0.1 基本概念 使用 Elasticsearch Snapshot 时需要有一些基本概念澄清,...
    99+
    2023-01-31
    备份 数据 Elasticsearch
  • 怎么将备份数据还原到数据库
    这篇文章主要介绍“怎么将备份数据还原到数据库”,在日常操作中,相信很多人在怎么将备份数据还原到数据库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么将备份数据还原到数据库”...
    99+
    2022-10-18
  • 云服务器数据备份到本地
    云服务器通常提供数据备份和容错功能,以确保数据的安全性和可用性。以下是可能的步骤: 备份数据到云端:使用同一云服务器上的多个云备份服务,将您的数据备份到多个云端存储设备上。这可以确保数据的可用性和安全性,并防止备份数据丢失或损坏。 重新...
    99+
    2023-10-26
    数据备份 服务器
  • 数据库备份、批量备份
    数据库备份 mysqldump -uroot -p123456 -P3306 --single-transaction database_name >/data/dbname.sql.gz 注:生...
    99+
    2022-10-18
  • VPS如何自动备份数据库到FTP
    小编给大家分享一下VPS如何自动备份数据库到FTP,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1)确保自己在home目录(若不是,运行:cd /home) 2)...
    99+
    2023-06-09
  • 云服务器数据库备份到本地
    云服务器数据库备份到本地通常是将数据备份到云服务器的本地磁盘或者网络磁盘上。备份的方式取决于云服务器的不同配置。 对于使用集群模式的云服务器,通常会将多个物理服务器组成一个虚拟服务器集群,每个服务器可以包含多个应用程序或数据。这些应用程序...
    99+
    2023-10-26
    备份 服务器 数据库
  • 怎么将Expdp备份数据转到ASM中
    这篇文章主要介绍“怎么将Expdp备份数据转到ASM中”,在日常操作中,相信很多人在怎么将Expdp备份数据转到ASM中问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么将E...
    99+
    2022-10-18
  • Oracle11g数据库使用expdp每周进行数据备份并上传到备份服务器
    目录1.看看数据库情况1.1先看了下表空间情况,生产环境表空间大概90G,用了才一半不到2.数据库备份2.1登陆数据库2.2创建逻辑目录2.3给数据库用户文件操作权限#dbuser为...
    99+
    2022-11-13
  • DB2数据库备份,冷备份、热备份、增量备份实验
    造备份目录mkdir archivelogmkdir backup2.造库,用那个模板库db2star 3.造表,db2 connect to sampledb2 "creat...
    99+
    2022-10-18
  • Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器
    目录1.看看数据库情况1.1先看了下表空间情况,生产环境表空间大概90G,用了才一半不到2.数据库备份2.1登陆数据库2.2创建逻辑目录2.3给数据库用户文件操作权限#dbuser为数据库用户名,更具实际情况更改2.3创...
    99+
    2022-06-28
    Oracle11g使用expdp备份数据 Oracle11g备份数据上传服务器
  • 数据库备份
    转储SQL文件    2、运行SQL文件        完成后刷新,就有之前数据库的内容了。  数据库备份原文地址:https://www.cnblogs.com/listxue/p/13376484.html...
    99+
    2018-11-11
    数据库备份 数据库入门 数据库基础教程 数据库 mysql
  • mariadb数据备份
    1、mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法: # MySQLdu...
    99+
    2023-08-24
    mariadb 数据库 mysql
  • 云服务器数据备份在哪里看到
    首先,用户可以将重要的数据备份到云服务器上。云服务器可以将用户的数据备份到不同的地方,比如服务器、数据库、存储设备等。如果用户的数据被丢失或者损坏了,可以使用云服务器来存储和恢复数据。此外,云服务器还提供了自动备份功能,用户可以通过设置定时...
    99+
    2023-10-28
    数据备份 服务器
  • 云服务器数据备份在哪里找到
    一、备份和存储 备份是数据管理中至关重要的一环,云服务器的备份和存储服务可以帮助用户在不同的设备、不同的环境下实现数据的备份和存储。 数据备份 云服务器可以为用户提供多种备份方式,包括本地备份、云端备份和灾备备份。其中,本地备份是指将...
    99+
    2023-10-28
    数据备份 服务器
  • 云服务器数据备份到本地文件
    云服务器通常会将其数据存储在本地,以确保数据的安全性和可靠性。以下是可能的备份数据存储方式: 直接存储到磁盘(Dropout)或者磁带库中,这些方法通常用于备份大量的数据。例如,你可以将一些文件备份到云存储服务(Cloud Storag...
    99+
    2023-10-26
    数据备份 本地文件 服务器
  • 云服务器数据备份到本地手机
    云服务器数据备份到本地手机通常需要通过云端数据备份服务来实现。以下是一些可能有助于实现该需求的步骤: 准备服务器:准备与云服务器同步的本地数据备份服务器。例如,可以考虑使用数据库或者备份软件来创建备份文件,以备在云服务器失效或者其他不可...
    99+
    2023-10-26
    数据备份 服务器 手机
  • 阿里云服务器数据备份到本地
    如果您使用阿里云服务器作为存储云平台,您可以通过以下步骤备份数据到本地: 登录阿里云控制台,选择"云服务器"。 找到"备份数据"选项。 点击"备份数据"选项。 选择您希望备份到本地的文件,例如图片、视频等。如果您选择将所有文件备份到"本...
    99+
    2023-10-26
    阿里 数据备份 服务器
  • 服务器数据怎么备份到云主机
    要将服务器数据备份到云主机,可以按照以下步骤进行操作:1. 选择适合的云存储服务:云主机使用的云存储服务提供商有很多,根据自己的需求...
    99+
    2023-09-08
    云主机 服务器
  • 实战:大数据Flink CDC同步Mysql数据到ElasticSearch
    文章目录 前言知识积累CDC简介CDC的种类常见的CDC方案比较 Springboot接入Flink CDC环境准备项目搭建 本地运行集群运行将项目打包将包传入集群启动远程将包部署...
    99+
    2023-09-15
    大数据 flink mysql elasticsearch cdc
  • 数据库备份服务 数据库备份操作指导
    数据库备份是一项非常重要的任务,可以保证数据的安全性和可靠性。以下是数据库备份操作的指导:1. 确定备份策略:根据业务需求和数据变更...
    99+
    2023-09-21
    数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作