ES数据备份还原

发布时间 2023-09-23 15:53:27作者: liuzonglin

ES数据备份还原

1. 创建备份目录并更改权限

执行以下命令创建备份文件存储的路径
mkdir -p /mount/backups/my_backup
更改权限以及属性
chmod 775 /mount/backups/my_backup
chown elasticsearch:elasticsearch /mount/backups/my_backup/

2. 更改 elasticsearch.yml 文件

文件末尾增加
path.repo: ["/mount/backups/my_backup/"]

3. 重启 ES 并注册repository

重启命令:
/etc/init.d/elasticsearch restart
注册repository
curl -XPUT 'http://localhost:9200/_snapshot/backup' -d 
'{
	"type": "fs",
	"settings": {
		"location": "/mount/backups/my_backup",
		"compress": true
	}
}'

4. 查看是否注册成功

curl -XGET 'http://127.0.0.1:9200/_snapshot/backup'
返回结果:
{
	"backup": {
		"type": "fs",
		"settings": {
			"compress": "true",
			"location": "/usr/local/las/data/backup/es"
		}
	}
}

5. 执行备份所有索引信息

curl -XPUT 'http://127.0.0.1:9200/_snapshot/backup/test1?wait_for_completion=true'
注释:此次备份名称为:test1,等待命令执行完毕,执行过程会消耗一段时间(需多等待一会)

6. 备份指定索引信息

curl -XPUT 'http://127.0.0.1:9200/_snapshot/backup/esback' -d
'{
	"indices": "las-e-2017-06-21,las-e-2016-07-21",
	"ignore_unavailable": true,
	"include_global_state": false,
	"wait_for_completion": true
}'

7. 查看备份状态

curl -XGET 'http://localhost:9200/_snapshot/backup/esback?pretty'

8. 删除指定备份信息

curl -XDELETE 'http://localhost:9200/_snapshot/backup/esback'

9. 还原所有备份信息

curl -XPOST 'http://localhost:9200/_snapshot/backup/bak/_restore'

10. 还指定索引信息

curl -XPOST 'http://localhost:9200/_snapshot/backup/bak/_restore' -d 
'{ 
	"indices":"las-e2018-05-01,
	las-e-2018-05-02",
	"ignore_unvailable":true
}'