Sou um novo DBA e estou gerenciando uma instância do SQL Server 2012 que possui uma quantidade razoável de atividades. Estou executando no modo de recuperação completa porque precisamos de recuperação pontual.
No momento, estou fazendo um backup completo dos bancos de dados e logs todos os dias às 5h. Alguns dos arquivos de log aumentaram até 300 GB e, mesmo depois de fazer um backup, eles não diminuem de tamanho. Posso fazer com que eles reduzam de tamanho executando algo semelhante a:
BACKUP LOG db1 TO DISK = '\\server\share\db1_log1.trn';
DBCC ShrinkFile([db1_log], 0);
BACKUP LOG db1 TO DISK = '\\server\share\db1_log2.trn';
DBCC ShrinkFile([db1_log], 0);
BACKUP LOG db1 TO DISK = '\\server\share\db1_log3.trn';
DBCC ShrinkFile([db1_log], 0);
Quando verifico os LSNs dos arquivos de backup, vejo algo como:
RESTORE headeronly FROM DISK = N'\\server\share\db1_log1.trn'
FirstLSN: 15781000014686200001
SecondLSN: 15802000000665000001
RESTORE headeronly FROM DISK = N'\\server\share\db1_log2.trn'
FirstLSN: 15802000000665000001
SecondLSN: 15805000000004100001
RESTORE headeronly FROM DISK = N'\\server\share\db1_log3.trn'
FirstLSN: 15805000000004100001
SecondLSN: 15808000000004200001
Não acredito que estou quebrando minha cadeia de logs diminuindo os arquivos de log. Lendo isso, acredito que estou prejudicando meu desempenho, porque esses arquivos de log encolhidos precisam crescer novamente.
Questões:
- Por que o arquivo de log não diminui após meus backups? É porque existem transações não confirmadas?
- No começo, eu pensava que deveria reduzir os arquivos de log após cada backup das 05:00. Depois de ler como isso é ruim para o desempenho, agora acredito que preciso fazer backups regulares de log a cada duas horas durante o dia. Isso está correto?
- Meu backup completo normal do banco de dados / logs acontece todos os dias às 05:00 e, às vezes, leva 3 horas. Se eu agendar os backups de log a cada hora, o que acontecerá quando o backup de log colidir com o backup das 5:00 da manhã?