Atualização cumulativa 20 para SQL Server 2017

Aplica-se a: SQL Server 2017 on Windows (all editions)SQL Server 2017 on Linux (all editions)

Este artigo descreve o pacote de atualizações cumulativas 20 (CU20) para SQL Server 2017. Esta atualização contém correções que foram lançadas após a versão inicial do sql Server 2017 e atualiza os componentes do SQL Server e do Analysis Services para as seguintes versões:

Componente Versão do produto Versão do arquivo
SQL Server 14.0.3294.2 2017.140.3294.2
Analysis Services 14.0.249.36 2017.140.249.36

 

Avisos importantes

Este artigo também fornece informações importantes sobre as seguintes situações:

  • Pacemaker:Uma alteração de comportamento é feita em distribuições que usam a versão mais recente disponível do pacemaker. Os métodos de mitigação são fornecidos.
  • Repositório de consultas: Você deve executar esse script se usar o repositório de consultas e tiver instalado anteriormente a atualização cumulativa 2 (Cu2) do SQL Server 2017.
  • O Analysis Services RECOR versão de compilação: A partir do SQL Server 2017, o número de versão de compilação do Analysis Services e o número de versão de compilação do mecanismo de banco de dados do SQL Server não correspondem. Para obter mais informações, consulte verificar a versão de compilação da atualização cumulativa do Analysis Services.  

Atualizações cumulativas

Atualizações cumulativas (CUs) agora estão disponíveis no Centro de Download da Microsoft.Somente a CU mais recente lançada para o SQL Server 2017 está disponível no Centro de Download.

A RECOR de que os pacotes para Linux estão disponíveis em https://packages.Microsoft.com/.

Observações

  • Cada nova CU contém todas as correções que foram incluídas com a CU anterior para a versão instalada do SQL Server.
  • As CUs do SQL Server são certificadas nos mesmos níveis que os Pacotes de Serviço e devem ser instaladas com o mesmo nível de confiança.
  • A Microsoft recomenda a instalação proativa contínua do CUs à medida que se torna disponível de acordo com estas diretrizes:  
    • Dados históricos mostram que um número significativo de casos de suporte envolvem um problema que já foi abordado em uma CU lançada.
    • CUs podem conter valor agregado além de hotfixes. Isso inclui atualizações na capacidade de suporte, gerenciamento e confiabilidade.
  • É recomendável que você teste as CUs antes de implantá-las em ambientes de produção.

Como obter este pacote de atualizações cumulativas para Windows


A atualização a seguir está disponível no centro de download da Microsoft:

Se a página de download não aparecer, contate o Serviço de Suporte e Atendimento ao Cliente Microsoft para obter o pacote de atualizações cumulativas.Observações

  • Após o lançamento de atualizações cumulativas futuras do SQL Server 2017, isso e todos os CUs anteriores podem ser baixados do catálogo do Microsoft Update. No entanto, recomendamos que você sempre instale a atualização cumulativa mais recente que está disponível.

Como obter este pacote de atualização cumulativa para Linux


Para atualizar o Linux para a versão mais recente da RECOR, primeiro você deve ter o repositório de atualizações cumulativas configurado. Em seguida, atualize seus pacotes do SQL Server usando o comando de atualização específico da plataforma apropriado.

Para obter instruções de instalação e links diretos para os downloads do pacote da RECOR, consulte as notas de versão.

Hotfixes adicionais incluídos neste pacote de atualização cumulativa


