elasticsearch 备份恢复步骤
1、查看仓库,
GET _snapshot
返回, 仓库名是aliyun_auto_snapshot
{
"aliyun_auto_snapshot" : {
"type" : "oss",
"settings" : {
"compress" : "true",
"base_path" : "fb632b-1241148226163200/xxx",
"endpoint" : "http://oss-cn-shenzhen-internal.aliyuncs.com"
}
}
}
2、查看当前备份文件
GET /_cat/snapshots/aliyun_auto_snapshot?v
返回
id status start_epoch start_time end_epoch end_time duration indices successful_shards failed_shards total_shards
es-xxx_20241206030009 SUCCESS 1733425210 19:00:10 1733425218 19:00:18 7.9s 4 13 0 13
es-xxx_20241207030008 SUCCESS 1733511609 19:00:09 1733511615 19:00:15 6.6s 4
3、备份最新数据。排除系统索引。
PUT _snapshot/aliyun_auto_snapshot/aliyun_auto_snapshot_2024012121614
{"indices":"*,-.*"}
4、查看备份
GET /_cat/snapshots/aliyun_auto_snapshot?v
5、恢复备份的方法,恢复之前关闭索引(如果是增量恢复),或者清空索引数据。
POST _snapshot/aliyun_auto_snapshot/aliyun_auto_snapshot_2024012121614/_restore
{"indices":"*,-.*","ignore_unavailable":"true"}
如果是增量恢复关闭索引的方法
POST *,-.*/_close
如果需要把备份备份到自定义仓库中,以oss为例子,创建方法
PUT _snapshot/my_es_snapshot_from_oss/
{
"type": "oss",
"settings": {
"endpoint": "oss-cn-shenzhen-internal.aliyuncs.com",
"access_key_id": "xxx",
"secret_access_key": "xxx",
"bucket": "es-snapshot-qianyi",
"compress": true,
"chunk_size": "500mb",
"base_path": "my_es_snapshot_from_oss/"
}
}
加速快照恢复的方法
GET _cluster/settings?flat_settings&include_defaults
PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.node_concurrent_recoveries": "4",
"indices.recovery.max_bytes_per_sec": "100mb"
}
}
修改分片迁移的配置,以便在rebalance或者recovery时更快恢复集群。
indices.recovery.max_bytes_per_sec:恢复时单个节点的总进出流量限制。(默认40mb)
indices.recovery.max_concurrent_file_chunks:恢复时可并发拷贝的文件块数量。(默认2)
cluster.routing.allocation.cluster_concurrent_rebalance:整个集群范围内允许同时rebalance的shard数。(默认2)
cluster.routing.allocation.node_initial_primaries_recoveries:单个节点主分片并行恢复的数据。(默认4)
cluster.routing.allocation.node_concurrent_recoveries:单个节点允许同时接收、传出恢复的shard数,(默认2)