开启阿里云 Elasticsearch 的自动备份功能后,系统将按照设定的备份周期自动备份索引数据。当遇到数据误删除、应用逻辑错误等情况时,可以从自动备份中恢复数据。
注意事项
数据备份与恢复依赖 elasticsearch-repository-oss 插件,阿里云 Elasticsearch 实例默认已安装且不可卸载。详情请参见 elasticsearch-repository-oss。
快照仅保存索引数据,不保存监控数据(
.monitoring、.security_audit前缀索引)、元数据、Translog、实例配置、软件包、插件和日志。自动备份只保留最近 7 天的快照数据,且仅支持恢复到原集群。如需跨集群恢复,请参见手动备份与恢复或自动备份快照到本地OSS仓库。自动备份的索引元数据大小不能超过
100MB,超出此限制可能导致自动备份任务无法执行,建议进行手动备份与恢复。首次快照为全量拷贝,耗时较长,建议首次使用手动备份与恢复。
开启自动备份及监控报警
开启自动备份
在左侧导航栏,单击Elasticsearch实例。
在顶部菜单栏,选择资源组和地域。
在Elasticsearch实例列表单击目标实例 ID,进入实例详情页。
在左侧导航栏,单击数据备份。
在数据备份(免费试用)区域,打开自动备份开关。
单击自动备份开始时间右侧的设置。
内核增强版类型实例的自动备份时间由系统默认生成,不支持修改。
在自动备份周期设置面板,选择备份周期(自动备份触发的时间)。
备份周期
说明
每30分钟
每30分钟进行一次自动备份。
每天
每天都会进行自动备份。可自定义备份时间。
自定义
自定义选择备份的周期和时间。
自动备份时间为当前实例所在地域的时间。
单击确定。
开启监控报警
自动备份开启后,建议同步配置集群监控报警,监控快照的备份状态。若监控页面中,快照状态(value)指标状态为 2,表示快照任务失败。
通过 /_cat/snapshots/aliyun_auto_snapshot?format=json 命令可查看最近一次快照的状态详情,并在需要时进行手动备份。
快照状态包含:
SUCCESS:所有分片备份成功。
PARTIAL:部分分片备份失败。
FAILED:备份任务执行失败。
若无最新快照,表示任务未触发。集群异常、节点异常等情况下,系统可能不会进行自动备份。
查看备份快照
开启自动备份功能后,可以在 Kibana 控制台上通过 _snapshot API 查看自动备份快照信息。详情请参见通过Kibana连接集群。
查看快照仓库。
GET _snapshot返回结果示例:
{ "aliyun_auto_snapshot" : { "type" : "oss", "settings" : { "compress" : "true", "base_path" : "cf95b9-185320276651****/es-cn-09k2053us0003****", "endpoint" : "http://oss-cn-hangzhou-internal.aliyuncs.com" } } }参数
说明
aliyun_auto_snapshot
自动快照仓库名称,首次快照时自动生成,固定为 aliyun_auto_snapshot。一个仓库可以存储多个快照,每个快照中可以包含所有、部分或单个索引的备份数据。
type
快照存储介质。oss 表示使用对象存储服务 OSS。
compress
是否压缩快照的元数据文件(索引映射和设置)。数据文件不受此参数影响。true 表示开启压缩,false(默认值)表示不压缩。
base_path
快照在 OSS 中的存储位置。
endpoint
OSS 所处地域的信息。
查看 aliyun_auto_snapshot 仓库中所有快照的信息。
GET _snapshot/aliyun_auto_snapshot/_all返回结果示例:
{ "snapshots": [ { "snapshot": "es-cn-09k2053us0003****_20210117030003", "uuid": "vIdSCkthTeGa0nSj4D****", "version_id": 5050399, "version": "5.5.3", "indices": [ ".kibana" ], "state": "SUCCESS", "start_time": "2018-06-28T01:22:39.609Z", "start_time_in_millis": 1530148959609, "end_time": "2018-06-28T01:22:39.923Z", "end_time_in_millis": 1530148959923, "duration_in_millis": 314, "failures": [ ], "shards": { "total": 1, "failed": 0, "successful": 1 } }, { "snapshot": "es-cn-09k2053us0003****_20210118030004", "uuid": "XKO_Uwz_Qu6mZrU3Am****", "version_id": 5050399, "version": "5.5.3", "indices": [ ".kibana" ], "state": "SUCCESS", "start_time": "2018-06-28T01:25:00.764Z", "start_time_in_millis": 1530149100764, "end_time": "2018-06-28T01:25:01.482Z", "end_time_in_millis": 1530149101482, "duration_in_millis": 718, "failures": [ ], "shards": { "total": 1, "failed": 0, "successful": 1 } } ] }自动备份时间为当前地域的时间,而返回结果中的时间为 UTC 时间。北京时间 = UTC 时间 + 8 小时。
state 字段为快照状态,共有以下 5 种:
快照状态
说明
IN_PROGRESS
快照正在执行。
SUCCESS
快照执行结束,且所有 shard 中的数据都存储成功。
FAILED
快照执行结束,但部分索引中的数据存储不成功。
PARTIAL
部分数据存储成功,但至少有 1 个 shard 中的数据没有存储成功。
INCOMPATIBLE
快照与阿里云 Elasticsearch 实例的版本不兼容。
自动备份快照还有以下未显示的默认参数:
参数
说明
max_snapshot_bytes_per_sec
单节点数据备份的最快速度,默认为每秒 40mb。
max_restore_bytes_per_sec
单节点数据恢复的最快速度,默认为每秒 40mb。
chunk_size
快照时,大文件会被拆分成若干个小文件。该参数用来设置拆分出的文件大小,例如 1g、10m、5k。默认为 null,表示无限制。
查看 aliyun_auto_snapshot 仓库中指定快照的详细信息。
GET _snapshot/aliyun_auto_snapshot/<snapshot>/_status<snapshot>:自动备份快照名称。可通过查看所有快照命令获取,例如 es-cn-09k2053us0003****_20210118030004。
返回结果示例:
{ "snapshots": [ { "snapshot": "es-cn-09k2053us0003****_20210118030004", "repository": "aliyun_auto_snapshot", "uuid": "XKO_Uwz_Qu6mZrU3Am****", "state": "SUCCESS", "shards_stats": { "initializing": 0, "started": 0, "finalizing": 0, "done": 1, "failed": 0, "total": 1 }, "stats": { "number_of_files": 4, "processed_files": 4, "total_size_in_bytes": 3296, "processed_size_in_bytes": 3296, "start_time_in_millis": 1530148959688, "time_in_millis": 77 }, "indices": { ".kibana": { "shards_stats": { "initializing": 0, "started": 0, "finalizing": 0, "done": 1, "failed": 0, "total": 1 }, "stats": { "number_of_files": 4, "processed_files": 4, "total_size_in_bytes": 3296, "processed_size_in_bytes": 3296, "start_time_in_millis": 1530148959688, "time_in_millis": 77 }, "shards": { "0": { "stage": "DONE", "stats": { "number_of_files": 4, "processed_files": 4, "total_size_in_bytes": 3296, "processed_size_in_bytes": 3296, "start_time_in_millis": 1530148959688, "time_in_millis": 77 } } } } } } ] }
从自动备份恢复数据
恢复 . 开头的系统索引可能会导致 Kibana 访问失败,建议不要恢复系统索引。在 Kibana 控制台上,执行如下命令从快照中恢复索引数据:
恢复指定快照的所有索引(后台执行)。
POST _snapshot/aliyun_auto_snapshot/<snapshot>/_restore<snapshot>:自动备份快照的名称,例如 es-cn-abcdefghij****_20180627091600。
恢复指定快照的所有索引,并等待任务处理完成。
_restore API 为异步调用,实例在确认可执行恢复操作后会立即返回。追加 wait_for_completion 参数可阻塞直到恢复完成:
POST _snapshot/aliyun_auto_snapshot/<snapshot>/_restore?wait_for_completion=true<snapshot>:自动备份快照名称,例如 es-cn-abcdefghij****_20180627091600。
恢复指定快照的指定索引,并为恢复的索引重命名(后台执行)。
POST _snapshot/aliyun_auto_snapshot/<snapshot>/_restore { "indices": "index_1", "rename_pattern": "index_(.+)", "rename_replacement": "restored_index_$1" }参数
说明
<snapshot>
自动备份快照名称,例如 es-cn-abcdefghij****_20180627091600。
indices
需要恢复的索引名称。
rename_pattern
可选,正则匹配需要恢复的索引名称。
rename_replacement
可选,为匹配上的索引按规则重命名。
关闭自动备份
在左侧导航栏,单击Elasticsearch实例。
在顶部菜单栏处,选择资源组和地域。
在Elasticsearch实例中单击目标实例 ID。
在左侧导航栏,单击数据备份。
在数据备份(免费试用)区域,单击开启自动备份开关,关闭自动备份功能。