Лучший способ сделать резервные копии Subversion?

Каков наилучший способ создания резервных копий Subversion (на сервере под управлением Debian).

Использовать svnadmin?

svnadmin dump /path/to/reponame > reponame.dump

Или, может быть, только для tar, где хранятся репозитории?

tar -cvzf svn.backup.tar.gz /var/subversion/

Каковы плюсы и минусы вышесказанного?

Спасибо Johan


Обновление : Это небольшой сервер с несколькими репозиториями. Поэтому инкрементные резервные копии, вероятно, не нужны, Я думаю, что лучше сосредоточиться на том, чтобы держать его простым.

Обновление : Я использовал сценарий оболочки packs (который, в свою очередь, был оболочкой для svn-hot-backup), чтобы выполнить полную резервную копию, а затем выполнил полное восстановление на другом чистом компьютере. Однако я удалил эту часть «SVN_HOTBACKUP_NUM_BACKUPS = 10», так как она не работала для меня.

Пожалуйста, обратите внимание, что я чувствую, что это было просто, и результат был очень близок к тому, что только дег. Но поскольку Манни указал на использование svn-hot-backup /«svnadmin hotcopy», это более надежный метод, поскольку tar может время от времени создавать поврежденные резервные копии, если вам не повезло.

10 голосов | спросил Johan 10 PM00000050000005731 2009, 17:32:57

6 ответов


11

Ищите сценарий svn-hot-backup. Он должен поставляться с subversion и содержит всю логику, чтобы делать то, что вы хотите, плюс автоматическое развертывание старых резервных копий. Я написал следующий сценарий оболочки, который использует svn-hot-backup для запуска как ночной cronjob для резервного копирования одного сервера с несколькими репозиториями, слегка модифицированных для обобщения.

#!/bin/bash

#
# Dumps the svn repos to a file and backs it up
# to a local directory.

#Keeps the last 10 revisions
REPODIR="/var/repos"
BAKDIR="/data/backup/svn"
PROG="/usr/local/sbin/svn-hot-backup"
REPOLIST='repo1 repo2 repo3'

if [ ! -x "${PROG}" ]
then
        echo "svnbak: Could not execute \`${PROG}\`"
        exit 1
fi

for repo in ${REPOLIST}
do
    # Dump the database to a backup file
    echo "svnbak: Dumping subversion repository:  ${repo}"
    SVN_HOTBACKUP_NUM_BACKUPS=10 nice ${PROG} --archive-type=gz ${REPODIR}/${repo} ${BAKDIR}/${repo} &> /tmp/svnbak.$$

    if [ "$?" -eq "1" ]
    then
        echo "svnbak: Hot backup on '${repo}' failed with message:"
        /bin/cat /tmp/svnbak.$$
    fi

    /bin/rm /tmp/svnbak.$$
done

exit 0
ответил Scott Pack 10 PM00000050000003531 2009, 17:48:35
4

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

Почему это важно? Ну, если у вас большая команда разработчиков, и у вас есть ежедневная резервная копия Subversion, и ваша система не работает 12 часов в старом резервном копировании, вся работа дня теряется.

Если вы делаете полные резервные копии (которые SVN hotcopy ) много раз в день вы вызываете ненужную нагрузку на ваш репозиторий, это будет раздражать нетерпеливых разработчиков.

В качестве бонуса; Я также рекомендую Backup-PC в качестве резервного решения. Он может делать инкрементные удаленные резервные копии и способен экономить много места, если вы создаете идентичные файлы в разных системах.

ответил Andrioid 11 AM00000010000004031 2009, 01:43:40
4

Я использую svnsync для резервного копирования в другой репозиторий, доступный только для чтения, который сам подкрепляется старыми копиями (день, неделя, месяц)

ответил Steven R. Loomis 10 +04002009-10-10T08:40:16+04:00312009bEurope/MoscowSat, 10 Oct 2009 08:40:16 +0400 2009, 08:40:16
2

Вы можете сделать резервное копирование с добавлением svnadmin , если хотите, вы должны запустить hot-backup.py , прежде чем создать архив tar.

Вот статью о поддержке svn repos. Во всяком случае, чтение книги SVN является хорошей отправной точкой, как было сказано ранее.

ответил Maxwell 10 PM00000050000002531 2009, 17:44:25
0

Я резервирую несколько хранилищ на 100 ГБ + svn с простым старым rsync. svnadmin dump и svnadmin hotcopy потребуется несколько дней на этих репозиториев.

Еще одна вещь, которая стоит посмотреть: svnadmin dump не создает резервные блокировки и скрипты hook.

ответил kband 30 Jam1000000amSun, 30 Jan 2011 02:27:18 +030011 2011, 02:27:18
-1

Вот что я делаю с моими репозиториями: используйте службу резервного копирования папки, такую ​​как Dropbox (ссылка к их версии Linux ). Вы просто делаете Dropbox корневой частью своего репозитория (или даже выше), и он получает резервную копию при каждом изменении файла. Он будет доступен не только на компьютерах, но вы сможете получить доступ к нему в Интернете и иметь его версии.

Существует несколько таких онлайн-сервисов резервного копирования - большинство из них бесплатны до 2 ГБ.

ответил Traveling Tech Guy 10 PM00000060000000731 2009, 18:04:07

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132