Número do bug VSTS Número do artigo KB Descrição Área fixa Plataforma
13091545 4506023 CORRECção: a Datum geocêntrica da Austrália 2020 é adicionada ao SQL Server 2014, 2016 e 2017 Mecanismo SQL Todos
13401115 4536005 Melhoria: corrigir a contabilidade da página de memória incorreta que causa erros de falta de memória no SQL Server 2017 e 2019 Mecanismo SQL Todos
13359750 4541132 Aperfeiçoamento: a política de tamanho e retenção é aumentada em system_health de rastreamento XEvent padrão no SQL Server 2016, 2017 e 2019 Mecanismo SQL Todos
13361135 4548523 CORREÇÃO: a criação de banco de dados para o armazenamento de blob do Azure do SQL Server 2017 ou 2019 no Linux pode falhar com o erro Mecanismo SQL Todos
13434971 4551720 CORREÇÃO: ocorre uma exceção de violação de acesso ao promover travas de páginas de banco de dados usadas com frequência no SQL Server 2017 Mecanismo SQL Todos
13431232   Melhora a velocidade da geração de despejo de memória (despejos filtrados) usando o mecanismo de bitmap de exclusão de página. O PageExclusionBitmap está ativado por padrão no SQL Server 2017. Mecanismo SQL Todos
13421859 4541096 CORRECção: a violação de acesso ocorre quando você executa a consulta em colunas calculadas no SQL Server Desempenho do SQL Todos
12795916 4551220 CORRECção: o erro de asserção ocorre quando você executa uma instrução de índice retomável no SQL Server 2017 Desempenho do SQL Todos
13243017 4532432 A ferramenta MSSQL-conf falha se o IPV6 estiver desabilitado no sistema Linux Mecanismo SQL Linux
13398892   O nome session_nt_username do evento estendido é truncado e reportado incorretamente no SQL Server 2017. Mecanismo SQL Linux
13367989 4539023 CORREÇÃO: a tarefa de execução de DDL do Analysis Services pode falhar ao representar o contexto do usuário para a instância do serviços de análise remota no SQL Server 2017 Analysis Services Windows
13421896 4540385 CORRECção: a consulta DAX faz com que o servidor tenha exceções no heap TBB e falha na heap do Windows no SQL Server 2016 e 2017 Analysis Services Windows
13378811   $System de consulta DMV. DISCOVER_STORAGE_TABLES pode executar lentamente em um modelo de memória que contém muitas tabelas e contagens de linhas da tabela grandes no SQL Server 2017. Analysis Services Windows

 13421879

4541300 CORREÇÃO: corrigir valores incorretos no XEvents de propagação automática no SQL Server Alta disponibilidade Windows
13421857 4541303 CORRECção: o erro do Agendador sem concessão pode ocorrer com o grupo Always Availability no Microsoft SQL Server Alta disponibilidade Windows
13421855 4541309 CORRECção: o bloco de log ausente pode ocorrer quando você usa o grupo AlwaysOn no SQL Server Alta disponibilidade Windows

 13047035

4551221 CORRECção: o erro ocorre quando você tenta criar um backup diferencial na réplica secundária no SQL Server 2017 Alta disponibilidade Windows
13431247   A violação de acesso ocorre quando você habilita a recuperação paralela ao ativar o sinalizador de rastreamento 3459 durante o tempo de execução e há uma tabela na memória no banco de dados. Alta disponibilidade Windows
13421864 4541724 CORREÇÃO: o Agendador sem concessão intermitente ocorre quando o banco de dados otimizado para memória é executado em atividades pesadas de e/s no SQL Server OLTP in-memory Windows
13368462 4541762 CORREÇÃO: o conjunto de coleta atividade do servidor de data warehouse de gerenciamento pode falhar no SQL Server Ferramentas de gerenciamento Windows
13421888 4539815 CORRECção: a violação de acesso ocorre quando a limpeza automática do rastreamento tenta limpar tabelas do lado no SQL Server Mecanismo SQL Windows
13421885 4540107 CORRECfile: o sistema ou a tarefa em segundo plano pode falhar quando o número de sessões atinge o limite máximo no SQL Server 2016, 2017 e 2019 Mecanismo SQL Windows
13421915 4540342 CORRECção: a condição do Agendador sem concessão ocorre com CONNECTION_MANAGER SpinLock no SQL Server Mecanismo SQL Windows
13421901 4540903 CORRECção: o despejo do Agendador sem concessão ocorre no InterlockedCompareExchangePointer e no SOS_RWLock no SQL Server 2016, 2017 e 2019 Mecanismo SQL Windows

 13421875

4541435 CORRECção: o erro ocorre quando você renomeia uma coluna na tabela atual temporal no SQL Server Mecanismo SQL Windows
13421862 4541520 CORREÇÃO: ocorre uma asserção ao processar uma mensagem XML malformada enviada como mensagem na fila do Service Broker no SQL Server Mecanismo SQL Windows

 13421881

