Миграция хранилищ Subversion между серверами - PullRequest
13 голосов
/ 05 октября 2011

Мы находимся в процессе перемещения серверов, и одним из последних пунктов является перемещение по хранилищам SVN.

Существует около 10 концертов различных SVN-репозиториев.Они были созданы с помощью этой команды: svnadmin create --fs-type fsfs

Сервер A (оригинал) имеет SVN 1,4, в то время как Сервер B (цель) имеет SVN 1,6.

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

Большинство онлайн-уроков говорят только о перемещении 1 хранилища за раз, например, с использованием svnadmin hotcopy, но мне нужно переместить около 100 или около того всего вместе.Это правильный путь?

Ответы [ 3 ]

15 голосов
/ 06 октября 2011

FSFS в Subversion довольно стабильна при копировании и перемещении даже в разных ОС.Хотя mliebelt правильно делает это с помощью перезагрузки дампа, для перемещения 10 ГБ требуется возраст !

Вот почему я бы рекомендовал следующую процедуру:

  1. Скопируйте репозитории через файловую систему на новый сервер.
    Например $ scp -r /var/repos/ user@newServer:repos/

  2. Выполните $ svnadmin upgrade, чтобы обновить хранилище для 1.6 (это необязательно, но оченьРекомендуется, если вы хотите использовать функции 1.5 / 1.6, такие как отслеживание слияния, редкие проверки и т. д.это на уже работающем сервере).

Для этой процедуры вам, вероятно, понадобится от 10 до 100 раз меньше времени:

Например, для выгрузки репозитория обычно требуется 1 ГБ в час (в основном в зависимости от скорости HD), файлы дампа намного больше, чем репозитории (в SVN 1.4!). Поэтому вам нужно переместить файл большего размера на новый сервер и выполнить там дамп-загрузкучто также занимает около 1 часа / ГБ.Сравните это с копией файловой системы, которая обычно ограничена только сетевым подключением (около 100 Мбит / с около 10 МБ / с) или HD (около 100 МБ / с), если у вас есть GBit-LAN.

3 голосов
/ 06 ноября 2012

Для получения дополнительной информации о svnadmin dump и svnadmin load для SVN 1.6 см. здесь . Он предлагает некоторые обсуждения dump и load, а также такие опции, как --deltas, --incremental и другие.

Также предупреждаем, что если вы выполняете прямое копирование и обновляете svnadmin, вы экономите время, но состояние хранилища может быть не оптимальным. Из справки svnadmin:

svnadmin help upgrade

использование: svnadmin upgrade REPOS_PATH

Обновите репозиторий, расположенный в REPOS_PATH, до последней поддерживаемой версии. версия схемы.

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

3 голосов
/ 05 октября 2011

Прежде всего, я не администратор Subversion, но я много с ними работаю.Так что не доверяйте только моим словам, проверьте и другие источники.

Мой опыт за последние 5 лет был:

  • Чтобы переместить репозитории Subversion, вы должны использовать администратор Subversionинструменты dump и load.Они написаны только для этой работы.
  • dump и load дополнительно проверяют, что все в порядке.Используя их, вы получаете дополнительную «страховку», что все прошло нормально.
  • Мы никогда не переносили более двух основных версий, но переходили с одной основной версии на другую.Вы должны хотя бы проверить, поддерживается ли миграция с 1.4.x на 1.6.x.Часто новая версия сервера поддерживает прямую предыдущую версию и поддерживает миграцию.Поэтому, возможно, вам придется выполнить миграцию для каждого репозитория дважды.
  • Вы можете работать со старыми репозиториями, пока они перемещаются, потому что Subversion позволяет вам добавлять более поздние более новые ревизии.
  • Посколькувсе это может быть сделано из командной строки, вы можете автоматизировать большую часть этого, и администраторы Subversion должны только проверить, что все работает хорошо.

Так что да, я бы рекомендовал перенести один репозиторий последруг друга.

...