No momento, estamos implementando uma solução de backup para um cliente e sua solução ERP usa o SQL Server.
A solução ERP foi montada por outra empresa. E eles estão me dizendo que é super importante fazer backup e truncar o log de transações.
Estive lendo um pouco sobre esse log de transações e não entendo por que isso é tão importante quando já estou fazendo o backup de toda a máquina (de qualquer maneira, estamos usando o ArcServe UDP, que conhece o SQL Server e usa VSS). Entendo que as tarefas de limpeza na VM do SQL Server já estão cuidando do truncamento do log; no entanto, o UDP também permite o truncamento de log do SQL Server.
Entendo que o log de transações pode ser usado para restaurar bancos de dados corrompidos, porque, bem, é um log de todas as transações. Mas eu já tenho um backup por hora de todo o banco de dados, então, por que eu me importaria?
fonte
[dba.se]
→ Administradores de banco de dados ;)Respostas:
Você só precisa fazer isso se o modo de recuperação de banco de dados estiver definido como "cheio". Se estiver definido como "simples", você não precisará fazer um backup do log de transações. Mas atente para a diferença entre essas duas opções!
Primeiro de tudo: se você deseja restaurar o banco de dados para um ponto específico, é necessário usar o modo "completo". (Acho que você pode ajustar o tempo com tanta precisão que pode especificar os milissegundos para o ponto de restauração). No modo "simples", você só pode voltar para o último backup completo .
Se você não fizer backup / truncar o log de transações, ele aumentará o tempo todo (no modo completo). Vi bancos de dados em que o arquivo .trn era duas vezes maior que o próprio banco de dados. Isso depende de quantas vezes as alterações foram feitas no banco de dados.
Outro ponto é que um backup de log normalmente é mais rápido que um backup completo.
Portanto, acho que seu plano de backup para fazer um backup completo a cada hora não é o ideal. Mas isso depende da sua situação:
Se você diz: Tudo bem, se eu posso restaurar o banco de dados até a última hora completa, está tudo bem. -> Você também pode definir o modo de recuperação como "simples" se desejar manter o backup completo a cada hora.
Na minha opinião, uma idéia melhor seria fazer um backup completo no início da manhã e depois fazer um backup do log de transações a cada hora. Deve ser muito mais rápido e você pode restaurar para qualquer ponto do tempo que desejar. E também o seu arquivo .trn não crescerá muito ...
Espero que isto ajude.
fonte
Bem. Você se importa, pois se seu modelo de recuperação estiver definido como completo e você não fizer o backup do Log de Transações usando o backup do SQL (e não o backup do servidor), o log de transações continuará a crescer até consumir todo o espaço em disco disponível. (Uma vez vi um colega menor instalar o SQL Server na unidade do sistema e nunca fazer backup do log de transações. Ele utilizava o Windows .)
Sim, ele também será restaurado para um ponto específico no tempo. Até o minuto. Como Twinkles diz, sim, pessoas jogando mesas e coisas do gênero.
Não sei o que você está usando para o backup por hora de todo o banco de dados e se é o mesmo produto que você está usando para toda a máquina. Nesse caso, uma solução de backup que não reconhece SQL não é suportada para restaurações. A quantidade de tempo que o VSS leva para copiar os arquivos MDF e LDF pode causar uma incompatibilidade de registro de data e hora interna, por exemplo.
fonte
Também gerenciamos vários sistemas ERP. E o problema geralmente é que, à noite, muitas vezes há trabalhos em lote de longa execução que sincronizam dados com outros sistemas. E eles levam algumas vezes uma hora ou mais. Então, o que você deseja fazer em caso de falha é pular para um ponto em que você tenha dados consistentes. (O que significa exatamente entre dois trabalhos em lote.) Se você olhar apenas para o momento, nem sempre poderá saber exatamente qual era o status do banco de dados no momento.
Mas é claro que depende da situação. Se você não possui trabalhos automatizados, etc., pode ficar totalmente bem com um backup por hora.
fonte
Há várias razões pelas quais você deseja fazer isso:
fonte
Quando seu banco de dados cresce além do que você pode fazer backup em uma hora, você precisa de um modelo diferente.
Um backup completo do seu banco de dados truncará seus logs, mas ele precisará estar "ciente do SQL", porque nesse cenário, é o software de backup que informa ao SQL Server o que foi feito o backup e o que truncar.
Como outros mencionam, se você tiver um banco de dados no modelo de recuperação "Completo", o log de transações aumentará indefinidamente, até que você faça um backup completo com reconhecimento de SQL.
A recuperação é realmente o problema aqui, não o Backup. E não é uma decisão técnica, é uma decisão comercial!
Se os proprietários de sua empresa estiverem bem com a perda de uma hora ou mais de suas transações de banco de dados (o que pode ser MUITO difícil ou impossível de refazer!), Seu modelo funcionará. Se eles estiverem OK com o sistema inativo por horas enquanto você restaura o banco de dados inteiro do backup, seu modelo funciona.
No entanto, se sua empresa considerar o sistema ERP como um ativo crítico para sua operação (não é?), Definir um tempo de recuperação máximo aceitável (RTO, objetivo do tempo de recuperação) para seus serviços críticos será uma decisão comercial.
Além disso, os proprietários da empresa ou partes interessadas no sistema precisam definir quantos dados estão dispostos a arriscar a perder em um incidente, também conhecido como RPO (Recovery Point Objective).
A resposta, se você perguntar a eles, pode ser "Nenhum dado pode ser perdido! O sistema ERP deve estar disponível 24/7/365!" ... o que todos sabemos é altamente improvável que seja econômico. Se você lhes apresentar o custo associado à construção de um sistema totalmente redundante e ininterrupto, eles apresentarão um valor mais razoável ..;)
O ponto é que, se você pode evitar a perda de transações, está salvando sua empresa potencialmente centenas ou milhares de horas de trabalho perdidas. Isso equivale a enormes economias em qualquer empresa e cresce com o tamanho da sua empresa ...
fonte
Todos tiveram ótimas respostas para isso, mas eu gostaria de acrescentar outra nota importante ... ou duas.
Conhecer os detalhes dos modelos de recuperação do SQL Server e os requisitos de negócios para perda de dados são muito importantes; no entanto, nesse caso, é essencial que você entenda como o seu produto de backup funciona com o SQL Server. (Com base nos comentários acima, parece que você está fazendo backup de volumes de disco via cópia do VSS, o que significa que os backups do SQL Server podem ou não ser necessários, além disso.)
Tendo avaliado recentemente um produto similar, alguns dos pontos importantes que você talvez precise perguntar são:
Espero que isso seja útil.
A experiência que minha equipe teve com nossa avaliação recente forneceu algumas respostas muito interessantes para as perguntas acima. Uma coisa é certa, os backups são mais complexos para nós com um produto de backup do VSS.
fonte
Como muitos outros já disseram, se você estiver usando uma ferramenta de terceiros para fazer backup / captura instantânea da VM ou do armazenamento, ainda corre o risco de não ter um backup válido. Todas as ferramentas de terceiros que gerenciam backups do SQL Server serão implementadas e conectadas ao SQL Server usando o VSS. Ele faz isso para solicitar que o SQL Server encerre todas as E / S nos arquivos de dados para que um instantâneo consistente possa ser obtido. Caso contrário, você poderá ter muitas transações em vários estados e uma restauração não saberá se essas transações podem ser revertidas ou retrocedidas.
Não trabalhei com todas as ferramentas de instantâneo de VM / Storage de terceiros, mas as que trabalhei nunca conseguiram capturar instantaneamente o armazenamento onde estavam localizados os bancos de dados do sistema - o SQL Server não pode desativar esses bancos de dados. Todos eles fizeram backup desses bancos de dados de maneira transmitida - ou seja, emitindo os comandos BACKUP DATABASE e, em seguida, capturando o próprio arquivo de backup.
Além disso, como muitos já disseram, se você estiver no modelo de recuperação COMPLETO e não emitir instruções BACKUP LOG regularmente, o log de transações continuará a crescer até que não haja mais espaço no disco.
A verdadeira pergunta que você precisa fazer, e eu talvez a tenha esquecido acima ... você restaurou com êxito desses backups várias vezes e está satisfeito com a consistência dos dados nessas restaurações. Pessoalmente, mesmo isso não seria suficiente para mim, ainda parece um rolar dos dados, e isso é algo que um bom DBA nunca leva quando se trata de backup e recuperação.
fonte
Reconheça que os logs de transações não são simplesmente um mecanismo de recuperação. A manutenção adequada do log também pode desempenhar um papel crítico no desempenho geral do banco de dados (ou seja, rendimento da transação).
O backup frequente de seus arquivos de log faz algumas coisas:
Se você conseguir fazer um backup completo a cada hora, não tenho certeza de quanto se beneficiaria dos backups de log mais frequentes. Afinal, como eu o entendo, um backup completo também fará o backup do log necessário para garantir uma restauração completa.
Por outro lado, se seu aplicativo gerar toneladas de transações entre seus backups completos por hora, isso pode explicar por que os desenvolvedores originais sugeriram uma manutenção mais granular do log. Muitas transações podem aumentar a contagem de VLF em seus logs, o que pode incorrer em uma penalidade de desempenho até que o log seja truncado. Vi isso expresso como um "tempo limite da consulta expirado" erro de em um aplicativo (pouco antes de travar).
As recomendações relacionadas à manutenção do log de transações são descritas muito bem neste artigo 8 Etapas para melhorar o rendimento do log de transações . Além disso, este artigo As principais dicas para manutenção eficaz do banco de dados menciona uma contagem VLF um tanto arbitrária a ser apontada (<200), que funcionou muito bem para mim.
fonte
Outras pessoas já forneceram a maioria dos motivos de um backup de tradução, etc. Parece haver alguma dúvida sobre o motivo de esta ser uma boa estratégia quando você já faz backup do servidor.
Algumas boas razões surgiram para mim que não estão acima. E se o aplicativo de terceiros falhar em fazer um backup, você pode restaurar? Você tentou restaurar seu backup? Que tal para um novo servidor que você acabou de criar a partir de seus modelos (pense em DR)? E quanto a outro servidor em seu domínio que tenha um agrupamento diferente? ou instância SQL?
Tomo backups redundantes por nenhuma outra razão, a não ser que seu aplicativo de terceiros não seja a maneira mais rápida de restaurar. Às vezes, o armazenamento no qual seu aplicativo de terceiros está salvando também é afetado ou está corrompido por seus próprios motivos.
fonte