A questão é que eu realmente não preciso do t-tlog e desejo evitá-lo. Procurei em muitos tópicos, mas não procurei a resposta de que preciso (o tópico de backup do MSSQL é muito complicado de entender bem em todos os aspectos).
Meu banco de dados é feito assim:
- 15 tabelas de dados de configuração
- 3 tabelas com grande quantidade de linhas por mês (no geral são 30 milhões a 50 milhões de linhas por mês)
- Os dados do mês atual são gravados/atualizados todas as noites
- Os dados dos meses anteriores são armazenados apenas (não são mais alterados)
- Partições:
- 1 partição para primária
- 1 partição para dados de configuração
- n partições para dados de meses (1 partição para cada mês)
Todas as noites, muitos processos recalculam todos os dados do mês; todas as manhãs há poucas mudanças em relação ao dia anterior. Isso significa também: um enorme log de transações em comparação com poucas chances de dados finais).
Eu tenho esta configuração de processo/backup:
- Processar dados à noite
- Backup completo todos os domingos de manhã
- Backup diferencial na manhã de segunda a sábado
- Backup T-Log
Quando restauro os dados, a ordem deve ser:
- Restauração de backup completo
- Restauração de todos os backups diferenciais desde o último backup completo
- Restauração de todos os backups T-Log desde o último backup completo
- Restauração do backup da cauda
Por exemplo, na quarta-feira:
- Backup de log final
- Restauração do backup completo do dia 1 (domingo)
- Restauração do backup diferencial do dia 2, 3, 4 (seg, ter, qua)
- Restauração do backup t-log do dia 2, 3, 4 (seg, ter, qua)
- Restauração do tail log, COM RECUPERAÇÃO
Minhas perguntas seguem.
Questão 1 : Como restaurei todos os backups diferentes, por que preciso de todos os backups de log desde o último completo? Por que não basta apenas o t-Log desde o último backup diferencial?
Pergunta 2 : Posso restaurar apenas backup completo e diferencial e colocar meu banco de dados online sem restauração de log?
Questão 3 : Após o processamento noturno dos dados, tenho certeza de que nenhum outro dado foi alterado. Isso significa que, quando fiz backup diferencial pela manhã, não preciso armazenar os enormes dados do t-Log. Posso truncar o Log de transações antes Log Backup
? Ou posso evitar completamente o backup t-log?
Questão 4 : Eu realmente não preciso do T-Log completo, mas escolho FULL recovery mode
porque SIMPLE mode
quero dividir o backup de diferentes partições em arquivos diferentes, por razões práticas. EXISTE alguma outra configuração ou você tem sugestões para isso?
Questão 5 : Como os dados dos últimos meses nunca mudam, não preciso fazer backup deles toda vez que faço um backup completo. Existe alguma maneira de misturar backups anteriores (de todos os meses anteriores) e novos backups (de dados primários, operacionais e do mês atual)?
Muito obrigado. (Eu sei que é difícil ser preciso nessas coisas. Se algum ponto não estiver bem explicado, diga-me e tentarei fazer melhor.)
Sim
Não. Os backups de diferenças são cumulativos, portanto, apenas o último backup de diferenças deve ser restaurado
Não. Restaurar backups de log somente desde o backup diferencial.
Somente se você participar do envio de logs. Em outros casos, você não cria backups de log final.
Por exemplo, na quarta-feira: Restauração do backup completo do dia 1 (domingo) Restauração do backup diferencial de 4 (qua) Restauração do backup t-log após quarta até o ponto de recuperação desejado
Deve ser suficiente. Tente restaurar (você precisa praticar a restauração de qualquer maneira) e forneça uma mensagem de erro se não funcionar
Sim. Ele estará no estado em que o backup do diferencial foi concluído.
Não tenho certeza de qual problema você está tentando resolver. Você tem um arquivo de log enorme? Basicamente, no modo de recuperação total, você deve executar backups de log para evitar que o arquivo de log cresça.
Então, você quer dizer que não precisa de restauração pontual, mas usa o modo de recuperação total para backup/restauração parcial. Parece que você precisa de Piecemeal Restores https://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/piecemeal-restores-sql-server?view=sql-server-ver16 Para simplesmente o modo de recuperação, você deve declarar seu grupo de arquivos antigo como somente leitura https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-file-and-filegroup-options?view=sql -server-ver16
Nesse caso, você pode pular grupos de arquivos somente leitura do backup e restauração
Sim. você deve usar a cláusula READ_WRITE_FILEGROUPS em sua instrução de backup semanal https://learn.microsoft.com/en-us/sql/t-sql/statements/backup-transact-sql?view=sql-server-ver16#read_write_filegroups--- grupo de arquivos---logical_filegroup_name--logical_filegroup_name_var---n--
No entanto, se você tentar gravar em qualquer objeto no espaço de tabela somente leitura, sua chamada falhará.
Não sou um grande especialista em backup, mas vou tentar:
Tendo dito tudo isso, você deve verificar novamente o que está acontecendo em seus bancos de dados. Os arquivos de log não crescem sozinhos. Se eles fizerem isso significa que algo acontece. Mas, novamente, se eu tivesse certeza absoluta de que não preciso de backups de log, evitaria usar o modo de recuperação total.
Eu também consideraria o processo de arquivamento - mover todos os dados antigos para outro servidor\db e trabalhar com um banco de dados relativamente pequeno para que os backups não sejam enormes.