Dividi
Suponha que você esteja usando o SQL Server 2017 no Linux. Em determinados cenários, o SQL Server pode sofrer perda de dados em sistemas que usam caches voláteis. A perda ocorre devido às circunstâncias imprevistas, como falha de energia antes que os dados em cache sejam gravados em uma mídia estável. Para evitar esses cenários, um mecanismo de liberação forçado é introduzido na atualização cumulativa 6 (CU6) do SQL Server 2017 no Linux. Se o subsistema de armazenamento não puder garantir gravações duráveis na perda de energia, recomendamos que você aplique o CU6 para SQL Server 2017 no Linux. Esta atualização permite o seguinte:
-
O recuo forçado comportamento durante a gravação de banco de dados, como gravações de ponto de verificação e log de transação.
-
A configuraçãoWriteThrough = 1e alternatewritethrough = 1Opções por padrão. Essas configurações padrão permitem que o SQL Server Verifique se as gravações são durably liberadas para bloquear dispositivos. WriteThrough alternativo é uma opção para otimizar as solicitações de liberação de durabilidade para o sistema de arquivos. Para obter mais informações sobre as duas configurações, consulte a seguinte tabela:
Nome |
Padrão |
Descrição |
writethrough |
1 |
Os valores válidos são 0 e 1. 1 = traduz FILE_FLAG_WRITE_THROUGH solicitações para O_DSYNC abre. 0 = impede a tradução de solicitações de FILE_FLAG_WRITE_THROUGH para O_DSYNC é aberta. |
alternatewritethough |
1 |
Os valores válidos são 0 e 1. 1 = permite a movimentação otimizada pela extensão do host para solicitações de FILE_FLAG_WRITE_THROUGH. Gravação (s) em arquivos otimiza (m) chamadas para fdatasync para o dispositivo de bloco. 0 = desabilita a otimização de liberação alternativa. O arquivo é aberto usando O_DSYNC e o sistema de arquivos subjacente executa as solicitações de gravação e liberação necessárias. Observação a configuração alternatewritethrough só se aplica quando WriteThrough = 1. |
Informações adicionais
Para obter mais informações, consulte práticas recomendadas de desempenho e diretrizes de configuração do SQL Server 2017 no Linux para lidar com cargas de trabalho de gravação de alta frequência e recomendações de posicionamento de arquivo de banco de dados.
Instalações do SQL Serverexecutadas em sistemas de armazenamento que garantem gravaçõessão O_DIRECT seguropode habilitar o sinalizador de rastreamento (TF) 3979 para desabilitar o comportamento de liberação forçado e definir as opçõesalternatewritethrough e WriteThrough em MSSQL. conf como zero. Isso retorna SQL Server 2017 para o comportamento CU6.
Anota Um sistema de armazenamento pode garantir que todas as gravações em cache ou em estágios sejam consideradas seguras e duráveis garantindo que as gravações emitidas para o dispositivo sejam mantidas em uma mídia que persistem entre falhas do sistema, reinicializações de interface e falhas de energia e a média em si é redundante em hardware.
Veja mais detalhes sobre O comportamento do SQL Server para I/O de arquivos com essas alterações:
-
Os arquivos de banco de dados (. MDF) e de log de transações (. ldf) não usam WriteThrough e alternatewritethrough por padrão em CU6, pois eles usam o comportamento de movimentação forçado . O TF 3979 desabilita o uso do comportamento de liberação forçado para arquivos de log de transação e banco de dados e usará a lógica WriteThrough e alternatewritethrough.
-
Outros arquivos abertos usando FILE_FLAG_WRITE_THROUGH no SQL Server, como instantâneos de banco de dados, instantâneos internos para verificações de consistência do banco de dados (CHECKDB), Profiler arquivos de rastreamento e arquivos de rastreamento de eventos estendidos, usarão as otimizações WriteThrough e alternatewritethrough.
Resolução
Esta atualização está incluída na seguinte atualização cumulativa do SQL Server:
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:
Referências
Saiba mais sobre a terminologiaque a Microsoft usa para descrever atualizações de software.