Last active
April 29, 2024 06:53
-
-
Save vagetablechicken/fcf4ce0f8ba22a87c54955b9a0692797 to your computer and use it in GitHub Desktop.
openmldb tablet配置变更或升级
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
tablet配置变更或升级,统一都是用pre-upgrade和post-upgrade。 | |
**迁移过程中需要停写,否则可能有数据丢失。** | |
注意集群中的table特点,分两种情况: | |
1. 有大量table是单副本,pre-upgrade是要把分片挪给别的机器,中途内存占用会变多,可能迁的途中导致OOM。内存吃紧时, | |
可以新建tablet server,pre-upgrade每次都是挑replica总数最少的机器,基本上就是p2p地传到新tablet server上。不用担心其他tablet会上涨很多。 | |
2. 大部分table都是多副本表,无需担心内存,本质上只做changeleader,不涉及数据迁移。但注意,不停写的话,数据可能丢失。 | |
步骤: | |
1. 通过showtablestatus来确认集群现状,参考 https://openmldb.ai/docs/zh/main/maintain/openmldb_ops.html。注意请使用0.9.0以上的tools,对0.8.x兼容。重点看Replica列,是1还是大于1。 | |
2. 确认是上文的哪种情况,大部分表是单副本还是多副本。 | |
3. 如果是单副本多且内存吃紧,请启动一台新tablet server,用来过渡。 | |
4. 对一台tablet pre-upgrade+重启,参考 https://openmldb.ai/docs/zh/main/maintain/upgrade.html#tablet ,注意不要立即post-upgrade | |
5. 重启后的tablet可能自己本地数据都加载失败,通过showtablestatus来确认,参考 https://openmldb.ai/docs/zh/main/maintain/openmldb_ops.html。注意请使用0.9.0以上的tools,对0.8.x兼容。 | |
6. 如果第5步检查发现,存在不健康table,使用recoverdata修复。 | |
7. 再次showtablestatus确认表健康,再执行post-upgrade。此步目的是让重启的tablet承担原有的主副本,避免对其他tablet压力过大。如果你认为不需要,可以跳过此步。 | |
8. 如果新启动了过渡用的tablet server,并想将它踢出集群,使用scalein。 | |
9. 如果认为现在的集群主副本分布不均匀,可使用scaleout来自动均衡。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment