Rsyncing полное ежедневное резервное копирование - PullRequest
1 голос
/ 16 февраля 2012

Я управляю сервером Alpha (работает под управлением Debian и Fusion Forge (веб-система управления проектами)) с ~ 200 ГБ svn-репозиториев (около 200 различных репозиториев). И я пытаюсь управлять ежедневным резервным копированием данных на бета-сервер (работает под Windows, на нем есть дельта-копия), который затем обрабатывает все другие резервные копии. Проблема в том, что сейчас я перевожу все 200 ГБ каждый день, и я плохо использую rsync.

В настоящий момент на Alpha хранятся две полные ежедневные резервные копии, которые создаются Fusion Forge каждую ночь, поэтому резервная папка выглядит следующим образом.

$ ls alpha-backup
cvsroot-tmp-2012-02-15.tar.bz2  etc-tmp-2012-02-15.tar.bz2          svn-repositories-2012-02-15
cvsroot-tmp-2012-02-16.tar.bz2  etc-tmp-2012-02-16.tar.bz2          svn-repositories-2012-02-16
db-alpha-tmp-2012-02-15.tar    mailinglist-tmp-2012-02-15.tar.bz2  uploads-tmp-2012-02-15.tar.bz2
db-alpha-tmp-2012-02-16.tar    mailinglist-tmp-2012-02-16.tar.bz2  uploads-tmp-2012-02-16.tar.bz2

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

Каждый каталог svn-repositories содержит около 200 ГБ, остальные по сравнению с ним невелики. Поэтому, когда svn-repositories-2012-02-16 создан, он очень близок к svn-repositories-2012-02-15 на сервере резервного копирования, но rsync не может найти нужную информацию и только скопировать изменения. Я пробовал несколько вариантов аргументов на rsync с небольшим успехом, это то, что в настоящее время используется.

rsync -aq -P --inplace --delete --fuzzy /alpha-backup/. beta::alpha

В любом случае, я ищу что-то, чтобы исправить это, чтобы мои резервные копии не создавались вечно.

Ответы [ 2 ]

2 голосов
/ 17 февраля 2012

Я бы использовал команду svnsync.

  1. Создать пустой репозиторий:
    svnadmin create c:\svn\backup_repo

  2. Включить правильные изменения:
    echo exit 0 >> c:\svn\backup_repo\hooks\pre-revprop-change.bat

  3. Инициализация резервного копирования:
    svnsync init c:\svn\backup_repo <path_to_alpha_repo>

  4. Начало синхронизации:
    svnsync sync file:///c:/svn/backup_repo

При первом запуске синхронизации (т. Е. Шаг 4) это, вероятно, займет довольно много времени.Однако после синхронизации с HEAD вы планируете быстрое выполнение задания для периодического запуска svnsync sync file:///c:/svn/backup_repo, и ваша резервная копия всегда обновляется.Это будет точная копия исходного репозитория SVN, включая те же идентификаторы ревизий, комментарии в журнале и т. Д.

0 голосов
/ 19 февраля 2012

Существуют коммерческие решения, которые решают эту проблему с помощью оперативных резервных копий, таких как Subversion Clustering , которые работают по локальной или глобальной сети.

...