我们运行一个TokuMX副本集(2个实例+仲裁器),大约有120 on的数据(在磁盘上)和大量的索引。
自从升级到TokuMX 2.0以来,我们注意到重启辅助实例总是需要很长时间。在切换到正常模式之前,数据库一直停留在1h+的STARTUP2上。当服务器在STARTUP2上时,它在持续的CPU负载下运行--我们假设它正在重建它的索引,即使它之前已经正常关闭了。
虽然这很烦人,但在主服务器可用的情况下,它并没有造成停机。但最近在一次扩展维护期间,我们需要重新启动这两个实例。我们先停止次服务器,然后停止主服务器,并以相反的顺序启动它们。但这导致占用了完整的1h+启动时间,因此此时副本集不可用。
在不等待这么长时间的情况下,无法重新启动可能已关闭的副本集,这是我们不愿承担的风险。
有没有办法避免在启动时进行(可能的)完整索引重建?
发布于 2015-03-18 03:14:22
@Chris -我们现在正在重新查看您的票证。它可能在不经意间过早关闭。
@本杰明:你可能想把它发布到https://groups.google.com/forum/#!forum/tokumx-user上,让更多的TokuMX用户和Tokutek支持团队看到它。
发布于 2015-06-19 17:19:15
这是TokuMX中的一个错误,导致它在启动时加载并迭代整个oplog,即使oplog已经被大部分(或全部)复制。我已经在本地构建的TokuMX中找到并修复了这个问题。拉取请求在这里:https://github.com/Tokutek/mongo/pull/1230
这将我的节点启动时间从几个小时减少到不到5秒。
https://stackoverflow.com/questions/29061997
复制相似问题