场景:ES线上的数据和服务迁移到另外的机器上去
老ES机器ip:172.16.0.1
新ES机器ip:172.16.0.2
一. 首先,
在备份之前要在es/config/elasticsearch.yml添加仓库配置:
path.repo: ["/mnt/backup/es_backup"]
1.
2.重启ES
二. 在老机器上
3.创建备份仓库
在/mnt/backup下新建名为es_backup的仓库
POST /_snapshot/es_backup
{
"type": "fs",
"settings": {
"location": "/mnt/backup/es_backup",
"compress": true,
"chunk_size": "1g",
"max_snapshot_bytes_per_sec": "50m",
"max_restore_bytes_per_sec": "50m"
}
max_snapshot_bytes_per_sec 和max_restore_bytes_per_sec 为了限制备份和恢复时的速度
如果新建仓库的时候报错 "reason": "failed to create blob container" access_denied_exception 请检查/data/es/snapshot文件夹权限
4.备份数据
PUT /_snapshot/es_backup/ss_20220916?wait_for_completion=true
1.
如果不希望快照作为后台进程运行,可以通过添加wait_for_completion=true参数,使其在前台运行,知道备份完成。
如果想备份部分索引,可以加上indices 参数:
PUT /_snapshot/es_backup/ss_20220916?wait_for_completion=true
{
"indices": "index_1,index_2"
}'
1.
4.
终止备份:
DELETE /_snapshot/es_backup/ss_20220916
1.
查看备份信息
GET /_snapshot/es_backup/ss_20220916
1.
接下来到恢复数据至新服务器上
三. 在新机器上
(将备份数据打包传到新机器上,并解压到/mnt/backup/es_backup目录下)
6.恢复数据
与之前步骤一致,先修改配置文件
path.repo:["/mnt/backup/es_backup"],
1.
7.创建备份仓库bro_backup,然后执行恢复命令:
POST /_snapshot/es_backup
{
"type": "fs",
"settings": {
"location": "/mnt/backup/es_backup",
"compress": true,
"chunk_size": "1g",
"max_snapshot_bytes_per_sec": "50m",
"max_restore_bytes_per_sec": "50m"
}
8.执行恢复命令文章来源:https://www.toymoban.com/news/detail-594067.html
POST /_snapshot/bro_backup/ss_20220916/_restore
{ "ignore_unavailable": true, "include_global_state": false }
1.
2.
如果只想恢复某些分片的数据,还可以在json参数里加{"indices": "game_info"},以指定只恢复game_info分片数据。
9.查看恢复的分片数据文章来源地址https://www.toymoban.com/news/detail-594067.html
到了这里,关于ES数据备份与恢复的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!