Які існують способи резервного копіювання сховищ для Windows VisualSVN?


15

На даний момент ми використовуємо Visual SVN і створюємо резервну копію всього каталогу сховищ для візуального svn. Це створює резервну копію всіх даних для кожного сховища в нашому двигуні svn. Мені цікаво, чи вдасться відновити ці файли у разі надзвичайної ситуації чи катастрофи? Хтось із вас має досвід роботи з цією процедурою відновлення? Спасибі.


1
Якщо ви фактично не протестували реставрацію, ви, можливо, не можете довіряти своїй резервній копії.
Майкл Хемптон

Відповіді:


11

Дивіться: http://www.visualsvn.com/support/topic/00012/

Це вказує на таку документацію:
http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

Він описує використання команд Subversion для створення резервної копії. Я сподіваюся, що це ви вже робите, тому що використання резервного копіювання прямого каталогу може спричинити за собою непридатне сховище.

Ви повинні мати можливість використовувати резервну копію з Subversion та використовувати svnadmin dumpабо svnadmin hotcopyкомандувати для відновлення повного сховища. Однак, як і будь-яка стратегія резервного копіювання, ви повинні перевірити відновлення самостійно, щоб бути впевненим, що він працює для вас.


8

Починаючи з версії VisualSVN Server 3.6, сервер включає вбудовану функцію резервного копіювання та відновлення репозиторію . Більше того, випуск 3.6 додає планову перевірку сховищ SVN.

Налаштування запланованого резервного копіювання сховища та перевірка для ваших сховищ Subversion - це лише декілька хвилин. Покрокові інструкції див. У статті KB106: Початок роботи з резервного копіювання та відновлення .

Якщо ви шукаєте одноразове резервне копіювання, ви можете використовувати командлет Backup-SvnRepository PowerShell. Щоб відновити сховище, використовуйте Restore-SvnRepository . Ці резервні командлети доступні починаючи з версії 3.6.

Завантажте останню версію VisualSVN Server з головної сторінки завантаження .

введіть тут опис зображення


Існує кілька методів резервного копіювання сховищ VisualSVN Server. Перевірте короткий опис нижче.

1. svnadmin hotcopyінструмент

svnadmin hotcopyдозволяє зробити безпечну копію сховища незалежно від того, чи використовують інші процеси сховище. Ви можете написати користувальницький сценарій, який буде робити резервне копіювання для ваших сховищ регулярно.

Ви можете розглянути наступну статтю з книги SVN, щоб дізнатися більше про резервне копіювання сховищ Subversion: http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

2. svnsyncінструмент

Це покроковий метод резервного копіювання. Метод поступового резервного копіювання створює резервну копію лише тієї частини даних сховища, яка була змінена після попередньої резервної копії. Ви можете налаштувати цей інструмент, щоб він працював як "master" і "slave" і автоматично копіював будь-які зобов'язання у своїх сховищах.

Детальнішу інформацію див. У статті "svnsync": http://www.visualsvn.com/support/svnbook/ref/svnsync/

3. Резервне копіювання Windows Server. Ви можете використовувати резервну копію Windows Server для резервного копіювання сховищ Subversion. Це дозволяє планувати створення резервних копій на мережеву частку, виділений обсяг резервного копіювання, носій, що записується. Наприклад, wbadminінструмент командного рядка дозволяє безпечно створювати резервні копії ваших сховищ. Ця проста команда виконує одноразове резервне копіювання C:\foo\barв X:\об'єм:

wbadmin start backup –backupTarget:x: -include:c\foo\bar -vsscopy

(Щоб встановити резервну копію Windows Server, запустіть ocsetup WindowsServerBackupу підвищеному командному рядку).

Ви можете налаштувати резервне копіювання різними способами:

Не потрібно зупиняти сервер під час запуску резервної копії, тому що резервний сервер сховища FSFS завжди знаходиться в узгодженому стані .

Ось загальні поради щодо відновлення резервних копій Windows Server:

  1. Відновіть резервні копії в порожній каталог, щоб переконатися, що відновлені файли репозиторію не змішаться з файлами зламаного. Після відновлення сховища ви можете видалити зламане сховище, а потім замінити його на відновлене.

  2. Сервер циклу зупинки-запуску після відновлення сховища з резервної копії.

  3. Якщо ваші клієнти отримують помилки після відновлення сховища, запустіть svnadmin recoverйого. Команда закінчується миттєво і робить репозиторій знову доступним.


Окрім сховищ, слід створити резервну копію таких даних:

  1. Файли аутентифікації та авторизації, які зберігаються в корені сховищ ( "C: \ Repositories" за замовчуванням). Залежно від ваших налаштувань, повинні бути такі файли: 'authz' , 'authz-windows' та 'htpasswd' .

  2. "% VISUALSVN_SERVER% \ certs \" папка, де зберігається інформація про ваші SSL-сертифікати.

  3. "% VISUALSVN_SERVER% \ conf \" папка, в якій зберігаються файли конфігурації вашого сервера VisualSVN.

  4. Ключ реєстру "HKEY_LOCAL_MACHINE \ SOFTWARE \ VisualSVN \ VisualSVN Server", де зберігається інша частина конфігурації сервера.


