Никогда раньше не доводилось работать с небольшими однофайловыми БД, вроде SQLite, однако, в небольшом домашнем проекте решил задействовать именно её по причине простоты, практически нулевого администрирования и python-драйвера «из коробки».
Что есть: в веб-приложение приходят запросы раз в пару-тройку секунд. Данные из запроса разбираются и, в транзакции, сохраняются в БД несколькими пишущими запросами.
Хочется: запускать «горячий» бэкап раз в сутки. «Горячий» означает, что недопустимо терять запросы к веб-приложению. Можно копить их в очередь, но рано или поздно, данные, пришедшие в запросах, должны упорядоченно сложиться в БД.
Текущий замысел мне самому кажется жутко топорным: складывать данные в БД исключительно через отдельный тред с очередью. При этом, в треде есть возможность переключаться в режим ожидания, например, на время наличия файл-флажка «идёт бэкап», и делать копирование файла с БД на бэкап-сервер.
Спасибо, Firebird — отличная СУБД, и, в своё время, довелось плотно с ней поработать. Но для такой мелочи, как у меня, хотелось получить 0 внешних зависимостей, кроме самой стандартной библиотеки Python.