当es集群的数据量较小的情况下elasticdump这个工具比较方便,但是当数据量达到一定级别比如上百G的时候,elasticdump速度就很慢了,此时我们可以使用快照的方法进行备份
elasticdump工具的使用可以参考 博文:elasticsearch5.0.1集群一次误删除kibana索引引发的血案 http://blog.csdn.net/reblue520/article/details/61925375
个人感觉这两个工具各有优缺点,和mysql的备份工具比起来:
elasticdump --> mysqldump# 都是逻辑备份需要将数据一条一条导出再导入,适合数据量小的场景
snapshot --> percona-xtrabackup # 物理备份,速度取决于磁盘IO能力,适合大数据量场景
一、使用snapshot恢复.kibana索引数据
1.修改配置文件:
vim elasticsearch.yml
path.repo: ["/data/bak"]
2.创建仓库
curl -XPUT http://10.25.177.47:9200/_snapshot/my_backup -d '
{
"type": "fs",
"settings": {
"location": "/data/bak",
"compress": true
}
}
'
# 返回true表示成功
{"acknowledged":true}
查看仓库
# curl -XGET 'http://10.25.177.47:9200/_snapshot/my_backup?pretty'
{
"my_backup" : {
"type" : "fs",
"settings" : {
"compress" : "true",
"location" : "/data/bak"
}
}
}
3、备份数据
curl -XPUT http://10.25.177.47:9200/_snapshot/my_backup/snapshot_20161207
执行上面的命令会快照ealsticsearch上所有的索引。
如果需要快照指定的索引
curl -XPUT http://10.25.177.47:9200/_snapshot/my_backup/snapshot_20170316 -d '
{
"indices": ".kibana"
}
'
{"accepted":true}
如果成功返回结果显示{"accepted":true}
4、查看备份
# curl -XGET http://10.25.177.47:9200/_snapshot/my_backup/snapshot_20170316?pretty
{
"snapshots" : [
{
"snapshot" : "snapshot_20170316",
"uuid" : "DhdKZkTaQ4G-eLAjJ68zGQ",
"version_id" : 5000199,
"version" : "5.0.1",
"indices" : [
".kibana"
],
"state" : "SUCCESS",
"start_time" : "2017-03-16T09:56:02.075Z",
"start_time_in_millis" : 1489658162075,
"end_time" : "2017-03-16T09:56:02.154Z",
"end_time_in_millis" : 1489658162154,
"duration_in_millis" : 79,
"failures" : [ ],
"shards" : {
"total" : 1,
"failed" : 0,
"successful" : 1
}
}
]
}
也可以使用下面的命令查看快照的状态
# curl -XGET http://10.25.177.47:9200/_snapshot/my_backup/snapshot_20170316/_status?pretty
{
"snapshots" : [
{
"snapshot" :