Стратегии резервного копирования репозитория SVN

Тип Casting Is Only Way

Производит double из целочисленного деления - нет другого пути без кастования (возможно, вы этого не сделаете) явно, но это произойдет).

Теперь мы можем попытаться получить точное значение double (где num и denom - это тип int и, конечно, с литьем ) -

  1. с явным литьем: double d = (double) num / denom; double d = ((double) num) / denom; double d = num / (double) denom; double d = (double) num / (double) denom;

, но не double d = (double) (num / denom);

  1. с неявным литьем: double d = num * 1.0 / denom; double d = num / 1d / denom; double d = ( num + 0.0 ) / denom; double d = num; d /= denom;

, но не double d = num / denom * 1.0;, а не double d = 0.0 + ( num / denom );

194
задан Flexo 6 July 2013 в 00:06
поделиться

12 ответов

Вы могли использовать что-то как (Linux):

svnadmin dump repositorypath | gzip > backupname.svn.gz

, Так как Windows не поддерживает GZip, это справедливо:

svnadmin dump repositorypath > backupname.svn
178
ответ дан Nicolai Reuschling 23 November 2019 в 05:23
поделиться

как другие сказали, горячий-backup.py от команды Подрывной деятельности имеет некоторые хорошие функции просто svnadmin hotcopy

, я выполняю запланированную задачу на сценарии Python, что пауки для всех моих репозиториев на машине, и используют hotbackup для хранения ценности нескольких дней hotcopies (параноидальной из повреждения) и svnadmin svndump на удаленной машине. Восстановление действительно легко от этого - до сих пор.

0
ответ дан quick_dry 23 November 2019 в 05:23
поделиться

Если Вы используете формат репозитория FSFS (значение по умолчанию), то можно скопировать сам репозиторий для создания резервного копирования. С более старой системой BerkleyDB репозиторий не независим от платформы, и Вы обычно хотели бы использовать дамп svnadmin.

svnbook тема документации для резервного копирования рекомендует эти svnadmin hotcopy команда, поскольку это будет заботиться о проблемах как используемые файлы и такой.

3
ответ дан bahrep 23 November 2019 в 05:23
поделиться

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

Просто удостоверяются, что сохранили полномочия, в случае необходимости. Обычно, это - только беспокойство на машинах Linux.

3
ответ дан Misha M 23 November 2019 в 05:23
поделиться
  • можно создать резервное копирование репозитория ( дамп ) с svnadmin dump .

  • можно тогда импортировать его в использовании svnadmin load .

Подробная ссылка в SVNBook: "Миграция данных репозитория с помощью svnadmin"

10
ответ дан RobotCaleb 23 November 2019 в 05:23
поделиться

svnadmin hotcopy

svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH

Эта подкоманда делает полное резервное копирование “hot” Вашего репозитория, включая все рычаги, конфигурационные файлы, и, конечно, файлы базы данных.

11
ответ дан McGarnagle 23 November 2019 в 05:23
поделиться

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

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

19
ответ дан Tom Mayfield 23 November 2019 в 05:23
поделиться

Существует hotbackup.py сценарий, доступный на веб-сайте Подрывной деятельности, это довольно удобно для автоматизации резервных копий.

http://svn.apache.org/repos/asf/subversion/trunk/tools/backup/hot-backup.py.in

24
ответ дан Community 23 November 2019 в 05:23
поделиться

Мы используем svnadmin hotcopy, например:

svnadmin hotcopy C:\svn\repo D:\backups\svn\repo

Согласно книга :

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

Вы можете, конечно, ZIP (предпочтительно С 7 zip) резервная копия. По моему скромному мнению, Это является самым простым из резервных опций: в случае бедствия существует мало, чтобы сделать кроме, разархивировали его назад в положение.

107
ответ дан Duncan Smart 23 November 2019 в 05:23
поделиться

Вот сценарий Perl, который будет:

  1. Скопируйте repo
  2. Скопируйте его в другой сервер через SCP
  3. Получите резервное копирование
  4. Создайте тестовый репозиторий из резервного копирования
  5. Сделайте тестовый контроль
  6. Пошлите Вам по электронной почте с любыми ошибками (через крон)

Сценарий:

my $svn_repo = "/var/svn";  
my $bkup_dir = "/home/backup_user/backups";
my $bkup_file = "my_backup-";
my $tmp_dir = "/home/backup_user/tmp";   
my $bkup_svr = "my.backup.com";
my $bkup_svr_login = "backup";

$bkup_file = $bkup_file . `date +%Y%m%d-%H%M`;
chomp $bkup_file;
my $youngest = `svnlook youngest $svn_repo`;
chomp $youngest;

my $dump_command = "svnadmin  -q dump $svn_repo > $bkup_dir/$bkup_file ";
print "\nDumping Subversion repo $svn_repo to $bkup_file...\n";
print `$dump_command`;
print "Backing up through revision $youngest... \n";
print "\nCompressing dump file...\n";
print `gzip -9 $bkup_dir/$bkup_file\n`;
chomp $bkup_file;
my $zipped_file = $bkup_dir . "/" . $bkup_file . ".gz";
print "\nCreated $zipped_file\n";
print `scp $zipped_file $bkup_svr_login\@$bkup_svr:/home/backup/`;
print "\n$bkup_file.gz transfered to $bkup_svr\n";

#Test Backup
print "\n---------------------------------------\n";
print "Testing Backup";
print "\n---------------------------------------\n";
print "Downloading $bkup_file.gz from $bkup_svr\n";
print `scp $bkup_svr_login\@$bkup_svr:/home/backup/$bkup_file.gz $tmp_dir/`;
print "Unzipping $bkup_file.gz\n";
print `gunzip $tmp_dir/$bkup_file.gz`;
print "Creating test repository\n";
print `svnadmin create $tmp_dir/test_repo`;
print "Loading repository\n";
print `svnadmin -q load $tmp_dir/test_repo < $tmp_dir/$bkup_file`;
print "Checking out repository\n";
print `svn -q co file://$tmp_dir/test_repo $tmp_dir/test_checkout`;
print "Cleaning up\n";
print `rm -f $tmp_dir/$bkup_file`;
print `rm -rf $tmp_dir/test_checkout`;
print `rm -rf $tmp_dir/test_repo`;

Источник сценария и больше деталей о рациональном для этого типа резервного копирования.

22
ответ дан 3 revs, 2 users 79%Mark 23 November 2019 в 05:23
поделиться

Для ежедневного и полного резервного копирования просто используйте сценарии резервного копирования SVN здесь .

2
ответ дан 23 November 2019 в 05:23
поделиться

svnbackup в Google Код, консольное приложение .NET.

10
ответ дан 23 November 2019 в 05:23
поделиться
Другие вопросы по тегам:

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