Я ищу подходящее решение для ежедневной резервной копии базы данных sqlite. База данных составляет около 5 ГБ, постоянно растет, получает новые данные каждую секунду и в режиме WAL. Служба 24/7, поэтому нет способа остановить что-либо во время резервного копирования. Блокировка БД на несколько секунд (минут) может быть возможной, хотя и проверяется. Цель состоит не в том, чтобы иметь самые последние данные в резервной копии, а во избежание потери слишком больших данных в случае серьезного сбоя. Резервное копирование будет выполняться, по крайней мере, в течение дня и, возможно, чаще, если это не займет слишком много времени.Альтернативное решение для резервного копирования SQlite
Я попробовал .backup команду, но передача базы данных крайне медленно (всего несколько мегабайт через 10 минут, все еще очень далеки от завершения, после 3-х часов) - это, вероятно, из-за постоянной записи Мероприятия.
Я пробовал команду .dump. Это хорошо работает, за исключением попыток восстановления данных (с помощью .read). Такой большой запрос (около 10 ГБ файла .sql) потребляет всю ОЗУ в системе и убивается ОС (Linux).
Я прочитал о LVM и возможности создания моментального снимка - это может быть интересное решение, но пока хост-машина не поддерживает LVM.
Я также рассматриваю возможность интеграции процедуры резервного копирования в код доступа к этой БД, но опять же, я хотел бы, чтобы процедура резервного копирования была независимой. Я также не понимаю, почему это решение было быстрее, чем команда «.backup».
Любое предложение, кроме «добавить некоторую ОЗУ»?
Спасибо.