4541770 CORREÇÃO: a falha de asserção ocorre quando o buffer de log persistente é usado no SQL Server Mecanismo SQL Windows
13388961 4552478 CORREÇÃO: o agente de distribuição "mensagem de log" valores com parâmetros para o comando acima "está ausente após a atualização do SQL Server 2017 Mecanismo SQL Windows
13378402   O erro de exceção de ponto flutuante ocorre durante a recriação do índice Columnstore clusterizado no SQL Server 2017. Mecanismo SQL Windows
13421877   Despejo do Agendador sem concessão no InterlockedCompareExchangePointer e no SOS_RWLock no editor do SQL Server 2017. Mecanismo SQL Windows
13421868 4539880 CORREÇÃO: violação de acesso ocorre com o wait_info XEvent no SQL Server ocupado Desempenho do SQL Windows
13421906 4540346 CORREÇÃO: a instrução MERGE falha com Assert "tentativa de acessar o identificador de blob expirado (1)" no SQL Server 2016, 2017 e 2019 Desempenho do SQL Windows
13421851 4543027 CORREÇÃO: as estatísticas filtradas de amostra paralelas podem causar dimensionamento incorreto de histograma no SQL Server Desempenho do SQL Windows
13375414   Quando você executa uma consulta em uma tabela com índice filtrado, a consulta pode falhar e o despejo de pilha pode ser gerado. Desempenho do SQL Windows
13380148   O despejo de memória pode ser gerado para a condição de Agendador sem rendimento (mensagem 17883) quando o plano de consulta é forçado (usando QDS, guia de plano ou usar dica de plano) para consultas que contêm muitas junções. O recurso de junção adaptável habilitada aumenta o risco de ver esse problema para consultas complexas. Desempenho do SQL Windows
13421910 4540901 CORRECção: o SQL Server pode ser encerrado devido a conflitos de bloqueio durante o processamento da mensagem de erro no SQL Server 2016, 2017 e 2019 Segurança SQL Windows

Observações para esta atualização


Problema conhecido

Em determinadas circunstâncias, há um problema de desinstalação conhecido com este SQL Server 2017 CU20.  Se você desinstalar essa RECOR, o SQL Server não ficar online e você encontrar a seguinte mensagem de erro de log de erro do SQL Server:

Mitigação é habilitar o sinalizador de rastreamento-T902, e o SQL Server será colocado online e você terminará. Não é necessário desinstalá-lo novamente. Para atualizar para a nova RECOR, é preciso remover esse sinalizador primeiro.

O SQL Server 2017 CU21 ou qualquer versão mais recente do RECOR contém a correção.

Implementação em ambientes híbridos

Ao implantar uma atualização em um ambiente híbrido (como AlwaysOn, replicação, cluster e espelhamento), recomendamos que você consulte os seguintes artigos antes de implantar a atualização: 

Mais RECOR informações do pacote


Pré-requisitos

Para aplicar esse pacote de atualizações cumulativas, você deve estar executando o SQL Server 2017.

Informações sobre reinicialização

Talvez seja necessário reiniciar o computador após aplicar esse pacote de atualizações cumulativas.

Informações do Registro

Para usar um dos hotfixes no pacote, não é necessário fazer nenhuma alteração no Registro.

Aviso de pacemaker


IMPORTANTE

Todas as distribuições (incluindo RHEL 7,3 e 7,4) que usam o pacote pacemaker disponível mais recente 1.1.18 -11. EL7 introduzem uma alteração de comportamento para a configuração de cluster Start-Failure-is-fatal cluster quando o valor é false. Essa alteração afeta o fluxo de trabalho de failover. Se uma réplica primária sofrer uma interrupção, espera-se que o cluster desfailover para uma das réplicas secundárias disponíveis. Em vez disso, os usuários notarão que o cluster continua tentando iniciar a réplica primária com falha. Se esse principal nunca ficar online (devido a uma falha permanente), o cluster nunca falhará em outra réplica secundária disponível.

Esse problema afeta todas as versões do SQL Server, independentemente da versão cumulative upara atualizar em que elas estão.

Para reduzir o problema, use um dos seguintes métodos.

Método 1

