Ситуация
У меня довольно большой репозиторий Subversion, который я пытаюсь эффективно выполнить резервное копирование.Размер репозитория составляет около 6 ГБ и продолжает расти.Размер некоторых крупных коммитов составляет от 500 до 1 ГБ.
Я пытаюсь сделать резервную копию этого репозитория в удаленном расположении через восходящую интернет-линию.
Объяснение бесполезногоего размер
Кому интересно, мы сохраняем всю производственную среду для различных сайтов (конфигурационные файлы, EXE, файлы данных) в этом одном репозитории, чтобы мы могли выполнить откат к существующемурабочая версия и отслеживать изменения в настройках производства.Код хранится в другом хранилище.
Как
Вот что я на самом деле делаю:
- Резервное копированиехранилище в рабочую папку на сервере, используя "svnadmin hotcopy SRCDIR TGTDIR"
- Шифрование и сжатие этого хранилища с использованием "rsyncrypto -r SRCPATH DSTPATH CEYSPATH CERTIFICATE"
- Резервное копирование этой зашифрованной версии в стороннее расположение, используя "rsync -Crtv" (на самом деле cwRsync, потому что я работаю в Windows)
Проблема
Сначала я должен сказать, что это работает, хотя у него все еще есть основная проблема.
Проблема заключается в том, что я ожидал, что каждый раз процесс будетвыполнить, будут скопированы только файлы / данные новых ревизии ([repos] / db / revs / 0 / ...), что потребует только пропускную способность и время при выполнении большого коммита.Однако вместо этого:
- Если я запускаю только шаг № 3 много раз, rsync ведет себя так, как должен, и ничего не копируется, потому что ничего не изменилось.
- Если я запускаю только шаги # 2& # 3 много раз rsync также ведет себя хорошо.Зашифрованная версия всегда одинакова, и rsync не должен ничего передавать.
- Но, похоже, каждый раз, когда я запускаю все три шага (с новым коммитом,репозиторий) весь репозиторий перезагружается полностью .Таким образом, во-первых, победив всю цель использования rsync.
Как будто файлы в [repos] / db / revs / 0 / ... меняются каждый раз, когда я делаю горячую копию.
Вопросы
Это ожидаемое поведение от "горячей копии svnadmin", когда [repos] / db / revs / 0 / ... меняются с одногогорячая копия другому?
Любые предложения или варианты, которые я мог бы использовать, чтобы сделать эту горячую копию rsync friendly или сказать rsyncable ?
Я не совсем уверенчто при использовании «svnadmin dump» во всем хранилище будет получен «rsyncable» файл .