有没有办法创建一个转储文件,其中包含索引的所有数据及其设置和映射?
类似于mongoDB与mongodump
或在Solr中的方式,其数据文件夹被复制到备份位置.
干杯!
Eva*_*van 44
这是我们为此目的而努力的新工具https://github.com/taskrabbit/elasticsearch-dump.您可以将索引导出/导出JSON文件,或从一个群集导出到另一个群集.
And*_*ann 35
Elasticsearch现在开箱即用:
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-snapshots.html
Kes*_*dhi 12
我们可以使用 elasticdump 进行备份和恢复,我们可以将数据从一个服务器/集群移动到另一个服务器/集群。
1. 使用 将一个索引数据从一个服务器/集群移动到另一个服务器/集群的命令elasticdump。
# Copy an index from production to staging with analyzer and mapping:
elasticdump \
--input=http://production.es.com:9200/my_index \
--output=http://staging.es.com:9200/my_index \
--type=analyzer
elasticdump \
--input=http://production.es.com:9200/my_index \
--output=http://staging.es.com:9200/my_index \
--type=mapping
elasticdump \
--input=http://production.es.com:9200/my_index \
--output=http://staging.es.com:9200/my_index \
--type=data
Run Code Online (Sandbox Code Playgroud)
2. 使用 . 命令将所有索引数据从一个服务器/集群移动到另一个服务器/集群multielasticdump。
备份
multielasticdump \
--direction=dump \
--match='^.*$' \
--limit=10000 \
--input=http://production.es.com:9200 \
--output=/tmp
Run Code Online (Sandbox Code Playgroud)
恢复
multielasticdump \
--direction=load \
--match='^.*$' \
--limit=10000 \
--input=/tmp \
--output=http://staging.es.com:9200
Run Code Online (Sandbox Code Playgroud)
笔记:
如果 --direction 是默认的转储, --input 必须是 ElasticSearch 服务器的基本位置的 URL(即http://localhost:9200)并且 --output 必须是一个目录。每个匹配的索引都会创建一个数据、映射和分析器文件。
对于加载从 multi-elasticsearch 转储的文件,--direction 应设置为 load,--input 必须是 multi-elasticsearch 转储的目录,--output 必须是 Elasticsearch 服务器 URL。
第二个命令将采取的备份settings,mappings,template和data自己作为JSON文件。
该--limit不宜超过10000否则,它会给出一个例外。
Roh*_*ary 10
ElasticSearch本身提供了一种创建数据备份和恢复的方法.执行此操作的简单命令是:
CURL -XPUT 'localhost:9200/_snapshot/<backup_folder name>/<backupname>' -d '{
"indices": "<index_name>",
"ignore_unavailable": true,
"include_global_state": false
}'
Run Code Online (Sandbox Code Playgroud)
现在,如何创建这个文件夹,如何在ElasticSearch配置中包含这个文件夹路径,以便它可用于ElasticSearch,恢复方法,这里有很好的解释.在这里看看它的实用演示冲浪.
MD *_*lam 10
对于您的情况,Elasticdump是完美的答案。
首先,您需要下载映射,然后下载索引
# Install the elasticdump
npm install elasticdump -g
# Dump the mapping
elasticdump --input=http://<your_es_server_ip>:9200/index --output=es_mapping.json --type=mapping
# Dump the data
elasticdump --input=http://<your_es_server_ip>:9200/index --output=es_index.json --type=data
Run Code Online (Sandbox Code Playgroud)
如果您想在任何服务器上转储数据,我建议您通过 docker 安装 esdump。您可以从此网站博客链接获取更多信息
| 归档时间: |
|
| 查看次数: |
98816 次 |
| 最近记录: |