Princípios da criação de um backup consistente (point-in-time)

2

No que diz respeito à minha experiência, para criar um backup útil e consistente, é necessário envolver o aplicativo que manipula os dados a serem armazenados em backup . Eu gostaria de validar minhas descobertas com outros administradores de sistemas.

Considere a situação em que um aplicativo tem um arquivo aberto para R / W e, enquanto mantido aberto, um processo de backup separado lê o arquivo. (E é permitido fazer isso - se usarmos bandos e obrigatórios em vez de advisory , teríamos que envolver o aplicativo de qualquer maneira). Deve ser comumente acordado que o backup criado deste arquivo aberto pode ser inconsistente.

O uso de instantâneos no nível do sistema de arquivos não pode aliviar completamente isso; como não podemos garantir que na hora do snapshot t todas as aplicações tenham escrito arquivos consistentes no disco (suponha que em t possamos ter liberado todos os buffers) .

Portanto, ao criar um plano de backup adequado, é preciso sempre ter em mente quais aplicativos gravam dados e como estão sendo executados - e certifique-se de que eles gravem arquivos consistentes no disco antes de fazer um snapshot / backup. / p>

Você concorda comigo, ou cometi erros fundamentais ao refletir sobre isso?

(Por favor, não responda a esta pergunta com qualquer HOWTO específico, pois trata-se de princípios gerais, de "alto nível". Além disso, apenas para ter certeza, isso não é sobre o DB , como o problema já foi resolvido lá).

    
por Roman 03.07.2013 / 14:09

1 resposta

1

Você parece ter uma boa compreensão dos problemas.

A abordagem de instantâneo padrão que vi é desligar os serviços que seriam gravados no sistema de arquivos, quebrar o instantâneo e reiniciar os serviços. Backup do lado que não está sendo escrito.

Outra abordagem é poder exportar um conjunto de dados point in time do aplicativo. Em seguida, faça backup dos dados exportados. Essa é uma abordagem que os bancos de dados podem usar. Os dados podem ser transformados durante a exportação, portanto, pode haver etapas adicionais para importar os dados.

Uma abordagem alternativa que usei com bancos de dados é marcar arquivos como sendo copiados enquanto são copiados. Isso pode adiar as atualizações enquanto o backup estiver em execução ou permitir a reprodução das alterações posteriormente. Isso requer logs de alterações que também precisam de backup.

Eu geralmente excluo os arquivos de banco de dados dos meus backups padrão e uso uma das abordagens alternativas para obter dados pontuais do banco de dados.

Planeje cuidadosamente antes de recuperar um banco de dados. Eu raramente precisei recuperar um banco de dados completo para um ponto no tempo. Backups frios (desligamento de banco de dados) podem ser apropriados para um banco de dados usado no treinamento. Eu me arrependi de fornecer reversão semelhante para testar bancos de dados.

    
por 03.07.2013 / 14:28

Tags