Question

Je me demande si la fonction «instantané» de la bibliothèque LevelDB peut créer une référence d'instantané qui pourrait être enregistrée même après la fermeture de l'objet de base de données ouvert (et donc réutilisée lors d'une ouverture ultérieure).

Je soupçonne que non, ce qui conduit à un suivi: y a-t-il un bon moyen / recommandé de faire une sauvegarde cohérente de la base de données à partir d'un instantané, idéalement même si d'autres activités se poursuivent?(Autrement dit, à court d'itérer l'ensemble de la plage de clés de l'instantané via l'API?)

(Essentiellement, je cherche quelque chose d'analogue à sauvegarder de côté les fichiers journaux JDB de BerkeleyDB-JE en ajout uniquement à un certain point de contrôle.)

Était-ce utile?

La solution

Une bonne approche serait de fermer la base de données, puis de lier en dur tous les fichiers sst (cp -l) et de copier tous les fichiers non-sst.De cette façon, vous ne copiez réellement qu'une petite quantité de données (taille de votre journal, 4 Mo par défaut).Ensuite, vous pouvez ouvrir à nouveau la base de données.

Vous devez bloquer pendant que cela se produit, mais j'espère que cela devrait être rapide.

Autres conseils

Je soupçonne que non, ce qui conduit à un suivi: y a-t-il un bon moyen / recommandé de faire une sauvegarde cohérente de la base de données à partir d'un instantané, idéalement même pendant que d'autres activités se poursuivent?(Autrement dit, à court d'itérer la plage de clés de l'instantané complet via l'API?)

Je n'ai rien vu dans leveldb qui vous permettrait d'enregistrer l'instantané, à part faire ce que vous ne voulez pas faire: créer une nouvelle instance leveldb, itérer sur l'ensembleplage de clés de l'instantané actuelle et écrivez-la dans la nouvelle instance de leveldb.Votre situation vous en empêche-t-elle?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top