Я не админ.
Есть задача бэкапить базу Redis. База большая.
Гонять ежедневно один огромный файл по сети не вариант.
Какое средство выбрать, чтоб подсчитывал разницу между двумя копиями базы, делал дельту (как в git) и уже её формировал как бэкап?
Возможно я криво прочитал доку, но rsync, rsnapshot, rdiff-backup определяют только какие файлы были изменены/добавлены. И уже их рассматривает как бэкап.
Но в моем случае файл один. И он естественно меняется каждый день.
Помогите разобраться и посоветуйте лучшее решение на ваш взгляд.
Спасибо.
Роман Мирр, если бы это было легко, то имелся бы какой-нибудь инструмент готовый для этого, а их не наблюдается. Ну по крайней мере я не нашел и не встречал.
В целом инкрементальные бекапы не очень мне нравятся, я особо и не искал.
Плюс он в памяти хранит всю базу и каждый раз её полностью на диск перезаписывает. Каким образом хрен знает, так что вполне вероятно что файлы совсем разные на выходе.
Роман Мирр, исхожу из опыта когда база не влезала в память.
1. Заполнил базу большим количеством данных
2. Они записались на диск
3. Уменьшил лимит памяти для редиса
4. Перезапустил редис.
5. После первого сохранения на диск он убил все старые данные на диске, хотя у них не было проставлено время жизни т.е. данные вечные должны были быть.
После этого узнал что редис не умеет работать с частью данных в памяти и при этом искать на диске если в памяти нет.
Удалил редис, поставил тарантул.
резервирование копии с применением дедупликации (bup, ZBackup, attic и т.д.) на удаленный сервер. При последующем резервировании сохранится только дельта, а не вся копия целиком.
По итогу заюзал xdelta для подсчета разницы между двумя бинарными rdb файлами.
Сама база около 7 Гб, ежедневная дельта выходит около 30мб, мне нормально.