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

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

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

Ситуация

У меня есть довольно большой репозиторий 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 / ...), что потребует только полосы пропускания и времени, когда будет сделана большая фиксация. Однако вместо этого:

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

Вопросы

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

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

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

Файлы в db/revs/ не меняются, но их временные метки меняются. --size-only может быть ответом.

Когда вы шифруете / сжимаете репозиторий, любое небольшое изменение базовых данных (репозитория) распространяется по зашифрованному / сжатому файлу (файлам). Таким образом, изменение одного байта может распространяться на весь набор зашифрованных / сжатых данных. Итак, с точки зрения rsync, все изменилось.