2010-06-21 14 views
6

Implemento el motor de búsqueda con solr que importa un mínimo de 2 millones de documentos por día. El usuario debe buscar en el documento importado lo antes posible (casi en tiempo real).Solr Copia de seguridad incremental en sistema en tiempo real con índice pesado

I utilizando 2 Windows x64 dedicados con tomcat 6 (modo de fragmento Solr). cada servidor, indexa alrededor de 120 millones de documentos y alrededor de 220 GB (un total de 500 GB).

Deseo obtener una copia de seguridad incremental del archivo de índice de solr durante la actualización o la búsqueda.
después de buscarlo, encuentre las herramientas rsync para UNIX y DeltaCopy para windows (GUI rsync para windows). pero obtiene el error (desaparecido) durante la actualización.

cómo solucionar este problema.

Nota1: La copia de archivo es realmente lenta, cuando el tamaño del archivo es muy grande. por lo tanto, no puedo usar de esta manera.

Nota 2: ¿Puedo evitar archivos de índice dañados durante la actualización, si Windows se bloquea o se restablece el hardware o cualquier otro problema?

Respuesta

8

No ejecute una copia de seguridad mientras actualiza el índice. Probablemente obtendrá una copia de seguridad corrupta (por lo tanto inútil).

Algunas ideas para trabajar alrededor de ella:

  • lotes de seguridad de los cambios, es decir, en lugar de añadir/actualizar documentos todo el tiempo, añadir/actualizar cada n minutos. Esto le permitirá ejecutar la copia de seguridad entre esos n minutos. Contras: la frescura del documento se ve afectada.
  • Utilice un segundo núcleo de Solr pasivo: configure dos núcleos por fragmento, uno activo y uno pasivo. Todas las consultas se emiten contra el núcleo activo. Use replication para mantener el núcleo pasivo actualizado. Ejecute la copia de seguridad contra el núcleo pasivo. Tendría que disable replication mientras ejecutaba la copia de seguridad. Contras: las partes más complejas y móviles requieren el doble de espacio en el disco para mantener el núcleo pasivo.
+0

¿No es el índice pasivo la copia de seguridad perfecta? – Karussell

+2

@Karussell: es solo una copia y no una copia de seguridad propia, ya que no puede aplicar políticas de copia de seguridad como almacenamiento fuera de sitio, copia de seguridad incremental/diferencial/completa, etc. Hay mucho más para hacer copias de seguridad que simplemente copiar cosas. –

+0

muchas gracias Mauricio – Hamid

14

Puede realizar una copia de seguridad en caliente (es decir, mientras escribe en el índice) utilizando ReplicationHandler para copiar el directorio de datos de Solr en otro lugar en el sistema local. Luego haz lo que quieras con ese directorio. Puede iniciar la copia de seguridad cada vez que desee por ir a un URL como esta:

http://host:8080/solr/replication?command=backup&location=/home/jboss/backup 

Obviamente usted podría script que con wget + cron.

Más detalles se pueden encontrar aquí:

http://wiki.apache.org/solr/SolrReplication

El Lucene en el libro acción tiene una sección sobre las copias de seguridad en caliente con Lucene, y me parece que el código en ReplicationHandler de Solr utiliza la misma estrategia que descrito allí. Uno de los autores de ese libro incluso elaboró ​​sobre cómo funciona en another StackOverflow answer.

Cuestiones relacionadas