Могут ли моментальные снимки LevelDB пережить закрытие базы данных? - PullRequest
5 голосов
/ 17 января 2012

Мне интересно, может ли средство «снимок» библиотеки LevelDB создать ссылку на снимок, которую можно сохранить даже после закрытия открытого объекта базы данных (и, таким образом, повторно использовать при последующем открытии).

Я подозреваю, что нет, что приводит к продолжению: есть ли хороший / рекомендуемый способ сделать непротиворечивое резервное копирование базы данных в моментальный моментальный снимок, в идеале, даже когда другие действия продолжаются?(То есть, если не выполнять итерацию всего диапазона ключей снимка с помощью API?)

(По сути, я ищу что-то аналогичное тому, чтобы сохранить в стороне только журнальные файлы JDB BerkeleyDB-JE через определенную контрольную точкуместо.)

Ответы [ 2 ]

3 голосов
/ 29 февраля 2012

Хорошим подходом было бы закрыть БД, затем жестко связать все файлы sst (cp -l) и скопировать все файлы не-sst. Таким образом, вы на самом деле копируете только небольшой объем данных (размер вашего журнала, по умолчанию 4 МБ). Затем вы можете снова открыть БД.

Вы должны блокировать, пока это происходит, но, надеюсь, это должно быть быстро.

1 голос
/ 23 января 2012

Я подозреваю, что нет, что приводит к продолжению: есть ли хороший / рекомендуемый способ сделать непротиворечивое резервное копирование базы данных в моментальный моментальный снимок, в идеале, даже когда другие действия продолжаются? (То есть, если не считать итерацию всего диапазона ключей снимка через API?)

Я не видел ничего в leveldb, которое позволило бы вам сохранить снимок, кроме того, что вы действительно не действительно хотите сделать: создать новый экземпляр leveldb, выполнить итерацию по всему текущему Диапазон ключей снимка и запишите его в новый экземпляр leveldb. Ваша ситуация мешает вам сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...