2013-06-05 8 views
7

Mam niewolnika Solr, który działa w Tomcat. Dodałem rdzeń, więc zmieniłem plik solr.xml. Aby go ponownie załadować, postanowiłem po prostu ponownie uruchomić Tomcat za pomocą konsoli zarządzania Windows Services.Jak uzyskać kopię zapasową Solr, gdy indeksy są zablokowane, a <unlockOnStartup> true nie działa?

Po ponownym uruchomieniu Tomcat Wciąż otrzymuję następujący wyjątek:

org.apache.lucene.store.LockObtainFailedException: Index zamknięty dla pisać dla rdzenia

postanowiłem zmienić tymczasowo solrconfig .xml dla każdego rdzenia, aby dodać:

<unlockOnStartup>true</unlockOnStartup> 

Ale bez powodzenia. Blokowanie jest ustawione na natywne, więc nie mogę przejść i usunąć plików blokujących.

  1. Jak mogę uruchomić Solr ponownie?
  2. Jak powinienem zrestartować Solr, aby temu zapobiec?

Odpowiedz

4

Wyczyść katalog indeksu i zrestartuj solr. Będzie działać

+1

Gdzie mogę znaleźć katalog indeksu? – Vincent

+0

W twoim folderze rdzenia solr będzie katalog o danych i wewnątrz niego będzie folder o nazwie indeks – sasikt

+0

Dla innych ... Znalazłem pliki w ./example/solr/collection1/data/index/write.lock . /example/solr/development-edit/data/index/write.lock ./example/solr/development-live/data/index/write.lock – Trevor

6

Usuń tylko write.log w data/index. Gdzie znajduje się katalog danych w pliku conf/solrconfig.xml.

+0

Jeśli używasz SolrCloud z HDFS, to blokada zapisu jest na ścieżce hdfs i można ją znaleźć za pośrednictwem interfejsu administratora w lokalizacji -> hdfs dfs -rm/my/path/write/lock – Babu

1

Jeśli inne odpowiedzi nie działają, sprawdź uprawnienia do pliku. W moim przypadku, miałem zrobić

chown -R tomcat6:tomcat6 /opt/solr/corename

3

usunąć pliku write.log w folderze /data/index/ dla rdzenia następnie ponownie Tomcat. To zadziałało dla mnie.