Quais são as formas de fazer backup dos repositórios do Windows VisualSVN?


15

Neste momento, estamos usando o Visual SVN e estamos fazendo backup de todo o diretório de repositórios do visual svn. Isso faz o backup de todos os dados de cada repositório dentro do nosso mecanismo svn. Estou curioso para poder restaurar esses arquivos em caso de emergência ou desastre? Algum de vocês tem experiência com esse procedimento de restauração? Obrigado.


1
Se você realmente não testou a restauração, não poderá confiar no seu backup.
Michael Hampton

Respostas:


11

Consulte: http://www.visualsvn.com/support/topic/00012/

Isso aponta para a seguinte documentação:
http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

Ele descreve o uso dos comandos do Subversion para fazer um backup. Espero que isto seja o que você já está fazendo, porque fazer um backup direto do diretório pode resultar em um repositório não utilizável.

Você deve poder usar o backup do Subversion e usar svnadmin dumpou svnadmin hotcopycomando para restaurar o repositório completo. No entanto, como em qualquer estratégia de backup, você deve testar a restauração para garantir que ela funcione para você.


8

Iniciando com a versão do VisualSVN Server 3.6, o servidor inclui um recurso de backup e restauração agendado interno do repositório . Além disso, a versão 3.6 adiciona verificação agendada de repositórios SVN.

Configurar o backup e a verificação agendados do repositório para os repositórios do Subversion é apenas uma questão de minutos. Para obter instruções passo a passo, consulte o artigo KB106: Introdução ao backup e restauração .

Se você procurar um backup único, poderá usar o cmdlet Backup-SvnRepository PowerShell. Para recuperar o repositório, use Restore-SvnRepository . Esses cmdlets de backup estão disponíveis a partir da versão 3.6.

Baixe a versão mais recente do VisualSVN Server na página principal de download .

insira a descrição da imagem aqui


Existem vários métodos para fazer backup de repositórios do VisualSVN Server. Verifique a breve descrição abaixo.

1. svnadmin hotcopyferramenta

svnadmin hotcopypermite que você faça uma cópia segura do repositório, independentemente de outros processos estarem usando o repositório. Você pode escrever um script personalizado que fará o backup dos seus repositórios regularmente.

Você pode considerar o seguinte artigo do livro SVN para saber mais sobre o backup dos repositórios do Subversion: http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

2. svnsyncferramenta

Este é o método de backup incremental. O método de backup incremental faz backup apenas da parte dos dados do repositório que foram alterados desde o backup anterior. Você pode configurar essa ferramenta para funcionar como "mestre" e "escravo" e duplicar qualquer confirmação nos repositórios automaticamente.

Consulte o artigo "svnsync" para obter mais detalhes: http://www.visualsvn.com/support/svnbook/ref/svnsync/

3. Backup do Windows Server. Você pode usar o Backup do Windows Server para fazer backup de repositórios do Subversion. Permite distribuir backups para um compartilhamento de rede, volume de backup dedicado e mídia gravável. Por exemplo, wbadmina ferramenta de linha de comando permite fazer backup de seus repositórios com segurança. Este executa comando backup de cópia one-time simples C:\foo\barpara X:\o volume:

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

(Para instalar o Backup do Windows Server, execute ocsetup WindowsServerBackupno prompt de comando elevado).

Você pode configurar o backup de diferentes maneiras:

Não é necessário interromper o serviço do servidor quando você executa o backup porque o back-end do repositório FSFS está sempre em estado consistente .

Aqui estão algumas dicas gerais sobre como recuperar backups do Windows Server:

  1. Recupere backups para um diretório vazio para garantir que os arquivos do repositório restaurado não se misturem aos arquivos do quebrado. Após o repositório, se recuperado, você pode excluir o repositório quebrado e substituí-lo pelo recuperado.

  2. Pare o servidor do ciclo de inicialização após recuperar o repositório de um backup.

  3. Se seus clientes obtiverem erros após a recuperação do repositório, execute svnadmin recover-o. O comando termina instantaneamente e torna o repositório acessível novamente.


