Melhoria
Assuma que está a utilizar o SQL Server 2017 no Linux. Em certos cenários, o SQL Server pode experimentar a perda de dados em sistemas que utilizam caches voláteis. A perda ocorre devido a circunstâncias imprevistas como falha de energia antes que os dados em cache são escritos para um meio estável. Para evitar tais cenários, é introduzido um mecanismo de descarga forçado na Atualização Cumulativa 6 (CU6) para o SQL Server 2017 no Linux. Se o subsistema de armazenamento não conseguir garantir gravações duradouras em toda a perda de energia, recomendamos que aplique CU6 para SQL Server 2017 no Linux. Esta atualização permite o seguinte:
-
O flush forçado comportamento durante a base de dados escrever atividade como checkpoint e registo de transações escreve.
-
A definição de configuraçãoescrita através=1e alternatewritethrough=1opções por predefinição. Estas definições predefinidas permitem ao SQL Server certificar-se de que as gravações são duramente lavadas para bloquear dispositivos. A escrita alternativa é uma opção para otimizar pedidos de lavagem de durabilidade ao sistema de ficheiros. Para obter mais informações sobre as duas definições, consulte a tabela seguinte:
Nome |
Predefinição |
Descrição |
escrever através |
1 |
Os valores válidos são 0 e 1. 1 = Traduz FILE_FLAG_WRITE_THROUGH pedidos para O_DSYNC abre. 0 = Previne a tradução de FILE_FLAG_WRITE_THROUGH pedidos para O_DSYNC abre. |
alternatewriteough |
1 |
Os valores válidos são 0 e 1. 1 = Permite a descarga otimizada pela extensão do anfitrião para pedidos de FILE_FLAG_WRITE_THROUGH. Escreva(s) em ficheiros otimizar(s) chamadas para o dispositivo de bloqueio. 0 = Desativa a otimização de descarga suplente. O ficheiro é aberto utilizando O_DSYNC e o sistema de ficheiros subjacente executa os pedidos de escrita, descarga necessários. Nota A definição de inscrição alternativa apenas se aplica quando se escreve=1. |
Mais Informações
Para obter mais informações, consulte as melhores práticas de desempenho e as diretrizes de configuração do SQL Server 2017 no Linux para lidar com cargas de trabalho de alta frequência e recomendações de colocação de ficheiros de base de dados.
As instalações do SQL Serverque executam sistemas de armazenamento que garantem as escritassão O_DIRECT seguro pode permitir que o traço da bandeira (TF) 3979 desative o comportamento de descarga forçada e descreva as opções de escrita alternativa e escrita através de opções em mssql.conf para ZERO. Isto devolve o SQL Server 2017 para comportamentopré-CU6.
Nota Um sistema de armazenamento pode garantir que quaisquer escritas em cache ou encenadas sejam consideradas seguras e duráveis, garantindo que as escritas emitidas para o dispositivo são mantidas num meio que persistirá em falhas do sistema, resets de interface e falhas de energia, e o próprio meio é redundante.
Aqui estão mais detalhes sobre o comportamento do SQL Server para o ficheiro I/O com estas alterações:
-
Os ficheiros de base de dados (.mdf) e de registo de transações (.ldf) não utilizam a escrita e a inscrição alternativa por padrão na CU6, uma vez que utilizam o comportamento de descarga forçada. O TF 3979 desativa o uso do comportamento de descarga forçada para ficheiros de registo de bases de dados e registos de transações e utilizará a lógica de escrita e de escrita alternativa.
-
Outros ficheiros que são abertos utilizando FILE_FLAG_WRITE_THROUGH no SQL Server, tais como instantâneos de base de dados, instantâneos internos para verificações de consistência da base de dados (CHECKDB), ficheiros de rastreio de perfis e ficheiros de rastreio de eventos alargados, utilizarão os ficheiros de escrita e de substituição através de otimizações.
Resolução
Esta atualização está incluída na seguinte atualização cumulativa para o SQL Server:
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Confira as últimas atualizações cumulativas do SQL Server:
Referências
Conheça a terminologiaque a Microsoft utiliza para descrever atualizações de software.