У меня возникают периодические проблемы с сценарием резервного копирования при попытке создать резервную копию файлов индекса sphinx. Команда резервного копирования более или менее просто tar
команда на всех файлах в /var/lib/sphinxsearch/data
с несколькими шаблонов исключения (spl
, tmp
и т.д ...)Как читать согласованную версию файлов sphinx при запуске reindex
Но вопрос я бегу в том, что мы проводим почти непрерывные reindexes , что означает, что файлы, на которых работает оператор tar, постоянно разворачиваются с новыми версиями. У меня есть план, чтобы справиться с этим, который должен использовать сфинкса локировок:
- Для каждого индекса:
- получить блокировку на файл
.spl
(мы надеемся, предотвращая REINDEX запуск одновременно) - Добавить связанные файлы (
.spa
,.spd
,.sph
,.spi
,.spk
,.spm
,.spp
,.sps
) замок - релиз на
.spl
фил е
- получить блокировку на файл
Меня беспокоит то, что я не могу найти какую-либо подробную документацию по точно, как предполагается файлы блокировка вести себя в сфинксе. Это будет инструмент, который взаимодействует с параллелизмом сфинкса на низком уровне, и я вижу много потенциальных ошибок (параллелизм меня пугает). Мне интересно, если:
- Есть ли где-нибудь подробное описание того, как lockfiles работают в сфинксе?
- Является ли мой план резервного копирования сфинкса даже правильным планом? Я огляделся по сторонам и не нашел ничего лучшего, но кто-то знает лучший способ.
Чтобы ответить на ваш последний вопрос: мы используем стратегию --merge, а это значит, что мы постоянно строим дельт, а затем объединяем их в основной. Когда мы запускаем это постоянно, это дешево, но строить все с нуля дорого. Это говорит - спасибо за описание процесса lockfile. Я дам ему подумать и посмотрю, смогу ли я найти то, что соответствует моим потребностям. – Jonathan
Aha - Я не думаю, что блокировка файлов sphinx - это то, что мне нужно в этом случае. Что мне нужно - это то, что предотвращает запуск дельта + слияния и резервного копирования одновременно. Поскольку оба этих процесса выполняются с помощью сценариев, которые я контролирую, он должен быть достаточно простым, чтобы создать мою собственную схему блокировки файлов. Я не знаю, почему это не произошло со мной в первую очередь, но в любом случае это кажется более чистым решением. Одно из многих преимуществ заключается в том, что мне не кажется, что я использую некоторые «детали реализации» sphinx. (.new.spl, вероятно, также будет работать, как вы предлагаете - я думаю, что этот способ проще) – Jonathan