数据备份
1、阿里云上创建 oss 存储桶
2、源 es 上创建镜像备份仓库
代码语言:javascript复制PUT _snapshot/my_backup/
{
"type": "oss",
"settings": {
"endpoint": "http:/xxx.aliyuncs.com", // oss 的 Endpoint 地址
"access_key_id": "xxxx", // 用户秘钥,可通过控制台右上角的头像获取——“AccessKey 管理”
"secret_access_key": "xxxxxx", // 同上
"bucket": "xxxxxx", // bucket name,创建 bucket 时的命名
"compress": true, // 是否压缩源数据大小
"chunk_size": "500mb", // 数据分块大小
"base_path": "snapshot/" // 仓库起始路径
}
}
3、根据备份仓库创建快照
代码语言:javascript复制PUT _snapshot/shani_backup1/snapshot_1
查看快照信息
代码语言:javascript复制PUT _snapshot/shani_backup1/snapshot_1
4、查看 oss,可发现刚刚完成备份的快照
数据迁移
使用腾讯云提供的传输工具,将存储在阿里云 oss 中的镜像传输至腾讯云 cos
当前腾讯云支持的对象存储迁移源有如下几家:
代码语言:javascript复制阿里云 OSS
UCloud UFile
七牛云 KODO
百度云 BOS
金山云 KS3
腾讯云 COS
URL列表
AWS S3中国区
AWS S3国际站
华为云 OBS
1、进入对象存储迁移,创建一个任务,填写迁移信息
2、发起迁移,任务成功完成。数据迁移的耗时除了考虑数据量大小,还需要考虑地域
3、查看腾讯云 cos,快照数据已迁移过来
数据恢复
1、在腾讯云的(目标)集群中创建一个备份仓库,注意:"bath_path"
代码语言:javascript复制PUT _snapshot/my_cos_backup
{
"type": "cos",
"settings": {
"app_id": "125xxx742",
"access_key_id": "AKxxxxxxxxxxxg3tg",
"access_key_secret": "hCwxxxxxxxxxxxxaqrc",
"bucket": "shanies",
"region": "ap-guangzhou",
"compress": true,
"chunk_size": "500mb",
"base_path": "/snapshot1"
}
}
2、创建快照,并查看快照状态
代码语言:javascript复制PUT _snapshot/my_cos_backup/snapshot_1
GET _snapshot/my_cos_backup/snapshot_1
3、从快照中恢复数据,注意:在源集群中全量备份数据,恢复的时候,会有索引冲突的现象
可选择恢复指定索引
代码语言:javascript复制POST /_snapshot/my_cos_backup/snapshot_1/_restore
{
"indices": "shakespeare",
"rename_pattern": "index_(. )",
"rename_replacement": "restored_index_$1"
}
目标集群中可看到这个索引已存在
注意:ES 的数据可以跨小版本恢复,但仅支持向前兼容,也就是低版本集群的数据可以恢复至高版本集群,但高版本集群的数据不可以恢复至低版本。
快照原理
es 的快照是基于 Lucene 实现,Lucene 快照针对的都是最后一个提交点的快照,没有增量概念,每一次都是全量快照,并且与快照相关的物理文件都不会删除;es 则负责数据拷贝、仓库管理、增量备份以及快照删除。主要流程:客户端请求——>协调节点(解析请求,并将结果封装发给主节点)——>主节点(广播请求)——>数据节点(将备份文件 copy 至仓库,并在 copy 完成后删除无用文件)