2012-01-17 7 views
5

Me pregunto si la instalación de "instantánea" de la biblioteca de LevelDB puede crear una referencia de instantánea que podría guardarse incluso después de un cierre del objeto de base de datos abierta (y así reutilizar en una apertura posterior).¿Pueden las instantáneas de LevelDB sobrevivir al cierre de la base de datos?

Sospecho que no, lo que conduce a un seguimiento: ¿hay una manera buena/recomienda hacer una copia de seguridad consistente de la base de datos a partir de una instantánea instantánea, a ser posible, incluso mientras continúa otra actividad? (Es decir, ¿no es necesario iterar todo el rango de teclas de instantáneas a través de la API?)

(En esencia, estoy buscando algo similar a guardar los archivos de registro JDB de BerkeleyDB-JE anexados solo a través de un determinado punto de referencia.)

Respuesta

3

Un buen enfoque sería cerrar la base de datos, luego vincular todos los archivos sst (cp -l) y copiar todos los archivos no-sst. De esta forma, solo copiará una pequeña cantidad de datos (tamaño de su registro, 4 MB por defecto). Luego puede abrir el DB nuevamente.

Tienes que bloquear mientras esto ocurre, pero ojalá que sea rápido.

+0

Aha - ¡esto es exactamente lo que estaba buscando! (Y, muy similar a lo que hice con los archivos de registro BDB-JE.) Sospeché que algo como esto era posible, pero había pasado por alto que todas las escrituras se fusionan en nuevos archivos/inodes. Puedo trabajar en un cierre momentáneo. – gojomo

1

Sospecho que no, lo que conduce a un seguimiento: ¿existe una buena/recomendada forma de hacer una copia de seguridad consistente de la base de datos en una instantánea instantánea, idealmente incluso mientras continúa otra actividad? (Es decir, por debajo de la iteración de toda la KeyRange instantánea a través de la API?)

no he visto nada en LevelDB que permitirá guardar la instantánea, además de hacer lo que no lo hace realmente quiero hacer: crear una nueva instancia de endeldb, iterar sobre todo el rango actual de clave de instantánea y escribirla en la nueva instancia de endeldb. ¿Su situación le impide hacer eso?

+0

La creación de una instantánea manual (copia) sería un enfoque alternativo. Otro se basaría en las capacidades de instantáneas de copia de disco y sistema de archivos/volumen-administrador. Pero tener la capacidad en la biblioteca en sí, por eficiencia y simplicidad, sería una ventaja. – gojomo

Cuestiones relacionadas