На работе мы делаем ночной дамп наших баз данных mysql. Изо дня в день, я бы предположил, что почти 90-95% данных являются дубликатами, увеличиваясь с течением времени. (Черт возьми, на данный момент некоторые, вероятно, 99%)
В этих дампах одна строка представляет собой один оператор mysql INSERT, поэтому единственными различиями являются целые строки и порядок их расположения в файле. Если бы я их отсортировал, фактическая разница от файла к файлу была бы очень мала.
Я искал, и я не нашел способа отсортировать вывод по дампу. Я мог бы передать это через sort
команду, хотя. Тогда будут длинные, длинные блоки одинаковых линий.
Поэтому я пытаюсь найти способ хранить только различия. Я мог бы начать с мастер-дампов и каждый вечер разбираться с этим. Но различия будут больше каждую ночь. Или, я мог бы сделать бросающие различия, которые по отдельности были бы очень маленькими, но кажется, что для вычисления потребовалось бы все больше и больше времени, если бы мне приходилось собирать мастер-разряды всей серии каждую ночь.
Это возможно? Какими инструментами?
Изменить Я не спрашиваю, как сделать резервные копии MySQL. Забудьте MySQL на данный момент. Это красная сельдь. То, что я хочу знать, - это как сделать серию динамических изменений из серии файлов. Каждую ночь мы получаем файл (который является файлом mysqldump ), который на 99% похож на предыдущий. Да, мы сжимаем их все. Но избыточно иметь всю эту избыточность в первую очередь. Все, что мне действительно нужно, - это отличия от прошлой ночи ... которая на 1% отличается от прошлой ночи ... и так далее. Итак, что мне нужно, так это сделать серию различий, поэтому мне нужно хранить только 1% каждую ночь.
источник
В последнее время я пытался хранить дампы базы данных в git. Это может оказаться непрактичным, если ваши дампы базы данных очень большие, но это работает для меня для небольших баз данных (сайтов Wordpress и т. П.).
Мой скрипт резервного копирования примерно:
источник
Вы можете сделать что-то вроде этого (с
a.sql
вашей еженедельной резервной копией).Ваши разностные файлы станут больше к концу недели.
Мое предложение, однако, просто gzip его (используйте
gzip -9
для максимального сжатия). Мы делаем это в данный момент, и это дает использование 59 МБ gz-файла, в то время как оригинал составляет 639 МБ.источник
Существует несколько возможных подходов, в зависимости от размера и фактического текстового сходства дампов базы данных:
источник
(Я не сделал это в производстве.)
Делайте полное резервное копирование один раз в день или неделю. Резервное копирование релейных журналов один раз в час или день.
источник