近期由于elasticsearch的版本升级,需要研究下elasticsearch的快照(snapshot)和恢复(restore)功能。
先说下背景,目前环境采用的是elasticsearch1.0版本,如果升级2.2版本,数据必须进行迁移,看官方文档给的建议是采用snapshot和restore的api操作。
同时说下elasticsearch2.2版本的启动不可以采用root账号,必须建立单独的账号才可以启动,否则会报以下错误
接下来说下创建备份的过程(es1.0版本的操作):
1. 确保索引数据保存到硬盘中,运行以下命令:
2. 创建备份的目录,如"/opt/es_backups/my_backup",用户需要对该目录拥有读写权限
3. 创建一个仓库(repository),命令:
4. 备份索引,命令:
5. 查看备份状态,命令:
恢复备份的过程(es2.2版本的操作):
1. 停止es1.0集群的运行,使用kill命令杀掉es相关进程
2. es2.2版本还原1.0版本备份最重要的就是创建1.0版本备份目录相同的仓库,但是从es1.6开始,创建仓库,必须修改elasticsearch.yml文件,增加结点"path.repo",同时,es2.2的运行用户也必须有备份目录的读写权限。
elasticsearch.yml文件中增加的节点内容为:
运行创建仓库的命令,和上面备份第3点的命令完全一致。
3. 恢复备份,命令如下:
4. 查看恢复的状态:
参考内容: