Tenho um servidor SQl 2019 em um núcleo padrão do Windows Server 2019, gerencio dois tipos de backup, um com planos de manutenção e outro com Veeam Backup. Os planos de manutenção estão ok, o backup com Veeam falha todos os dias com erro no SQL deixando o SQLServerWriter no estado Failed com último erro Erro não repetível. Abri um ticket no suporte da Veeam e lamentamos o log de variação e o problema não estava relacionado à Veeam porque mesmo criando backup com o comando vss há erros. De acordo com os logs, a tarefa de backup falha com o erro:
[11.09.2023 00:07:12] <01> Error Failed to create snapshot: Backup job failed.
[11.09.2023 00:07:12] <01> Error Cannot create a shadow copy of the volumes containing writer's data.
[11.09.2023 00:07:12] <01> Error A VSS critical writer has failed. Writer name: [SqlServerWriter].
Nos gravadores VSS, o erro pode ser observado:
Writer name: 'SqlServerWriter'
Writer Id: {a65faa63-5ea8-4ebc-9dbd-a0c4db26912a}
Writer Instance Id: {1fb6de2a-c593-45c2-b592-e90ff6aad393}
State: [8] Failed
Last error: Non-retryable error
Os seguintes erros podem ser observados nos eventos de aplicativos do Windows:
Log Name: Application
Source: SQLWRITER
Date: 11.09.2023 0:07:05
Event ID: 24583
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: SQL03Core
Description:
Sqllib error: OLEDB Error encountered calling ICommandText::Execute. hr = 0x80040e14. SQLSTATE: 42000, Native Error: 3013
Error state: 1, Severity: 16
Source: Microsoft SQL Server Native Client 11.0
Error message: BACKUP DATABASE is terminating abnormally.
SQLSTATE: 42000, Native Error: 3224
Error state: 1, Severity: 16
Source: Microsoft SQL Server Native Client 11.0
Error message: Cannot create worker thread.
Log Name: Application
Source: SQLWRITER
Date: 11.09.2023 0:07:05
Event ID: 24583
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: SQL03Core
Description:
Sqllib error: OLEDB Error encountered calling ICommandText::Execute. hr = 0x80040e14. SQLSTATE: 42000, Native Error: 3013
Error state: 1, Severity: 16
Source: Microsoft SQL Server Native Client 11.0
Error message: BACKUP DATABASE is terminating abnormally.
SQLSTATE: 42000, Native Error: 3202
Error state: 1, Severity: 16
Source: Microsoft SQL Server Native Client 11.0
Error message: Write on "{7F86B757-DC6E-4B76-B35D-F382797EB665}414" failed: 995(The I/O operation has been aborted because of either a thread exit or an application request.)
O servidor possui 536 bancos de dados e 8 núcleos, então o suporte da Veeam supõe que o problema estava relacionado a um número insuficiente de threads de trabalho, portanto de acordo com https://learn.microsoft.com/en-us/sql/database-engine /configure-windows/configure-the-max-worker-threads-server-configuration-option?view=sql-server-ver16 , alteramos o número de threads de trabalho para 1000, mas os erros continuam aumentando, então o suporte da Veeam sugere contar com ajuda para otimizar máquina e rosca de acordo com a carga.
Alguém pode sugerir uma maneira de proceder? Desculpe pelo meu inglês ruim e desde já agradeço... Stefano
A realização de um instantâneo de um sistema acionará vários subsistemas no servidor de destino, conforme explicado abaixo.
Quando um instantâneo de uma instância do SQL Server for executado, ele deverá aparecer no arquivo ERRORLOG do SQL Server semelhante ao seguinte:
Isso é um sinal de que o gravador VSS do SQL Server foi notificado com êxito sobre o instantâneo e, após a execução do instantâneo, ele descongela toda a E/S novamente para que as transações possam ser gravadas nos arquivos do banco de dados.
Como é o seu ERRORLOG?
Respondendo sua pergunta
Aumentar a quantidade de threads de trabalho
A Microsoft tem uma recomendação para aumentar os threads de trabalho:
...e...
Referência: Erro ao criar um backup de instantâneo de vários bancos de dados ao mesmo tempo no SQL Server (Microsoft Learn | SQL)
Então você teria que quintuplicar a quantidade de threads de trabalho:
5 * 536 = 2680
( pelo menos!! )É necessária uma reinicialização.
Pergunte à Microsoft
Se você tiver um Contrato de Suporte da Microsoft, peça suporte à Microsoft.
Backups de instantâneos da Veeam
Não os use... Bem, você já tem backups FULL, (DIFF) e TLOG, então por que se esforçar para ter backups de snapshots da Veeam adicionais que você só pode usar para aquele momento específico?
Daqui para frente
Talvez você queira considerar a redução da quantidade de banco de dados por instância do SQL Server. Ou realmente criando novos SQL Servers e distribuindo a carga.