【发布时间】:2017-03-10 04:37:11
【问题描述】:
如果网络或磁盘读取出现任何故障,如何在相同或不同的服务器上执行索引备份和恢复 ES。我们通过了快照选项是否有任何其他选项可以实现它,我们需要每周和每天执行备份,请帮助我们
【问题讨论】:
标签: search elasticsearch indexing
如果网络或磁盘读取出现任何故障,如何在相同或不同的服务器上执行索引备份和恢复 ES。我们通过了快照选项是否有任何其他选项可以实现它,我们需要每周和每天执行备份,请帮助我们
【问题讨论】:
标签: search elasticsearch indexing
在我的公司,我们使用crontab,每晚使用Snapshot API 运行shell 脚本(使用curl)。请注意,您可以在另一个集群上恢复您的备份,即使该集群有一个 posterior version 的 ES。
所有文件都通过 Cloud AWS Plugin 发送到 Amazon S3
crontab 运行:crontab -e
vi 或nano,在最后添加这一行,假设您希望它每天早上5 点运行:5 0 * * * /home/shell_scripts_directory/snapshot.sh
然后在上面指定的位置创建snapshot shell 脚本:
#!/bin/bash
NOW="$(date +'%Y-%m-%d')"
S3_REPO="s3"
NODE_IP="192.168.1.80"
COMMAND="http://${NODE_IP}:9200/_snapshot/${S3_REPO}/${NOW}"
RESULT=$(curl -s -XPUT "$COMMAND")
echo "Snapshot from [$NOW] at [$S3_REPO] resulted with $RESULT" >> /tmp/snapshot.log
请注意,此脚本还会创建一个日志/tmp/snapshot.log
要获取有关当前快照任务的信息:
curl -XGET "localhost:9200/_snapshot/_status"
您还可以使用备份标签查看特定任务,即使它当前未运行:
curl -XGET "localhost:9200/_snapshot/my_backup/snapshot_1/_status"
【讨论】: