Atualização cumulativa 18 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 18 (CU18) 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.3257.3 2017.140.3257.3
Analysis Services 14.0.249.21 2017.140.249.21

 

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
12519856 4470057 CORRECção: o erro 41168 ocorre quando você tenta alterar DAG SEEDING_MODE no SQL Server 2016 e no 2017 Alta disponibilidade Windows
13087323 4506912 CORREÇÃO: as inserções simultâneas em um CCI podem causar deadlock na pressão de memória no SQL Server 2016 e 2017 Mecanismo SQL Windows
13198909 4515772 CORREÇÃO: o log de transação não está truncado em um grupo de disponibilidade de nó único no SQL Server Alta disponibilidade Windows
13198915 4517771 CORREÇÃO: sessões CLR órfãos causam bloqueio no SQL Server Mecanismo SQL Windows
13198907 4519679 CORRECção: os diferentes usuários obtêm a mesma lista de modelos com permissões diferentes no SQL Server 2016 e no 2017 Data Quality Services (DQS) Windows
13198903 4520739 CORRECção: o erro de violação de acesso ocorre quando você tenta inserir resultados do procedimento armazenado em uma tabela com o mascaramento de dados dinâmicos no SQL Server 2016 e 2017 Segurança SQL Windows
13200683 4521739 CORRECção: o erro ocorre quando o processo de captura CDC tenta inserir uma chave duplicada na tabela "CDC. lsn_time_mapping" no SQL Server 2016 e 2017 Mecanismo SQL Windows
13197357 4524191 CORREÇÃO: o menu e a barra de rolagem estão ausentes na seção "alterações" quando um grande número de conjuntos de alterações são adicionados ao suplemento do Excel para MDS no SQL Server 2017 Data Quality Services (DQS) Windows
13211437 4525483 CORRECção: o erro de exceção 3628 pode ocorrer quando você executa o procedimento de armazenamento no SQL Server 2016 e no 2017 Mecanismo SQL Windows
13218545 4526315 CORRECção: o banco de dados não pode recuperar e relata o erro 5243 no SQL Server 2016 e no 2017 Mecanismo SQL Windows
13193748 4526524 CORRECção: o patch do SQL não atualiza arquivos de BD locais corretamente quando instalado usando SqlLocalDb. msi Configurar & instalar Windows
13159453 4527229 CORREÇÃO: as estatísticas de atualização levam muito tempo para gerar um plano maintanence para bancos de dados grandes no SQL Server 2016 e 2017 Ferramentas de gerenciamento Windows
13212803 4527510 CORREÇÃO: a hierarquia do usuário não está oculta quando você executa o DISCOVER_CSDL_METADATA no SQL Server 2017 Analysis Services Windows
13197185 4527538 CORREÇÃO: erro "ocorreu uma falha na verificação da declaração do sistema" quando uma chamada de procedimento é feita do CLR com um argumento de objeto grande OUTPUT Desempenho do SQL Windows
13234374 4527842 CORRECção: o SQL Server 2017 gera um despejo quando você transfere a propriedade de uma autotabulação de texto completo para outro usuário se o proprietário anterior estiver solto Mecanismo SQL Todos
13210153 4527916 CORREÇÃO: você pode receber object_id incorretas depois de alternar uma partição no SQL Server 2017 Mecanismo SQL Windows
13207342 4528130 CORRECção: a violação de acesso ocorre quando você restaura o banco de dados otimizado na memória no SQL Server 2016 e 2017 OLTP in-memory Windows
13179510 4529833 CORREÇÃO: sp_describe_parameter_encryption retornará resultados diferentes se você alternar entre posições de parâmetro no SQL Server 2017 Segurança SQL Windows
13203071 4529927 CORREÇÃO: o método .NET Framework DbDataAdapter. FillSchema retorna NULL no banco de dados com o nível de compatibilidade 140 no SQL Server 2017 Mecanismo SQL Windows
13201028 4529942 CORREÇÃO: a restauração falha quando você tenta restaurar backups do TDE compactados antes do SQL Server 2016 SP2 CU4 no SQL Server 2016 SP2 CU8 Mecanismo SQL Windows
13165622 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
13198726 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
13261031 4530500 CORREÇÃO: o despejo de declaração ocorre quando o sp_cdc_disable_db é executado para desabilitar o CDC ou quando a transação distribuída é comprometida após o salvamento de reversão no SQL Server Mecanismo SQL Windows
13224871 4530720 CORREÇÃO: o erro "o local do arquivo não pode ser aberto" ocorre quando você tenta abrir um diretório Filetable no SQL Server Mecanismo SQL Windows
13262554 4530955 CORRECção: o erro 18456 ocorre quando você executa consultas de DMV na instância do SQL Server 2017 após a recriação de bancos de dados do sistema Verificar com PG Todos
13212298 4531009 CORRECção: pode ocorrer uma violação de acesso quando o otimizador usa uma junção adaptável no SQL Server 2017 Desempenho do SQL Windows
13284243 4532171 CORRECção: a criptografia de chave simétrica demora mais tempo no SQL Server 2017 do que no SQL Server 2012 Segurança SQL Windows
12110364 4532751 Melhoria: a replicação de instantâneos e a replicação de transações são habilitadas no Linux no SQL Server 2017 Mecanismo SQL Linux
13354946 4548001 CORRECção: o erro de conexão ocorre quando você tenta conectar o SQL Server 2017 ao Linux usando o OpenSSL 1,1 Mecanismo SQL Linux

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