Хорошо. Ситуация такая:
В настоящее время мы используем mysqldump, а затем bzip2 сжимаем результат и отправляем его обратно на наш сервер резервного копирования. Это трудоемкий ручной процесс, и моментальные снимки не создаются.
В настоящее время я экспериментирую с rsync, передавая различия между старыми и новыми файлами дампа, но сжатие намного менее эффективно.
Любые другие предложения приветствуются.
Один из способов сделать это - настроить репликацию базы данных на сервер резервного копирования и создать там резервные копии.
Если это невозможно в вашей среде, ваш второй шанс - это rsync на простом дампе SQL (не забывайте --compress
) или на том же gzip-архиве, который был сжат с помощью --rsyncable
. Я не знаю, насколько хорошо rsync справляется с этим, поскольку вставленные / удаленные значения в файле дампа вызовут «сдвиг» в файле, который rsync должен обнаружить, чтобы предотвратить повторную передачу данных, которые не были изменены.
Когда вы запускаете rsync с --stats
он должен сообщить, сколько байтов он фактически отправил по сети, чтобы дать вам некоторые цифры.
Вы пробовали следующие варианты? ...
rsync -a --compress --compress-level=9
Фактически, это должно работать лучше (более высокие степени сжатия), чем использование сжатой удаленной оболочки или сжатого транспорта (см. rsync (1)).
Решение, которое я всегда использовал:
Не уверен, что вы используете Windows, но мне повезло с MyWitch, администрирующим базы данных MySQL на удаленных серверах, и у них есть продукт (который я не использовал) под названием DumpTimer, который позволит вам запланировать mysqldumps и загрузить их. Условно-бесплатная, поэтому вам придется заплатить за полную версию, которая позволит вам работать как служба Windows.
Ссылка на DumpTimer: www.richtsoft.com/mysql_17_backup.html
(вырезать / вставить, поскольку новые пользователи не могут добавлять гиперссылки)
Вы можете выгрузить данные из каждой таблицы в файл CSV, отсортированный по первичному ключу (или чему-то еще). Затем используйте split
чтобы разбить его по линиям. Затем используйте rsync для копирования этих файлов. Таким образом, если первые 1000 строк (то есть строк) не изменились, этот файл не будет синхронизирован. Вы можете оставить их незашифрованными на сервере и клиенте и заставить rsync выполнять сжатие в сети. Таким образом, он узнает: «О, я добавляю здесь 10 строк» и т. Д.