RSync-резервное копирование репозитория Subversion с помощью Rsyncrypto

Ситуация

У меня есть довольно большой репозиторий Subversion, который я пытаюсь эффективно создать. Размер репозитория составляет около 6 ГБ и продолжает расти. Некоторые большие коммиты имеют размер от 500 до 1 ГБ.

Я пытаюсь сделать резервную копию этого репозитория за пределами сайта, используя восходящую ссылку в Интернете.

Объясняя его размер.

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

Как

Вот что я на самом деле делаю:

  1. Резервное копирование репозитория в рабочую папку на сервере с помощью "svnadmin hotcopy SRCDIR TGTDIR"
  2. Зашифруйте и сожмите этот репозиторий с помощью «rsyncrypto -r SRCPATH DSTPATH ​​KEYSPATH CERTIFICATE»
  3. Сделайте резервную копию этой зашифрованной версии во внешнем хранилище с помощью «rsync -Crtv» (на самом деле cwRsync, потому что я работаю в Windows)

Проблема

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

Проблема заключается в том, что я был ожидая, что каждый раз, когда процесс будет запущен, будут скопированы только новые файлы / данные ревизий ([repos] / db / revs / 0 / ...), что потребует только полосы пропускания и времени, когда большая фиксация сделан. Однако вместо этого:

  • Если я выполняю только шаг №3 много раз, rsync ведет себя должным образом, и ничего не копируется, потому что ничего не изменилось.
  • Если я выполняю только шаги №2 и №3 много раз, rsync также ведет себя хорошо. Версия с шифрованием всегда одна и та же, и rsync не должен ничего передавать.
  • Но, кажется, что каждый раз, когда я выполняю все три шага (с новой фиксацией, сделанной в репозиторий), весь репозиторий полностью перезагружается . Таким образом, устраняется вся цель использования rsync.

Как будто файлы в [repos] / db / revs / 0 / ... меняются каждый раз, когда я делаю горячую копию.

Вопросы

Это ожидаемое поведение от "svnadmin hotcopy", что [репозитории] / db / revs / 0 / ... меняются с одной горячей копии на другую?

Любые предложения или варианты, которые я мог бы использовать, чтобы сделать эту горячую копию rsync friendly или, скажем, rsyncable ?

Я не совсем уверен, что использование 'svnadmin dump' во всем репозитории приведет к созданию файла «rsyncable» .

1
задан Philibert Perusse 8 September 2010 в 11:33
поделиться