COS快照迁移ES集群
一、COS 全量快照备份
基于 COS 快照的迁移方式是使用 ES 的 snapshot api
接口进行迁移,基本原理就是从源 ES 集群创建索引快照,然后在目标 ES 集群中进行恢复。通过 snapshot 方式进行数据迁移时,特别需要注意 ES 的版本问题:
目标 ES 集群的主版本号(如5.6.4中的5为主版本号)要大于等于源 ES 集群的主版本号。
1.x 版本的集群创建的快照不能在 5.x 版本中恢复。
1、源es集群创建仓库
GET /_cat/indices?v PUT _snapshot/my_cos_backup { "type": "cos", "settings": { "app_id": "130*****", "access_key_id": "*****", "access_key_secret": "******", "bucket": "es-xyz", "region": "ap-****", "compress": true, "base_path": "/" } }
/* app_id:腾讯云账号 APPID。
access_key_id:腾讯云 API 密钥 SecretId。
access_key_secret:腾讯云 API 密钥 SecretKey。
bucket:COS Bucket 名字,不带 appId 后缀的 bucket 名。
region:COS Bucket 地域,必须与 ES 集群同地域。
*/
2、源es集群创建自建索引的快照
PUT /_snapshot/my_cos_backup/snapshot_01 { "indices": "*,-.*,-ilm-*" }
3、源es集群查看验证
GET /_snapshot/my_cos_backup/snapshot_01/_status
4、腾讯云cos迁移到阿里云的oss
选择阿里云在线迁移服务
5、在阿里云es建立相同的仓库
PUT _snapshot/my_cos_backup { "type": "oss", "settings": { "endpoint": "oss-cn-*****-internal.aliyuncs.com", "access_key_id": "**********", "secret_access_key": "************", "bucket": "es-test", "compress": true } }
6、在阿里云es上恢复快照
POST _snapshot/my_cos_backup/snapshot_01/_restore { "indices":"*", "ignore_unavailable":"true" }
7、查看索引恢复时间
GET /_cat/recovery?v&format=json&pretty&s=time:desc
二、增量快照备份
1、腾讯云es集群增量打快照
PUT /_snapshot/my_cos_backup/snapshot_02 { "indices": "*,-.*,-ilm-*" }
2、腾讯云cos增量迁移数据到阿里云的oss
选择阿里云在线迁移服务 -->创建迁移任务
3、手动关闭集群自建索引
POST *,-.*/_close
4、在阿里云es上恢复增量快照,快照恢复完成后,索引会被自动打开
POST _snapshot/my_cos_backup/snapshot_02/_restore { "indices":"*", "ignore_unavailable":"true" }
5、目标es集群查看恢复情况
GET _snapshot/my_cos_backup/*
6、查看某个索引的恢复耗时
GET index001/_recovery