1. Introdução

Para corrigir problemas no software SQL Server a Microsoft libera atualizações de manutenção contendo correções para falhas de segurança ou funcionamento incorreto do software. Às vezes essas atualizações são de melhorias no funcionamento do software. Entretanto, a forma como a Microsoft disponibiliza as correções pode gerar dúvidas, principalmente pela sopa de letras envolvidas, como QFE, OD, COD, GDR, SP, CU etc.

Cada correção individual é um hotfix, contendo respectivo artigo no Knowledge Base. Geralmente o hotfix é criado para atender clientes que contactam o suporte Microsoft, reportando problema(s) no funcionamento do SQL Server. Se é detectado que o problema é de ampla ocorrência, é gerado então o General Distribution Release (GDR), que é disponibilizado publicamente para todos os clientes. O GDR pode conter um ou mais hotfixes.

Como os hotfixes são criados para solucionar rapidamente problemas específicos encontrados por clientes, eles podem ser gerados com bastante frequência. Por parte do DBA, acompanhar a rapidez com que os hotfixes são gerados pode tornar-se impraticável. Para facilitar a tarefa do DBA de manter o software SQL Server atualizado, periodicamente os hotfixes são agrupados em cumulatives updates (CU) e liberados publicamente para os clientes. Como consta no nome, são atualizações cumulativas (ou acumuladas); isto é, contém quase sempre todos os hotfixes desde determinada versão/nível de atualização do SQL Server.

Finalizando, no ciclo de vida de cada versão do SQL Server periodicamente são liberados os services packs (SP). Além de todos os hotfixes criados desde o lançamento da versão do SQL Server, cada service pack pode conter novos recursos.

2. Modelos de manutenção

2.1 Incremental Servicing Model (ISM)

O gráfico abaixo sintetiza o ciclo de vida de cada versão do SQL Server.

Na régua com fundo na cor amarela, temos:

  • inicia com a compilação final da versão, gerando o RTM. No gráfico acima, trata-se da versão 2.0 de Product, criada em 1 de janeiro (1/1);
  • a cada 60 dias são lançadas atualizações cumulativas. No gráfico, elas estão indicadas pela sigla CU (cumulative update) seguida de número sequencial. O primeiro pacote é gerado em 1º de março (3/1), e assim em diante;
  • após um ano é feita nova compilação da versão, com a incorporação de todas as atualizações geradas desde a compilação RTM. temos então versão/nível de atualização V2.0 SP1.

As duas barras na cor laranja indicam a eventualidade de geração de pacotes GDR ao longo da vida de cada versão/nível de atualização.

A respeito de nível de atualização, informa qual é a última correção aplicada a cada versão. Por exemplo:

  • V2.0 RTM (ou simplesmente V2.0) significa que o software está na versão 2.0, sem qualquer atualização;
  • V2.0 RTM CU-3 (ou V2.0 CU-3) significa que o software está na versão 2.0 e contém a atualização CU-3;
  • V2.0 SP1 CU-2 significa que o software está na versão 2.0, foi aplicado o service pack #1 e posteriormente a atualização CU-2 específica para V2.0 SP1.

Até final de 2015 as atualizações cumulativas vinham com recomendações como:

This cumulative package is intended to correct only the problems that are described in this article. Apply it only to systems that are experiencing these specific problems

ou então

A supported cumulative update package is now available from Microsoft. However, it is intended to correct only the problems that are described in this article”.

Na prática, algo como “instale por sua conta e risco!”.

A partir de janeiro de 2016 houve alterações nessa política, com a Microsoft passando a recomendar a instalação de todo pacote de atualizações cumulativas liberado. Isto foi divulgado no artigo “Announcing updates to the SQL Server Incremental Servicing Model (ISM)”, publicado em março de 2016 no blog “SQL Server Releases Update”, onde é explicado que as atualizações cumulativas deixaram de ser um simples empacotamento de correções individuais (hotfix) e passaram a participar do ciclo completo de testes de correções, da mesma forma como ocorre com os service packs.

2.2 Modern Servicing Model (MSM)

Em meados de 2017 um novo modelo de manutenção foi implementado, exclusivamente para a versão 2017 (e posteriores) do SQL Server. Os pacotes service pack não mais existirão, sendo que toda a manutenção ocorrerá através de pacotes cumulative updates (CU) e, ocasionalmente, por pacotes do tipo General Distribution Release (GDR). O MSM está detalhado no artigo “Announcing the Modern Servicing Model for SQL Server”, publicado em setembro de 2017 no blog “SQL Server Release Services”.

Durante o primeiro ano de vida da versão, pacotes de atualizações serão liberados mensalmente na forma de atualizações cumulativas (cumulative updates). A partir do segundo ano os pacotes serão liberados bimestralmente.

Cabe destacar que o MSM não substitui o ISM mas sim é um modelo de manutenção em paralelo, específico para a versão 2017 (e posteriores) do SQL Server. As atualizações para as versões 2016 (e anteriores) do SQL Server continuam a utilizar pacotes CU e SP, conforme o ISM.

3. Glossário

COD - Critical on-demand

Contém correção para um problema não relacionado à segurança e que seja considerado crítico devido à gravidade da questão, ao número de clientes que afeta ou à falta de uma solução viável (geralmente uma combinação de dois ou todos os três). A correção é liberada fora do ciclo normal de manutenção e então incorporada posteriormente no próximo pacote de atualização cumulativa (CU).

CU - cumulative update

Pacote com coletânea de correções (hotfixes) que são liberadas entre cada service pack (SP), normalmente a cada 60 dias. Funcionalidades podem ser acrescentadas, embora não seja usual. Como consta na denominação, as atualizações são cumulativas; isto é, para instalar o CU3, por exemplo, não é necessário instalar previamente o CU1 e a seguir o CU2.

GA - General Availability

É o momento em que cada versão é disponibilizada para o público, inclusive na forma de cópia da imagem ISO (download).

GDR - General Distribution Release

Pacote que contém correções que sejam relacionadas à segurança e/ou que tenham amplo impacto, mas sem qualquer outra correção que exista para a versão/nível de atualização. Geralmente utilizada por clientes que necessitam especificamente das correções contidas no pacote, sem necessidade das demais correções que são usuais nos pacotes CU.

RTM - Released to Manufacturing

É a compilação final de cada versão, pronta para ser disponibilizada aos clientes. Há textos que indicam que originalmente RTM significava a versão enviada para ser gravada nos CD e DVD; outros, que é a compilação enviada aos fabricantes de hardware para incorporar o produto ao equipamento.

SP - service pack

Pacote com coletânea de correções que foram liberadas desde o lançamento da versão ou do último versão/nível de atualização; lançado normalmente a cada ano. Inclui correções de segurança e pode conter novas funcionalidades, embora não seja usual. Da mesma forma que os pacotes CU, os pacotes SP são cumulativos: por exemplo, para instalar o SP2 não é necessário instalar previamente o SP1.

4. Referências

4.1 Artigos Microsoft

5. Finalizando

O objetivo deste artigo foi o de reunir informações que estão em  diversos documentos e artigos de blog. Caso você queira cópia deste artigo em formato PDF pode obtê-la em “Atualização do software SQL Server”.