Sphinx Search binlog格式不向后兼容



斯芬克斯团队的问题:为什么在新的2.0.5版本中,binlog格式与以前的2.0.4版本不兼容?

如何迁移到新版本?

看看我安装2.0.5:后得到了什么

WARNING: index 'index_9127': preload: /var/db/sphinxsearch/idx/index_9127.meta is v.6, binary is v.5; NOT SERVING

IS兼容。

我调查了我们的来源,发现没有版本变化2.0.4和2.0.5之间(实际上必须如此)。

然而,binlog的版本在我们的主干中发生了更改(即2.1伏分支,而不是2.0.X!)在行李箱中,我们可以自由提升版本因为我们添加了新的功能并开发了狮身人面像。自从svnrev.编号是两个分支的一个,保持使用从svn构建的sphinx时的必要分支。例如,svn版本3308在rel20分支中,是2.0.5版本,但是svn版本3189在主干分支中,是当前的2.1.X-dev数字(3308对3189)决不是说越高的一个指向更"新鲜"的版本。顺便说一句,他们不会被混淆,因为他们放在svn repo的不同分支(=文件夹)中。

实际上,您似乎使用了"trunk"版本(2.1.X-dev),然后升级到2.0.5版本(实际上它是donwgrade,而不是升级版)。和结果是——旧版的斯芬克斯无法装载新的索引的版本。

所以,问题是狮身人面像中的而不是

如果数据很重要,并且降级到2.0.5分支也是重要的是,正确关闭狮身人面像可能有意义(这样binlog将不包含任何数据,因为它的目的是保存崩溃),然后清除所有binlog文件,包括"meta"。在重新启动之后,sphinx将使用当前版本重新创建文件。然而,它需要与备份一起执行,因为版本更改它可能也是索引格式的另一个更改(以及如果是这样,旧版本无论如何都不会加载更新鲜的索引)。

顺便说一句,可以保持在2.1伏,因为整个含量稳定在2.0伏分支会定期合并到主干中,所以那里的所有错误都会也固定在行李箱中。

最新更新