SQL Server Congelado Subitamente? Você pode estar capturando muitos bancos de dados.

SQL Server Congelado Subitamente? Você pode estar capturando muitos bancos de dados.

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Ferramentas de backup de instantâneo, como Azure Site Recovery e Veeam, são ótimas para administradores de sistemas. Eles permitem que você replique rapidamente uma máquina virtual para outro lugar sem saber muito sobre o conteúdo do servidor.

Para conseguir isso, eles usam o Serviço de Cópias de Sombra de Volume do Windows para fazer backups de instantâneos – geralmente chamados de instantâneos de VSS. Resumindo:

  1. O serviço VSS diz ao SQL Server para congelar suas gravações
  2. O SQL Server para de gravar em cada um de seus bancos de dados, congelando-os
  3. O SQL Server diz ao VSS, “Ok, estou fora”
  4. O VSS cria uma cópia de sombra dos arquivos de dados e log
  5. O VSS diz ao SQL Server: “Você pode voltar ao trabalho”
  6. O SQL Server começa a gravar novamente, um banco de dados por vez (chamado de descongelamento)

Esses backups instantâneos aparecem em tabelas do sistema como msdb.dbo.backupset porque, quando usados ​​com êxito, são como backups completos. Parece bruxaria, mas realmente funciona, e funcionou por anos.

Mas quando dá errado, dá errado.

O SQL Server congela os bancos de dados um de cada vez, em série, até que todos estejam congelados. Isso pode levar algum tempo e, enquanto os bancos de dados estão congelados, você verá cadeias de bloqueio para escrever consultas (o que pode, por sua vez, bloquear leitores também, dependendo do seu nível de isolamento).

Por causa desse problema de um por vez, KB # 943471 diz:

Recomendamos que você crie um backup de instantâneo de menos de 35 bancos de dados ao mesmo tempo.

No entanto, aplicativos de backup como o Azure Site Recovery e o Veeam não avisam você sobre isso. Você apenas descobre quando de repente o SQL Server parece estar travado, com toneladas de problemas de bloqueio.

Leia Também  Quando um índice Columnstore faz com que sua consulta falhe

Por exemplo, aqui está uma captura de tela da tabela msdb.dbo.backupset de um cliente quando o Azure Site Recovery estava tentando fazer um instantâneo de centenas de bancos de dados de uma vez:

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

SQL Server Congelado Subitamente?  Você pode estar capturando muitos bancos de dados. 2

Veja como backup_start_date e backup_finish_date estão separados por 40-50 segundos? Isso porque o SQL Server estava lentamente percorrendo os instantâneos de cada banco de dados. Finalmente, todos eles “terminaram” às 8:08:10, mas mesmo isso é um pouco complicado – neste caso, eles não descongelaram exatamente ao mesmo tempo. (Estou supondo, com base nas tempestades de bloqueio que tenho visto recentemente, que a data / hora de backup_start_date e backup_finish_date não correspondem realmente aos tempos exatos de congelamento / descongelamento do VSS.)

Para piorar as coisas, os administradores de sistemas apenas marcam as caixas em ferramentas como Azure Site Recovery e Veeam e dizem a eles para fazer backups uma vez por hora. Os backups não acontecem necessariamente exatamente na hora, então os desenvolvedores ficam coçando a cabeça sobre por que consultas aparentemente simples de repente congelam de vez em quando sem motivo.

Como saber se isso está acontecendo com você

Se você estiver fazendo uma verificação de saúde, execute sp_Blitz. Avisamos sobre quantos backups de instantâneos seu servidor fez recentemente e, na próxima compilação de outubro, também avisamos se você teve instantâneos abrangendo mais de 35 bancos de dados nas últimas duas semanas.

Se você estiver solucionando problemas ao vivo, execute sp_BlitzWho e procure por cadeias de bloqueio lideradas por comandos de backup. No entanto, você terá que se mover rápido, porque o bloqueio de tempestades como essa pode desaparecer em 30-60 segundos. Eu não recomendo que você registre sp_BlitzWho na tabela com tanta frequência – isso é muito overhead. É aí que as ferramentas de monitoramento de terceiros são mais úteis.

Leia Também  Configurando grupos de disponibilidade AlwaysOn do SQL Server no AWS EC2
cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br