sphinx出现WARNING: rotating index 'delta': cur to old rename failed问题

来源:互联网 发布:易语言数据库 编辑:程序博客网 时间:2024/05/22 03:08

先说下为何出现问题:

配置完csft.conf后因第一次只配置了主索引,并开启测试,发生同样问题后没做调查就使用笨方法把searchd服务重启了一次,问题得以解决。

这里使用了./indexer --rotate test1 这个命令创建主索引,其实这个--rotate命令是问题的根本所在,继续往下说:

接着在csft.conf中配置了增量索引,然后使用./indexer --rotate delta 命令创建增量索引,因为这时增量索引文件是不存在的,而rotate的 逻辑为需要将原article_delta.spa重命名为article_delta.old.spa,然后将article_delta.new.spa重命名为article_delta.spa,再通知searchd重启完成rotate。所以显然我的操作会导致找不到article_delta.spa这个文件去重命名为article_delta.old.spa,所以进而查看data目录下只有article_delta.new.spa这种带有.new命名方式的文件。

为了证实猜想,查看日志: vi /usr/local/csft/logs/searchd.log,,发现如下警告:

WARNING: rotating index 'delta': cur to old rename failed: rename /usr/local/csft/var/data/delta.spa to /usr/local/csft/var/data/delta.old.spa failed: No such file or directory


所以需要明白的是,

在rotate时,需要将原article_delta.spa重命名为article_delta.old.spa,然后将article_delta.new.spa重命名为article_delta.spa,再通知searchd重启完成rotate。

如果原文件都没有,导致无法rotate走完流程:(

解决方法:
运行:bin/indexer article_delta
创建了article_delta.spd,sph等文件。

再运行:bin/indexer article_delta --rotate
运行日志提示:rotating index 'article_delta': success
正常了!

阅读全文
0 0