Подтвердить что ты не робот

Как сбрасывать/копировать индекс Solr в файл?

Я запускаю Virtual Private Server, где каждый день в полночь все файлы резервируются автоматически поставщиком VPS.

Поэтому мне нужно экспортировать индекс Solr в файл, так что если что-то пойдет не так, я смогу импортировать обратно в Solr с легкостью.

Как я могу это сделать?

4b9b3361

Ответ 1

База данных Solr - это (или несколько) файлов (ов). Существует папка, которая выглядит примерно так:

[email protected]:/home/solr/apache-solr-1.4.0/example/solr/data/index# ls
segments.gen  _xzy.tii     _y26.tii     _y4f.tii     _y6o.tii    _y8n.tii  _y9i.tis  _y9k.fdt  _y9l.fdx  _y9m.fnm
segments_uud  _xzy.tis     _y26.tis     _y4f.tis     _y6o.tis    _y8n.tis  _y9j.fdt  _y9k.fdx  _y9l.fnm  _y9m.frq
_xzy_2n.del   _y26_20.del  _y4f_1z.del  _y6o_21.del  _y8n_2.del  _y9i.fdt  _y9j.fdx  _y9k.fnm  _y9l.frq  _y9m.nrm
_xzy.fdt      _y26.fdt     _y4f.fdt     _y6o.fdt     _y8n.fdt    _y9i.fdx  _y9j.fnm  _y9k.frq  _y9l.nrm  _y9m.prx
_xzy.fdx      _y26.fdx     _y4f.fdx     _y6o.fdx     _y8n.fdx    _y9i.fnm  _y9j.frq  _y9k.nrm  _y9l.prx  _y9m.tii
_xzy.fnm      _y26.fnm     _y4f.fnm     _y6o.fnm     _y8n.fnm    _y9i.frq  _y9j.nrm  _y9k.prx  _y9l.tii  _y9m.tis
_xzy.frq      _y26.frq     _y4f.frq     _y6o.frq     _y8n.frq    _y9i.nrm  _y9j.prx  _y9k.tii  _y9l.tis
_xzy.nrm      _y26.nrm     _y4f.nrm     _y6o.nrm     _y8n.nrm    _y9i.prx  _y9j.tii  _y9k.tis  _y9m.fdt
_xzy.prx      _y26.prx     _y4f.prx     _y6o.prx     _y8n.prx    _y9i.tii  _y9j.tis  _y9l.fdt  _y9m.fdx

ОДНАКО: достаточно сохранить эту папку. вы также можете просто создать резервную копию всей вашей справки без использования инкрементного rsync или что-то еще... После запуска снова только кеши должны быть снова заполнены и т.д.

НО: Я надеюсь, что solr не ваша основная база данных? его предназначение - поисковая система, а не замена базы данных и даже не резервная копия! так же, как и mysql-репликации, приятно выполнять балансировку нагрузки, но бесполезны в качестве резервной копии... Зачем? потому что с тем же запросом вы можете получить пустой индекс. это то же самое с solr/lucene.... или для многих, многих других причин, у которых есть гораздо более блестящие люди, которые уже обсуждались.

учитывая это, я желаю вам хорошего дня!

Ответ 2

См. мой другой ответ о горячих резервных копиях с помощью Solr ReplicationHandler. Вы можете просто wget URL, и Solr безопасно сделает снимок вашего каталога данных. Я бы не сделал снимок с помощью cp.

Ответ 3

Если вас беспокоит сохранение инкрементных состояний, существует множество сценариев оболочки, которые могут быть настроены для запуска, либо запланированные через cron, либо после коммитов и оптимизирующие.

Узнайте больше на http://wiki.apache.org/solr/SolrOperationsTools

Одна вещь, которую я хотел бы отметить, заключается в том, что, хотя Solr, вероятно, обычно не используется в качестве основной "Системы записи", но как вспомогательное средство для какого-либо другого хранилища данных, нет ничего, что требует этого!

Существует много случаев использования, если вы потеряли свои индексы Solr, тогда вы потеряете свои данные. Подумайте, сайт, который сканирует Интернет для конкретных данных. Единственная копия каждого результата обхода может быть только в Solr, и я думаю, что с соответствующими резервными копиями это нормально!