Назад | Перейти на главную страницу

Как повысить эффективность использования полосы пропускания rdiff-backup?

Я использую rdiff-резервное копирование для резервного копирования файлов с моего сервера на резервный сервер. Я запускаю резервную копию, используя команду, похожую на:

rdiff-backup user@example.com::/home/user/data/complete complete

Эта резервная копия работает хорошо. Однако на странице функций Rdiff-backup говорится:

Эффективная пропускная способность: rdiff-backup зависит от librsync и, таким образом, использует тот же алгоритм сравнения, что и rsync (однако, rsync и rdiff-backup, строго говоря, не имеют общего кода). [...] Например, предположим, что вы слегка изменили большой файл A для создания большого файла A ', и A все еще находится в удаленной системе. Когда rdiff-backup запущен, он отправлять только через diff A-> A ' [...]

Файлы на удаленном компьютере представляют собой дампы базы данных, созданные с использованием mysqldump, которые создаются ежечасно. Данные не сильно меняются от часа к часу. Каждое имя файла имеет формат YYYYMMDDHHMM.sql.

Основываясь на моей интерпретации вышеупомянутой «функции», rdiff-backup должен отправлять небольшую разницу для создания файла на основе других файлов в каталоге - другими словами, если A prime это последняя резервная копия и A это резервная копия T-1, она должна отправить небольшую разницу, чтобы получить от A к A prime.

Однако совершенно очевидно, что это не работает таким образом. Он отправляет весь новый файл, даже если новый файл немного отличается. Я ожидаю, что передача данных будет составлять несколько мегабайт, но это передача сотен мегабайт.

Также из страница руководства:

rdiff-резервное копирование жестяная банка также работают с эффективным использованием полосы пропускания по каналу, как rsync (1). Таким образом, вы можете использовать ssh и rdiff-backup для безопасного резервного копирования жесткого диска в удаленное место, и будут передаваться только различия. Используя настройки по умолчанию, rdiff-backup требует, чтобы удаленная система принимала ssh-соединения, и чтобы rdiff-backup был установлен в PATH пользователя на удаленной системе. Для получения информации о других возможностях см. Раздел «УДАЛЕННОЕ УПРАВЛЕНИЕ».

Итак, мой вопрос:

  1. Правильно ли я интерпретирую эту функцию?
  2. Если да, как мне использовать rdiff-backup для подобной работы?

В вашем сообщении вы каждый час генерируете уникальный дамп sql YYYYMMDDHHMM.sql
Это каждый раз новый файл с уникальным именем.
Если вы меняли файлы в источнике (вместо создания новых файлов) - тогда эта функция применима.
В противном случае он смотрит на источник, обнаруживает совершенно новый файл ГГГГММДДЧЧ + 1MM.sql, он не знает, что в конечном файле с именем YYYYMMDDHHMM.sql очень близко, и он начнет синхронизировать файл YYYYMMDDЧЧ + 1MM.sql по назначению.
Если хотите воспользоваться этой функцией - тогда при новом файле ГГГГММДДЧЧ + 1MM.sql создается в источнике - вам нужно будет запустить какой-то скрипт, который подключится к месту назначения и сделает копию файла YYYYMMDDHHMM.sql

cp YYYYMMDDHHMM.sql YYYYMMDDHH+1MM.sql<br>

После этого запустите синхронизацию.
Таким образом, он обнаружит, что у места назначения есть файл с таким же именем, и, надеюсь, попытается использовать этот алгоритм частичной синхронизации.