Как сделать «горячий» бэкап SQLite3?

Здравствуйте,

Никогда раньше не доводилось работать с небольшими однофайловыми БД, вроде SQLite, однако, в небольшом домашнем проекте решил задействовать именно её по причине простоты, практически нулевого администрирования и python-драйвера «из коробки».

Что есть: в веб-приложение приходят запросы раз в пару-тройку секунд. Данные из запроса разбираются и, в транзакции, сохраняются в БД несколькими пишущими запросами.

Хочется: запускать «горячий» бэкап раз в сутки. «Горячий» означает, что недопустимо терять запросы к веб-приложению. Можно копить их в очередь, но рано или поздно, данные, пришедшие в запросах, должны упорядоченно сложиться в БД.

Текущий замысел мне самому кажется жутко топорным: складывать данные в БД исключительно через отдельный тред с очередью. При этом, в треде есть возможность переключаться в режим ожидания, например, на время наличия файл-флажка «идёт бэкап», и делать копирование файла с БД на бэкап-сервер.

Как бы вы решили эту задачу?
  • Вопрос задан
  • 4661 просмотр
Решения вопроса 1
Slipeer
@Slipeer
Думаю Вам поможет второй пример по это ссылке: http://www.sqlite.org/backup.html
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dndred
Firebird вполне себе однофайловая БД. Python драйвер sudo apt-get install python-kinterbasdb. Никаких проблем с горячим бэкапом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы