Atualização cumulativa 9 para o 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ção cumulativa 9 (CU9) para 2017 do SQL Server. Esta atualização contém correções que foram lançadas após o lançamento inicial do SQL Server 2017 e atualiza o SQL Server e componentes para as seguintes versões do Analysis services:

Componente Versão da compilação Versão do arquivo
SQL Server 14.0.3030.27 2017.140.3030.27
Analysis Services 14.0.223.1 2017.140.223.1

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

  • Uma alteração de comportamento em distribuições que use a versão mais recente do Pacemaker.
  • Um script necessário se você usar o Armazenamento de consulta e você anteriormente instalou o SQL Server 2017 cumulativa atualização 2 (CU2).
  • 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 coincidem. Verifique se o Analysis Services cumulativa atualizar a versão de compilação, consulte para obter mais informações.

Atualização cumulativa

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.

CU 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 contínua e proativa de CUs conforme eles se tornam disponíveis 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 esse pacote de atualização cumulativa para o Windows


A seguinte atualização está disponível no Microsoft Download Center:

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ção: Depois de futuras atualizações cumulativas lançadas para SQL Server 2017, este e todos os CUs anteriores podem ser localizadas e baixadas do Microsoft Update Catalog. No entanto, recomendamos que você sempre instale a atualização cumulativa mais recente disponível.

Como obter esse pacote de atualizações cumulativas para Linux


Para atualizar o Linux para CU mais recente, você deve primeiramente ter a atualização cumulativa repositório configurado. Em seguida, atualize seus pacotes do SQL Server usando o comando de atualização específicos da plataforma apropriada.

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

Correcções adicionais incluídos neste pacote de atualizações cumulativas


Número do bug VSTS Número do artigo KB Descrição Área fixa Plataforma
12144190 4340069 CORREÇÃO: SQL Server 2017 no Linux é desligado inesperadamente durante a recuperação de um banco de dados OLTP de memória OLTP in-memory Linux
12041154 4340134 CORREÇÃO: Erro quando uma função é definida com uma coluna restrita é usada para executar uma consulta drill-through no SSAS Analysis Services Windows
12128861 4340747 CORRIGIR: SQLDUMPER. Despejos EXE iniciada podem levar muito tempo para concluir o processo de geração de despejo para 2017 do SQL Server no Linux Mecanismo SQL Linux
12168709 4010460 CORREÇÃO: Um erro do.NET Framework ocorreu quando você atualiza a tabela de referência de uma transformação Fuzzy Lookup no SSIS Integration Services Windows
12138685 4339613 CORREÇÃO: "Unclosed aspas após a sequência de caracteres" erro ocorre no explorer MDS quando você tentar adicionar um novo membro para uma entidade no SQL Server Data Quality Services (DQS) Windows
12107546 4338890 CORREÇÃO: Uma instância do SQL Server pode parecer não responder e em seguida, pode ocorrer um erro de "não respondendo no Agendador" no SQL Server 2016 Mecanismo SQL Windows
11922902 4316858 CORREÇÃO: "índice corrompido" mensagem e servidor desconexão quando uma consulta de estatísticas de atualização usa hash agregação no SQL Server Desempenho do SQL Todas
12149855 4341219 CORREÇÃO: Um cenário de cérebro divisão ocorre após um failover ao usar grupos de disponibilidade do AlwaysOn com a tecnologia de cluster externo no SQL Server 2017 Alta disponibilidade Todos
12111717 4340837 CORREÇÃO: Erro 3906 quando for aplicado um hotfix em um SQL Server que possui um banco de dados em um banco de dados de inscrição de recepção de instantâneo Mecanismo SQL Windows
11983925 4133164 CORREÇÃO: Erro quando um trabalho do SQL Server Agent executa um comando PowerShell enumere permissões do banco de dados Ferramentas de gerenciamento Windows
12121216 4339664 CORREÇÃO: O erro de exceção ocorre quando você tenta atualizar dados de uma tabela dinâmica no Excel no SSAS 2017 Analysis Services Windows
12123248 4340742 CORREÇÃO: Acesso ao SSAS usando HTTP falha no SQL Server Analysis Services Windows
12162067 4341264 Aperfeiçoamento: Permitir trabalhos do SQL Server Agent iniciar sem esperar que todos os bancos de dados obter recuperado no SQL Server 2017 no Linux Mecanismo SQL Linux
12186129 4101502 CORREÇÃO: Backup de banco de dados TDE habilitada com compactação causa corrupção de banco de dados no SQL Server Mecanismo SQL Todos
12129434 4134601 CORREÇÃO: "não foi possível carregar arquivo ou assembly ' Microsoft.AnalysisServices.AdomdClientUI" erro quando uma operação de "Processo total" é executada no SQL Server Analysis Services Windows
12162425 4341221 CORREÇÃO: Backup VSS Falha na réplica secundária de grupos básicos de disponibilidade no SQL Server 2016 e 2017 Mecanismo SQL Windows
12108225 4339858 CORREÇÃO: Redo paralelo não funciona após você desativar 3459 de sinalizador de rastreamento em uma instância do SQL Server Alta disponibilidade Todos
12061383 4341253 CORREÇÃO: Sys.dm_db_log_info e sys.dm_db_log_stats DMVs podem retornar valores incorretos para o último banco de dados da instância do SQL Server 2016 Mecanismo SQL Windows

Observações para esta atualização


Implementação em ambientes híbridos

Quando você 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 mais recente disponível Pacemaker pacote 1.1.18-11.el7 introduzem uma alteração de comportamento para o Iniciar falha-for-fatal configuração de cluster quando seu valor for false. Essa alteração afeta o fluxo de trabalho de failover. Se uma réplica primária sofrer uma interrupção, o cluster deve failover para uma das réplicas de secundário disponíveis. Em vez disso, os usuários notarão o cluster continua tentando iniciar a réplica primária com falha. Se esse principal nunca for colocado online (devido a uma interrupção permanente), o cluster nunca failover para outra réplica secundária disponível.

Esse problema afeta todas as versões do SQL Server, independentemente da versão de atualização cumulativa que eles estão em.

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

Método 1

Execute as seguintes etapas:

  1. Remover o Iniciar falha-for-fatal substituir 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 de intervalo de nova 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 da meta de tempo limite de falha para 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 valores < Xmin > conforme apropriado. Se uma réplica falhar, o cluster tentará reiniciar a réplica em um intervalo que é vinculado, o valor de tempo limite de falha e o valor do intervalo de nova verificação de cluster . Por exemplo, se o tempo limite de falha é definido como 60 segundos e intervalo de nova verificação de cluster é definida como 120 segundos, a reinicialização é tentada em um intervalo maior que 60 segundos, mas menos de 120 segundos. Recomendamos que você defina o tempo limite de falha para 60s e intervalo de nova verificação de cluster para um valor maior que 60 segundos. Não é recomendável definir o intervalo de nova verificação de cluster para um valor pequeno. Para obter mais informações, consulte a documentação do Pacemaker ou consulte o fornecedor do sistema.

Método 2

Reverta para versão 1.1.16 Pacemaker.

Aviso de armazenamento de consulta


IMPORTANTE

Se você usar o recurso de Armazenamento de consulta e você já tiver instalado atualização cumulativa 2 (CU2) (14.0.3008.27), os seguintes requisitos se aplicam a você:

Após instalar atualização cumulativa 3 (CU3) (14.0.3015.40) ou uma UC posterior, imediatamente você deve executar o seguinte script para excluir todos os planos que foram coletados pelo armazenamento de consulta enquanto CU2 foi instalado:

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