Exceto repositórios, você deve fazer backup das seguintes informações:

  1. Arquivos de autenticação e autorização armazenados na raiz dos repositórios ( 'C: \ Repositories' por padrão). Dependendo das configurações, deve haver os seguintes arquivos: 'authz' , 'authz-windows' e 'htpasswd' .

  2. Pasta "% VISUALSVN_SERVER% \ certs \" onde as informações sobre seus certificados SSL são armazenadas.

  3. Pasta "% VISUALSVN_SERVER% \ conf \" onde os arquivos de configuração do seu servidor VisualSVN são armazenados.

  4. Chave de registro "HKEY_LOCAL_MACHINE \ SOFTWARE \ VisualSVN \ VisualSVN Server" onde outra parte da configuração do servidor está armazenada.


1
Para sua última opção, você teria que interromper o serviço svn, caso contrário, corre o risco de fazer backup de um repositório em que haja uma confirmação ativa que deixará o backup corrompido.
529 Andy

5

Eu estou fazendo isso por:

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

Além disso, você pode rar / zip para economizar espaço. Eu estava usando o mesmo método quando mudei o SVN do Linux para o VisualSVN, portanto, esse backup funciona como deveria.


3

A maneira mais fácil e melhor de fazer backup de um repositório SVN é usar o svnsync . É uma ferramenta incremental que repete qualquer confirmação para um repositório de backup. É fácil seguir em frente - veja esta postagem no blog - e rápido, pois apenas envia alterações. Você precisará configurar um gancho pós-rev-prop-change para capturar o 'caso inicial' de quando alguém atualiza um revprop histórico, mas, caso contrário, você pode executá-lo a cada hora (como eu) para manter os backups continuamente. você pode até executá-lo no gancho pós-confirmação se estiver realmente paranóico com relação ao backup de dados!

Se seu repositório ao vivo morrer, você poderá apenas "svn relocate" para o repositório de backup até que o seu live seja executado novamente (porém, tenha cuidado se você escrever alguma coisa no backup enquanto o live estiver inativo, a menos que você execute o svnsync para obtê-los. alterações aplicadas ao repositório ao vivo, o que é bastante óbvio quando você pensa sobre isso).

Para que você tenha backups contínuos e tempo de inatividade medido em segundos, use-o com o uso mínimo de recursos. Os backups não ficam muito melhores que isso!


3

Outra opção é a cópia eletrônica . Faz um backup de todo o seu repositório. Ocupa mais espaço em disco, mas é muito fácil de executar e também muito fácil de restaurar o repositório usando isso.


2

O VisualSVN é um produto do Windows e, portanto, será executado no Windows. Se o utilitário de backup puder usar o Volume Shadow Copy para fazer o backup, isso deverá produzir um backup consistente internamente. O NTBACKUP interno ou software de terceiros, como o Symantec Backup Exec, ou as ferramentas de backup baseadas em disco do Windows Server 2008 são capazes de usar o Volume Shadow Copy.


Isso não será transacionalmente correto. Você precisa que o servidor faça o backup de uma maneira ou de outra, da mesma forma que em qualquer banco de dados.
David Heffernan

No caso do SQL Server, os backups baseados em VSS são de fato seguros para transações. No caso do servidor VisualSVN, seria de se esperar que, como servidor baseado no Windows, ele se comportasse corretamente quando o backup fosse feito por uma das soluções de backup padrão do Windows, como o SQL Server. Não tenho evidências para sugerir se existe ou não.
Tim Long

Eu duvido. O VisualSVN é simplesmente svn empacotado. Eu nunca vi nenhuma indicação de que ele tenha backup que se integre ao VSS.
David Heffernan

0

Para aqueles que simplesmente desejam fazer backup de todos os repositórios em uma instalação padrão do Visual SVN em um sistema Windows

Eu uso o seguinte script cmd - Ele despeja todas as subpastas da raiz do repositório no caminho do backup e as fecha com 7 zip .

@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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.