Tivemos relatórios de consultas em execução lenta ou com tempo limite de manhã cedo, e o único trabalho que vejo em execução que acho que poderia afetar esse é o trabalho de backup do banco de dados.
O banco de dados em si tem cerca de 300 GB e o trabalho de backup começa às 4:30 e não termina até um pouco depois das 7:00. A sintaxe atual do nosso trabalho de backup é:
BACKUP DATABASE [DatabaseName]
TO DISK = N'E:\Database Backups\DatabaseName.Bak'
WITH INIT, NOUNLOAD, NAME = N'DatabaseName.Bak',
NOSKIP, STATS = 10, NOFORMAT
E:\
é uma partição no servidor que contém os bancos de dados e os backups do banco de dados.
Também deve ser observado que este é um servidor virtual, não um servidor independente dedicado. Começamos a receber reclamações sobre lentidão durante o processo de backup logo após mudarmos para um servidor virtual, então acho que isso pode estar relacionado.
Existe uma maneira de executar esta tarefa de backup para que ela não afete o desempenho da consulta durante a execução?
Estamos usando o SQL Server 2005
fonte
Esse é um problema comum, existem várias soluções e realmente depende do seu ambiente. Vamos passar por eles:
1- Compactação de backup em tempo real
Em 2008, a compactação de backup R1 tornou-se disponível na empresa, em 2008R2 tornou-se disponível no padrão. Isso é ENORME. Isso poupará muito tempo. Se você pode atualizar, vá em frente. Se não puder, consulte o utilitário HyperBak da RedGate ou o Quest LiteSpeed . Ambos têm uma avaliação gratuita.
2- Backups completos e diferentes
Eu herdei um banco de dados de produtos de 2TB, causando muitos tempos de espera para uma empresa de Internet 24/7 que eu trabalhei. Ativamos backups completos e diferenciais, o que nos poupou muito tempo. Eu faria um backup completo no domingo às 12:00 quando a atividade era baixa e fazia diferenças durante a semana. Isso economizou muito espaço. O trabalho de Diff é diferente dos logs de transações, pois eles trabalham em quais páginas do banco de dados foram alteradas. Todas as páginas alteradas são copiadas. Assim, você faz uma restauração completa e, em seguida, a restauração diff para adicionar as páginas modificadas.
3- Qual é o seu gargalo?
A análise de gargalo é importante para diagnosticar. Você está fazendo backup na mesma matriz de disco que seus arquivos de dados? Seus arquivos de dados estão sendo rastreados? Qual é o seu DISCO SEC / READ e DISK SEC / WRITE para os discos de dados durante os backups? Modifiquei os backups para criar 4 arquivos. Cada arquivo tem seu próprio gravador de threads e em nossa SAN que funcionou muito bem. Teste, raspei 45 minutos criando apenas 4 arquivos de backup. Apenas verifique se as métricas de disco listadas acima estão baixas. Obtenha uma linha de base.
4- Replicar para um servidor diferente e fazer backup disso
Este é um pouco avançado. É necessário garantir que o banco de dados replicado esteja atualizado e você precise de um monitoramento adequado para isso. Se for esse o caso, você pode apenas fazer backup do banco de dados replicado.
fonte
Você pode usar estes parâmetros:
BLOCKSIZE - Escolha o tamanho 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536. (em KB)
BUFFERCOUNT - Especifica o número total de buffers de E / S a serem utilizados para a operação de backup. Você pode especificar qualquer número inteiro positivo; no entanto, um grande número de buffers pode causar erros de "falta de memória" devido ao espaço de endereço virtual inadequado no processo Sqlservr.exe. - do MSDN
MAXTRNASFERSIZE - É de 65536 bytes (64 KB) a 4194304 bytes (4 MB)
fonte
Tente. resolveu o problema de tempo limite expirado enquanto o tamanho grande db.
fonte