Atualização cumulativa 19 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 19 (CU19) 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.3281.6 2017.140.3281.6
Analysis Services 14.0.249.28 2017.140.249.28

 

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
13200685 4523102 CORRECção: o banco de dados do SQL Server 2016 e do 2017 permanece no estado de I/O congelado indefinidamente ao fazer backup pelo VSS Mecanismo SQL Windows
13323998 4524542 CORRECção: falha na instalação do patch do MDS e/ou LocalDB se você corrigir o SQL Server 2016 ou 2017 com um próximo RECOR Configurar & instalar Windows
13323994 4527355 CORREÇÃO: o trabalho sincronizado poderá falhar quando os servidores de destino começarem a sincronizar o banco de dados no SQL Server 2016 e no 2017 Analysis Services Windows
13324008 4527716 CORREÇÃO: você pode encontrar uma condição de Agendador sem concessão ao executar uma consulta com o operador paralelo de classificação em modo batch no SQL Server 2016 e 2017 Desempenho do SQL Windows
13324014 4528066 CORREÇÃO: não é possível restaurar bancos de dados do SQL Server 2012 no SQL Server 2016 e no 2017 devido ao NCCI Mecanismo SQL Windows
13324012 4528067 CORREÇÃO: o erro 8959 pode ocorrer na página IAM quando você consulta sys. dm_db_index_physical_stats na tabela columnstore particionada após a opção de partição no SQL Server Mecanismo SQL Windows
13323986 4528250 CORRECção: o erro de asserção ocorre quando você usa IDENT_CURRENT em um modo de exibição com colunas de identidade no SQL Server 2016 e 2017 OLTP in-memory Windows
13324006 4529876 CORRECção: pode ser que a memória não seja liberada quando você processar partições com dados no SQL Server 2016 e 2017 Analysis Services Windows
13323996 4530212 CORRECção: a violação de acesso ocorre quando você usa sys. dm_os_memory_objects no SQL Server 2016 e 2017 Desempenho do SQL Linux
13324000 4530251 CORRECção: o erro 8601 ocorre quando você executa uma consulta com função de partição no SQL Server Desempenho do SQL Windows
13324018 4530259 CORREÇÃO: os scripts gerados pelo SSMS coletam diferentes tipos de espera após a instalação do SQL Server 2016 ou 2017 Mecanismo SQL Windows
13324002 4530443 CORRECção: o problema do Agendador sem concessão ocorre no SQL Server 2016 e no 2017 quando você executa uma compilação online para um índice que não está alinhado à partição Desempenho do SQL Windows
13324020 4530475 CORREÇÃO: a função ISERROR falha ao detectar um erro na função XIRR do Excel quando a consulta MDX é executada do SSIS 2016 e do 2017 Analysis Services Windows
13323988 4531010 CORREÇÃO: criar índice com o novo CE lê a tabela de partição e resulta em contagem de linhas enormes superior à contagem total de linhas da tabela no SQL Server 2016 e 2017 Desempenho do SQL Windows
13288075 4531386 CORREÇÃO: a asserção ocorre quando sys. sp_cdc_enable_tableis usado para habilitar o CDC na tabela de conjunto de colunas no SQL Server 2017 Mecanismo SQL Windows
13257848 4531736 CORREÇÃO: o SQLDiag não gera a saída devido à falta de um procedimento armazenado tempdb. dbo. sp_sqldiag14 no SQL Server 2017 Ferramentas de gerenciamento Windows
13320404 4534893 CORREÇÃO: a depuração de um pacote SSIS no SSDT 2017 sempre inicia DtsDebugHost no 32 bit em vez de 64 bits Integration Services Windows
13336052 4537350 CORRECção: a violação de acesso ocorre quando você executa o DBCC CHECKtable em uma tabela com índice Columnstore clusterizado no SQL Server 2017 Mecanismo SQL Windows
13189393 4537438 CORRECção: a violação de acesso ocorre quando você entra duas colunas no SQL Server 2017 em que junções adaptáveis são permitidas Desempenho do SQL Todos
13333767 4537649 CORRECção: o deadlock pode ocorrer quando você cria um banco de dados usando agrupamento não padrão no SQL Server 2017 Mecanismo SQL Windows
13325751 4538174 CORRECção: o erro ocorre e AG estará no estado de não sincronização quando ocorrer failover na AG da AG do grupo de disponibilidade distribuída no SQL Server 2017 no Linux Alta disponibilidade Linux
13264329 4538205 Melhoria: baixar novos arquivos CAB que têm correções para recursos de tempo de execução do R/Python Mecanismo SQL Windows
13298386 4538268 CORREÇÃO: o erro "identificador de BLOB expirado" ocorre quando a transação entre os bancos de dados envolve a comunicação com o MSDTC no SQL Server 2017 Desempenho do SQL Todos
13315613 4538275 CORRECção: a inicialização do banco de dados pode falhar usando a propagação automática no SQL Server 2017 Alta disponibilidade Linux
13356506 4538356 CORREÇÃO: a atualização da réplica secundária poderá falhar se o grupo de disponibilidade estiver configurado no Linux no SQL Server 2017 Alta disponibilidade Linux
13312017 4538365 CORREÇÃO: a limpeza de controle de alterações não funciona quando a limpeza inválida e a versão de limpeza otimizada são negativas no SQL Server 2017 Mecanismo SQL Windows
13293961 4538377 CORRECção: uma condição do Agendador sem concessão ocorre quando você executa a consulta do modo de lotes com várias junções no SQL Server 2017 Mecanismo SQL Windows
13343024 4538378 CORRECção: o valor "is_media_read_only" permanecerá inalterado para um arquivo de dados do SQL Server, mesmo que a mídia não seja mais somente leitura Mecanismo SQL Windows
13356804 4538447 CORREÇÃO: o cleanup_server_retention_window não funciona corretamente quando você tenta limpar logs de execução em SSISDB Integration Services Windows
13135043 4538497 CORRECção: desempenho de consulta lento ao usar predicado de consulta com MAIÚSCULAs, MINÚSCULAs ou RTRIM com CE padrão no SQL Server 2017 Desempenho do SQL Windows
13358148 4538849 CORREÇÃO: a confirmação da transação pode causar uma latência extra em cargas de trabalho baixas no SQL Server 2017 Alta disponibilidade Windows
13357902 4540449 CORRECção: o erro ocorre no sp_xml_preparedocument em que o MSXMLSQL tenta acessar o espaço de endereço virtual além do limite no SQL Server 2017 Mecanismo SQL Todos

Observações para esta atualizaçã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: 

Informações sobre o pacote de atualizações cumulativas


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