2016-10-27 29 views
1

如果在网络或磁盘读取失败时,如何在相同或不同服务器上执行索引备份和恢复ES。我们通过快照选项了有可供执行的任何其他选项,我们需要在每周和每天进行备份,kinldy帮助我们Elasticsearch索引备份选项

回答

1

在我的公司,我们使用运行(使用curl)一个shell脚本一个crontab每晚使用Snapshot API。请注意,即使此群集有ES的posterior version,也可以在其他群集上恢复备份。

所有文件去亚马逊S3通过Cloud AWS Plugin

  • 要在终端创建crontab运行:

crontab -e

  • 随着vinano,在添加此行最后,假设你想要这个每天早上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" 
+0

如何使用curl命令crontab中,你可以请发表您的样品例如以及 – user3351014

+0

刚刚编辑与一些更多的细节@ user3351014 –

+0

如何识别快照完成所需的时间?快照会影响搜索性能吗? – user3351014