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

先说下为何出现问题:

配置完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
正常了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值