1
Для вашого останнього варіанту вам доведеться зупинити службу svn, інакше ви ризикуєте створити резервну копію репо, де буде активна фіксація, яка дозволить вам створити резервну копію корумпованою.
Енді

5

Я роблю це:

svnadmin dump "c:/Repositories/svnroot" > c:/backup/svnroot_%date%.dump

Також ви можете rar / zip для економії місця. Я використовував той же метод, коли перейшов SVN з Linux на VisualSVN, тому ця резервна копія працює як слід.


3

Найпростіший і найкращий спосіб зробити резервне копіювання репортажу SVN - це використовувати svnsync . Це додатковий інструмент, який відтворює будь-які зобов'язання до резервного сховища. Його легко дістати - дивіться цю публікацію в блозі - і її швидкість, оскільки вона лише надсилає зміни. Вам доведеться налаштувати гачок після зміни реверсу, щоб змінити "крайній випадок", коли хтось оновлює історичний ревпроп, але в іншому випадку ви можете запускати його щогодини (як і я), щоб постійно створювати резервні копії. ви навіть можете запустити його в гачку після завершення, якщо ви дійсно параноїчні щодо резервного копіювання даних!

Якщо ваша реальна репо гине, ви можете просто "svn переїхати" в резервну копію репо, поки не буде запущена робота в реальному часі (однак, будьте обережні, якщо ви пишете що-небудь в резервну копію, поки жива робота вниз, якщо ви не запустите svnsync, щоб отримати ці зміни, застосовані до прямого репо, що досить очевидно, коли ви думаєте про це).

Таким чином, у вас є постійне резервне копіювання, а простої вимірюються в секундах, використовуючи його з мінімальним витрачанням ресурсів. Резервні копії не набагато краще, ніж це!


3

Ще один варіант - гаряча копія . Це створює резервну копію всього вашого сховища. Займає більше місця на диску, але дуже легко запускається, а також дуже легко відновлювати сховище за допомогою цього.


2

VisualSVN - це продукт Windows, тому він працюватиме в Windows. Якщо утиліта резервного копіювання може використовувати резервну копію тонів для створення резервної копії, тоді це має створити внутрішню послідовність резервного копіювання. Вбудоване програмне забезпечення NTBACKUP або стороннє виробництво, наприклад Symantec Backup Exec, або інструменти для резервного копіювання на основі диска, вбудовані в Windows Server 2008, усі вони можуть використовувати Volume Shadow Copy.


Це не буде трансакційно здоровим. Вам потрібно змусити сервер робити резервне копіювання так чи інакше, як і для будь-якої бази даних.
Девід Геффернан

Що стосується SQL Server, то резервні копії на основі VSS є насправді транзакційно безпечними. У випадку сервера VisualSVN можна сподіватися, що як сервер на базі Windows, він буде вести себе правильно, коли створюється резервне копіювання одним із стандартних резервних рішень для резервного копіювання Windows, як це робить SQL Server. У мене немає жодних доказів, які б підказували, чи так це, чи ні.
Тім Лонг

Я сумніваюся в цьому. VisualSVN - просто SVN упакований. Я ніколи не бачив жодних ознак того, що він має резервну копію, яка інтегрується з VSS.
Девід Геффернан

0

Для тих, хто просто хоче створити резервну копію всіх сховищ у встановленій за замовчуванням програмі Visual SVN в системі Windows

Я використовую наступний скрипт cmd - він скидає всі підпапки кореня репозиторію на шлях резервного копіювання та 7-зіпсовує їх.

@echo off
set svnAdminPath="C:\Program Files (x86)\VisualSVN Server\bin"
set sevenZipPath="C:\Program Files\7-Zip"
set repositoryRoot=d:\Repositories
set backupPath=c:\Source\Backup\SVN
set dateStamp=%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%

for /f %%f in ('dir /b /AD %%repositoryRoot%%') do ( 
call:dumpRepository %%f 
call:zipLastDump
)
goto:eof

:dumpRepository
cd /d %svnAdminPath%
set repoPath=%repositoryRoot%/%~1
set dumpFile=%~1_%dateStamp%
echo.-------------------
echo.Dumping %~1 to %dumpFile%.dump
echo.-------------------
svnadmin dump "%repoPath%" > "%backupPath%\%dumpFile%.dump"
exit /b

:zipLastDump
cd /d %sevenZipPath%
set zipFile="%backupPath%\%dumpFile%.7z"
echo.-------------------
echo.Zipping %dumpFile%.dump to %zipFile%
echo.-------------------
7z a "%zipFile%" "%backupPath%\%dumpFile%.dump" 
del "%backupPath%\%dumpFile%.dump" 
exit /b
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.