本文描述问题及解决方法同样适用于 腾讯云 Elasticsearch Service(ES)。
腾讯云 Elasticsearch Service (ES) 凭借多年的运营经验和优质的线上服务,以其低成本、高性能、高可靠性和高扩展性的特点,已经成为越来越多客户的不二之选。那么,哪些场景可以迁移到腾讯云 ES?不同的场景应该使用什么方案?它们之间有什么差异?让我们在本文中一一展开。
ES迁移主推Snapshot方案,如有其他特殊场景,可参考Logstash及在线融合方案。具体方案对比如下(方案超链接可点击):
迁移方案 | 适用场景 | 适用产品 | 停服割接时间 | 新增 | 更新 | 删除 | 清洗 | 方案实施 |
---|---|---|---|---|---|---|---|---|
Snapshot | 可接受短暂停服,对迁移速度有要求的场景 | 自建ESAWS/阿里/华为云ES | 通过多次增量快照,保证大部分场景下停服时间<=20min | ✓ | ✓ | ✓ | ☓ | 可以根据文档自助迁移 |
Logstash | 源端版本>目标端时,或迁移过程中需要定制化改造的场景 | 自建/AWS云 Opensearch华为云 OpensearchAWS/阿里/华为云ES | 在保证数据一致性的情况下,Logstash方案需全程停服,停服时间与集群资源性能、专线带宽等因素有关 | ✓ | ✓ | ☓ | ✓ | 可以根据文档自助迁移 |
在线融合(腾讯云ES特有) | 在线不停服迁移 | 自建ES | 无需停服 | ✓ | ✓ | ✓ | ☓ | 需腾讯云ES后台配合纯手工操作,有一定风险 |
其他服务 to es 迁移方案如下:
产品 | 迁移方案 | 方案链接 |
---|---|---|
阿里云 Opensearch | 使用Oceanus通过上游多表Join方式写入ES宽表 | https://cloud.tencent.com/document/product/849/60520 |
Apache Solr | Solr to ES 开源工具自研工具Bi Fang(支持断点续传) | https://github.com/o19s/solr-to-eshttps://doc.weixin.qq.com/doc/w3_AfYAHgZKAMAtqHUOionQQGRhP9otU |
Mysql | LogstashOceanus | https://cloud.tencent.com/document/product/845/55159https://cloud.tencent.com/document/product/849/60520 |
Milvus | Milvusdm | https://github.com/milvus-io/milvus-tools |
使用Snapshot从自建ES迁移至腾讯云ES集群方案概览:
使用Logstash迁移数据至腾讯云ES集群方案概览:
使用在线融合迁移数据至腾讯云ES集群方案概览:
① 问题案例:
删除快照导致集群 shard lock。
② 说明:
快照在进行中时,删除快照的操作会非常重,可能会对集群稳定性造成影响。删除快照有如下问题:
③ 解决方案:
④ 避免方式:
在快照进行中时,应避免对快照做删除操作。如发生误备份的情况,也建议等备份结束再进行删除。
① 问题案例:
源端索引 index block write / read only 属性备份后被携带到目标端。
② 说明:
如果是采用源端索引只读的方式停写,该索引属性会被同步到快照里,在恢复时也会携带禁写属性到目标端集群,所以在恢复后需要回滚禁写属性,否则会导致业务不可写。
③ 解决方案:
数据在目标端恢复之后,使用 PUT settings 接口对目标端索引全量解除禁写。
④ 规避方法:
最后一次增量前的切割操作,建议是业务主动停写。如只能通过禁写的方式停写,则务必需要在切割前对目标端集群执行一个解除禁写的操作。
① 问题案例:
在快照备份过程中,日志滚动属性发生变化。
② 说明:
在日志场景有 rollover 的情况下,如果 is_write_index 属性发生变化,则会发生恢复失败的问题,具体表现为日志里会抛异常:
Caused by: java.lang.IllegalStateException: alias [xxxxx] has more than one write index [xxxxx-2023.10.25-000001, xxxxx-2023.10.26-000002]
③ 解决方案:
取消目标端索引旧的 is_write_index 属性:
POST_aliases
{
"actions": [
{
"add": {
"index": "xxxx-2023.10.25-000001",
"alias": "xxxx",
"is_write_index": false
}
}
]
}
④ 规避方法:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。