2016-08-02 5 views
0

Ich versuche, Backup (Migration) Index von Solr 6.0 zu Solr 6.1 wiederherzustellen. Allerdings, wenn ich die Schritte auf https://cwiki.apache.org/confluence/display/solr/Making+and+Restoring+Backups folgen, ich eine Ausnahme Fehlermeldung erhalten dass es versagt, wenn ichKann die Sicherung von Solr 6.0 auf Solr 6.1 wiederhergestellt werden?

curl -XGET http://localhost:8983/solr/mycollection/replication?command=restorestatus 

Befehl, um den Status zu überprüfen.

Die tatsächliche Antwort:

<?xml version="1.0" encoding="UTF-8"?> 
<response> 
<lst name="responseHeader"><int name="status">0</int><int name="QTime">0</int></lst><lst name="restorestatus"><str name="snapshotName">snapshot.20160802100744911</str><str name="status">failed</str><str name="exception">org.apache.solr.common.SolrException: Exception while restoring the backup index</str></lst> 
</response> 

Ich dachte, es möglich ist, Backup von einer früheren Version von Solr zu einem einer neueren gemacht wiederherzustellen, aber bin ich falsch? Jede Hilfe wird sehr geschätzt.

Antwort

0

Also, nach mehreren Stunden des Versuchs, habe ich die Lösung herausgefunden.

Erstens, eine Antwort von der Solr sagen OK wie unten bedeutet nicht, dass es fertig ist ... (Das war mein erster Fehler) Die Wiederherstellungsdatei, die ich verwendete, war beschädigt (teilweise gemacht).

<?xml version="1.0" encoding="UTF-8"?> 
<response> 
<lst name="responseHeader"><int name="status">0</int><int name="QTime">8</int></lst><str name="status">OK</str> 
</response> 

Als nächstes wurde ich in den Protokollen sucht, und es wird gesagt, dass es aus der Erinnerung ist, und hielt im Sterben, weil die Datei wiederherstellen war 13GB groß und war sicherlich nicht genug, um mit der Standard Solr Konfiguration.

ich neu gestartet Solr mit

./solr restart -m 16g 

Und es wurde erfolgreich importiert.

Lektion gelernt: sei geduldig und denke über Speichergröße nach.

1

ich eine Anwendung geschrieben, dies zu tun, ist es auf Github verfügbar:

https://github.com/freedev/solr-import-export-json

Die Idee hinter dem Code einfach ist, wenn Sie eine Sammlung abfragen, um die Solrj verwenden, sogar eine ganze Kollektion, es gibt einen Stream-Dokumente zurück (zB SolrDocument). Und SolrDocument implementiert beide Map<String,Object>, Serializable.

Also dachte ich, ich könnte die Dokumente in JSIS serialisieren. Nun, schauen Sie sich das Repo an, es funktioniert ziemlich gut.