集群的备份与恢复
- 不能简单的通过拷贝各个节点的相关数据来备份数据
- 可靠的方式只有通过使用snapshot和restore方法
- 备份数据 --> 备份集群的相关配置 --> 备份集群的安全配置
注册Repository
#在elasticsearch.yml加入相关配置
#path.repo: ["/Users/your/my_backup"]
PUT _snapshot/my_fs_backup
{
"type": "fs",
"settings": {
"location": "/Users/your/my_backup",
"compres": true
}
}
还支持amazon s3,google cloud storage等存储方式
快照的创建
#创建一个整个集群的snapshot
PUT _snapshot/my_fs_backup/snapshot_1?wait_for_completion=true
#指定索引创建快照
PUT _snapshot/my_fs_backup/snapshot_2?wait_for_completion=true
{
"indices": "test",
"ignore_unavailable": true,
"include_global_state": false,
"metadata": {
"token_by": "cwg",
"token_because": "backup before upgrading"
}
}
快照的使用
#查看快照
GET _snapshot/my_fs_backup/_all
#删除快照
DELETE _snapshot/my_fs_backup/snapshot_2
#恢复快照
POST _snapshot/my_fs_backup/snapshot_1/_restore
{}
#指定索引进行restore
POST _snapshot/my_fs_backup/snapshot_2/_restore
{
"indices": "test",
"index_settings": {
"index.number_of_replicas": 5
},
"ignore_index_settings": [
"index.refresh_interval"
]
}
#删除repo
DELETE _snapshot/my_fs_backup
总结
- 数据备份的api为snapshot & restore
- 简单拷贝数据目录,可能无法成功备份集群
- 支持整个集群备份,以及单个索引的备份和恢复