Execute as seguintes etapas:

  1. Remova o início-falha-é a substituição fatal do cluster existente. 
       # RHEL, Ubuntu         pcs property unset start-failure-is-fatal         # or         pcs property set start-failure-is-fatal=true   # SLES         crm configure property start-failure-is-fatal=true
  2. Diminua o valor do intervalo de verificação de cluster
       # RHEL, Ubuntu         pcs property set cluster-recheck-interval=<Xmin>   # SLES         crm configure property cluster-recheck-interval=<Xmin>
  3. Adicione a propriedade meta de tempo limite de falha a cada recurso AG. 
       # RHEL, Ubuntu         pcs resource update ag1 meta failure-timeout=60s   # SLES         crm configure edit ag1      # In the text editor, add `meta failure-timeout=60s` after any `param`s and before any `op`s
     

    Observação Nesse código, substitua o valor de <xmin> conforme apropriado. Se uma réplica ficar inativa, o cluster tentará reiniciar a réplica em um intervalo que seja associado ao valor de tempo limite de falha e ao valor do intervalo de verificação do cluster . Por exemplo, se o tempo limite de falha for definido como 60 segundos e o intervalo de verificação de cluster for definido como 120 segundos, a reinicialização será tentada em um intervalo maior do que 60 segundos, mas menor que 120 segundos. Recomendamos que você defina a falha-tempo limite para 60s e o intervalo de verificação de cluster para um valor maior do que 60 segundos. Não é recomendável definir o intervalo de verificação de clusters para um valor pequeno. Para obter mais informações, consulte a documentação do pacemaker ou consulte o provedor do sistema.

Método 2

Reverta para a versão pacemaker do 1.1.16.

    Aviso do repositório de consultas


    IMPORTANTE

    Você deve executar esse script se usar o repositório de consultas e estiver atualizando a atualização cumulativa 2 (Cu2) do sql Server 2017 diretamente para sql Server 2017 cumulativa Update 3 (Cu3) ou qualquer atualização cumulativa mais recente. A execução desse script não será necessária se você tiver instalado anteriormente a atualização cumulativa 3 (Cu3) do SQL Server 2017 ou qualquer atualização cumulativa mais recente do SQL Server 2017.

     

    SET NOCOUNT ON;DROP TABLE IF EXISTS #tmpUserDBs;SELECT [database_id], 0 AS [IsDone]INTO #tmpUserDBsFROM master.sys.databasesWHERE [database_id] > 4 AND [state] = 0 -- must be ONLINE AND is_read_only = 0 -- cannot be READ_ONLY AND [database_id] NOT IN (SELECT dr.database_id FROM sys.dm_hadr_database_replica_states dr -- Except all local Always On secondary replicas  INNER JOIN sys.dm_hadr_availability_replica_states rs ON dr.group_id = rs.group_id  INNER JOIN sys.databases d ON dr.database_id = d.database_id  WHERE rs.role = 2 -- Is Secondary   AND dr.is_local = 1   AND rs.is_local = 1)DECLARE @userDB sysname;WHILE (SELECT COUNT([database_id]) FROM #tmpUserDBs WHERE [IsDone] = 0) > 0BEGIN SELECT TOP 1 @userDB = DB_NAME([database_id]) FROM #tmpUserDBs WHERE [IsDone] = 0 -- PRINT 'Working on database ' + @userDB EXEC ('USE [' + @userDB + '];DECLARE @clearPlan bigint, @clearQry bigint;IF EXISTS (SELECT [actual_state] FROM sys.database_query_store_options WHERE [actual_state] IN (1,2))BEGIN IF EXISTS (SELECT plan_id FROM sys.query_store_plan WHERE engine_version = ''14.0.3008.27'') BEGIN  DROP TABLE IF EXISTS #tmpclearPlans;  SELECT plan_id, query_id, 0 AS [IsDone]  INTO #tmpclearPlans  FROM sys.query_store_plan WHERE engine_version = ''14.0.3008.27''  WHILE (SELECT COUNT(plan_id) FROM #tmpclearPlans WHERE [IsDone] = 0) > 0  BEGIN   SELECT TOP 1 @clearPlan = plan_id, @clearQry = query_id FROM #tmpclearPlans WHERE [IsDone] = 0   EXECUTE sys.sp_query_store_unforce_plan @clearQry, @clearPlan;   EXECUTE sys.sp_query_store_remove_plan @clearPlan;   UPDATE #tmpclearPlans   SET [IsDone] = 1   WHERE plan_id = @clearPlan AND query_id = @clearQry  END;  PRINT ''- Cleared possibly affected plans in database [' + @userDB + ']'' END ELSE BEGIN  PRINT ''- No affected plans in database [' + @userDB + ']'' ENDENDELSEBEGIN PRINT ''- Query Store not enabled in database [' + @userDB + ']''END')  UPDATE #tmpUserDBs  SET [IsDone] = 1  WHERE [database_id] = DB_ID(@userDB)END