一、 软件生命周期

SQL Server生命周期管理中有很多概念,为避免混淆,我们先以一幅图来说明软件工程中各种术语的含义。

SQL Server 生命周期管理策略 ILM_Server

  • alpha版本:正在开发的产品新版本,可以将其提供给选定的客户和社区成员以进行早期测试。
  • beta版本(CTP):随着开发的进展和产品越来越精细,它被提供给更广泛的受众。曾经被称为beta版本,例如beta 1、beta 2等。几年前Microsoft改变了SQL Server预发布的术语,现在被称为CTP(社区技术预览)
  • RC(Release Candidate):产品进入发布前的最后阶段,功能集已完成且产品正在进行最终测试。
  • GA(General Availability):当产品经历严格测试后,确定不需要有更多的变化时的版本,有时也称作该产品已golden。
  • RTM(Released To Manufacturing):一旦将这些转交给公司大规模生产介质(CD,DVD等),就到了RTM阶段,这是产品的原始发布版本,从光盘或MSDN下载的默认版本。
  • 通常在RTM附近的一段时间,产品版本称为launched。launch的时间可能与产品实际可供购买的时间有关,也可能没有。launch 更关注与营销和产品功能而非可用性。
  • 最后产品发布了(released),它可以从正常的分销渠道购买。
  • 随着时间的推移,开发会针对各种bug创建小补丁,专业名词叫热门修复程序(HotFixes),以解决影响某些客户的特定产品问题。
  • QFE(快速修复工程)是指厂商为了及时升级功能或者修改缺陷而做的改动,QFE 更新文件一般所做的测试相对较少,其稳定性普遍不如 GDR。
  • 当问题影响过于广泛时,会发布GDR(通用分发版本),以便所有客户都能收到更新。GDR解决了具有广泛客户影响或具有安全隐患或两者兼而有之的问题。GDR保持在最低限度,由Microsoft在适当时发布。
  • HotFixes,QFE和GDR旨在快速解决特定客户遇到的特定问题,因此可以经常发布。这种快速性使得许多用户跟不上发布的步伐。因此,定期又会有CU(累积更新),其中包含所有适用的修补程序。
  • 收集到足够大的更新集后,将发布SP(Service Pack)。从历史上看,SP也是用于提供GA时尚未准备好的新功能的发布工具。但微软已发文,从 SQL Server 2017 开始将不再提供SP,后期补丁使用 CU。

 

二、   Microsoft生命周期

Microsoft提供业界领先的生命周期策略,为客户提供一致、透明和可预测的软件支持和服务指南。

1. 类型 

Fixed Lifecycle Policy(固定生命周期策略)

固定策略定义了支持终止日期,包括业务,开发人员和桌面操作系统策略,消费者和多媒体策略以及设备操作系统策略。

  • products with defined end-of-support dates(具有已定义的支持终止日期的产品)
  • Business, Developer and Desktop Operating Systems(业务,开发人员和桌面操作系统)
  • Consumer and Multimedia(消费者和多媒体)
  • Device Operating Systems(设备操作系统)

Modern Lifecycle Policy(现代生命周期策略)

现代策略遵循持续的服务和支持模式,没有支持终止日期,若要结束现代策略产品支持,Microsoft将至少提前12个月通知。

  • products with continuous support and servicing(持续支持和服务的产品)
  • Azure策略

 

2. 涵盖产品及生效时间

  • 2002年10月15日,业务,开发人员和桌面操作系统软件政策生效。
  • 2011年1月,Microsoft制定了在线服务生命周期政策。
  • 2016年8月,微软制定了现代生命周期政策。
  • 2017年3月,Microsoft将其产品和服务的生命周期策略分为固定现代


三、 SQL Server服务生命周期

 

1.  SQL Server服务背景

从历史上看,sqlserver在主要版本发布后每2个月发布一次CU,大致每年发布一次SP,其中包含所有先前的CU,以及可能需要本地化的任何功能或可支持性增强功能。

SQL Server 2017之前,RTM和任何后续SP都会建立新的产品基线。对于每个新的基线,CU在下一个SP发布后大约12个月,或者在产品生命周期的主流阶段结束时提供,以先到者为准。

对于整个产品生命周期,我们会在需要时发布GDR,仅包含与安全相关的修订。

 

2. 服务生命周期

SQL Server 2016 的服务生命周期没有变化:

  • 第0-5年(主流支持):通过CU解决安全性和功能问题。通过GDR解决安全问题。
  • 第6-10年(扩展支持):仅修复安全或关键功能问题。
  • 第11-16年(高级保证):扩展支持的可选付费扩展

 

3.     现代服务模型(MSM)

从SQL Server 2017开始,采用简化、可预测的主流服务生命周期:

1)      SP不再可用,只提供CU和GDRs

2)      CU将像SPs那样包含本地化内容

3)      CU将首先频繁地发布,然后不那么频繁:

  •    前12个月在每月的第三个星期二发布,
  •    其后4年(主流生命周期为5年)将每季度发布一次

2018年10月8日对上述内容进行了更改:

从SQL Server 2017 CU13开始,CU将每两个月而不是每季度交付一次。

 

四、 SQL Server服务生命周期列表

这个表非常长,此处仅列出sqlserver 2017相关信息,完整版参考:

https://support.microsoft.com/en-us/lifecycle/search?alpha=sql%20server

SQL Server 生命周期管理策略 ILM_SQL_02

可以在官方文档看到SQL Server 2017 (14.x) on Linux 版本信息,具体参考:

https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-release-notes?view=sql-server-2017#CU10

发行版本

版本

发布日期

CU13

14.0.3048.4

2018-12-18

CU12

14.0.3045.24

2018-10-24

CU11

14.0.3038.14

2018-09-20

CU10

14.0.3037.1

2018-08-27

CU9 GDR2

14.0.3035.2

2018-08-18

GDR2

14.0.2002.14

2018-08-18

CU9 的所有更新

14.0.3030.27

2018-07-18

CU8

14.0.3029.16

2018-06-21

CU7

14.0.3026.27

2018-05-24

CU6

14.0.3025.34

2018-04-19

CU5

14.0.3023.8

2018-03-20

CU4

14.0.3022.28

2018-02-20

CU3

14.0.3015.40

2018-01-03

GDR1

14.0.2000.63

2018-01-03

CU2

14.0.3008.27

2017-11-28

CU1

14.0.3006.16

2017-10-24

GA

14.0.1000.169

2017-10-02

 

五、 SQL Server版本信息

select @@version语句将返回以下信息:

  • SQL Server版本
  • 补丁信息
  • 处理器架构
  • SQL Server构建日期
  • 版权声明
  • SQL Server版本
  • 操作系统版本

对于Azure SQL数据库,将返回以下信息。

  • 版本 - “Microsoft SQL Azure”
  • 产品级别 - “(RTM)”
  • 产品版本
  • 建立日期
  • 版权声明

例如:

SQL Server 生命周期管理策略 ILM_sql_03

内容

含义

Microsoft SQL Server 2017

主版本信息

(RTM-CU10) (KB4342123) - 14.0.3037.1 (X64)

RTM-累积更新10,版本号为14.0.3037.1

Jul 27 2018 09:40:27

SQL Server构建日期

Copyright (C) 2017 Microsoft Corporation Enterprise Edition: Core-based Licensing (64-bit)

版权声明与SQL Server版本

Linux (CentOS Linux 7 (Core))

操作系统信息

https://www.mssqltips.com/sqlservertip/2563/understanding-the-sql-server-select-version-command/

https://docs.microsoft.com/en-us/sql/t-sql/functions/version-transact-sql-configuration-functions?view=sql-server-2017

 

六、   SQL Server补丁

我们回顾一下补丁相关的几个概念:

  • RTM: 产品的原始发布版本,从光盘或 MSDN 下载的默认版本
  • Hotfix :小补丁,修复的特定问题,每年 SQL Server 会出现许多bug或漏洞,这些问题的修复程序称为Hotfix
  • Cumulative Update(CU):累积更新,由 Hotfix 组成。每个最新的CU版本都包含之前的CU中的Hotfix。CU的安装基于原始版本(RTM)或 SP,测试不如SP全面。
  • GDR(General Distribution Release):与 CU 不同,GDR 仅包含严重问题的更新。
  • Service Package(SP):SP是集成 Hotfix 最多的包,其中Hotfix经过官方完整测试。SP是SQL Server最大的补丁文件,有之前CU里的所有内容,每12至18月发布一次。从 SQL Server 2017 开始,将不再提供SP,后期补丁使用 CU。而 2017 之前的版本,还是会继续发布 SP 的。

每个最新的 CU 都包含之前CU的内容,每个SP也都包含之前SP的内容,如图:

 

SQL Server 生命周期管理策略 ILM_sql_04

SQL Server 生命周期管理策略 ILM_sql_05

 

1. SQL Server on Windows补丁获取方法

以SQL Server 2017 RTM (KB4293803)为例

  • Windows Update

可通过Windows Update获得。打开自动更新时,将自动下载并安装(不推荐)。有关如何启用自动更新,请参阅Windows Update:常见问题解答

  • Microsoft Update目录

要获取此补丁的独立程序包,请转至Microsoft Update目录网站。

  • Microsoft下载中心

可以从Microsoft下载中心下载以下文件:立即下载包

有关如何下载Microsoft支持文件的更多信息,参考:如何从在线服务获取Microsoft支持文件

 

2. SQL Server on Linux/容器 补丁获取方法

有关在Linux操作系统或Docker容器上获取和安装补丁的信息,请参阅:

 

参考

https://support.microsoft.com/en-us/help/4293803/description-of-the-security-update-for-the-remote-code-execution-vulne

https://blogs.msdn.microsoft.com/sqlreleaseservices/a-changed-approach-to-service-packs/

https://thesqldude.com/tag/gdr/


https://www.slideshare.net/AmazonWebServices/best-practices-running-sql-server-on-aws

https://redmondmag.com/articles/2017/09/29/sql-server-2017-monthly-feature-updates.aspx

https://support.microsoft.com/en-us/hub/4095338/microsoft-lifecycle-policy

https://support.microsoft.com/en-us/lifecycle/search?alpha=sql%20server

https://support.microsoft.com/en-us/help/4047326/support-policy-for-microsoft-sql-server

https://support.microsoft.com/en-us/help/17140/lifecycle-faq-general-policy-questions

https://support.microsoft.com/en-us/help/18486/lifecycle-faq-azure

https://www.slideshare.net/AmazonWebServices/best-practices-running-sql-server-on-aws

https://docs.microsoft.com/zh-cn/azure/sql-database/

https://azure.microsoft.com/en-gb/blog/announcing-new-azure-vm-images-sql-server-2017-on-linux-and-windows/

https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-server-iaas-overview

https://docs.microsoft.com/en-us/azure/virtual-machines/linux/sql/sql-server-linux-virtual-machines-overview

https://support.microsoft.com/en-us/help/321185/how-to-determine-the-version-edition-and-update-level-of-sql-server-an

https://blogs.msdn.microsoft.com/sqlreleaseservices/announcing-the-modern-servicing-model-for-sql-server/

https://webbtechsolutions.com/2009/04/29/whats-the-difference-in-a-gdr-a-cumulative-update-cu-and-a-service-pack-sp/

https://blog.engineer-memo.com/2017/10/02/sql-server-2017-%E3%81%8B%E3%82%89%E9%81%A9%E7%94%A8%E3%81%95%E3%82%8C%E3%82%8B%E6%96%B0%E3%81%97%E3%81%84%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%83%A2%E3%83%87%E3%83%AB/

https://blogs.msdn.microsoft.com/sqlreleaseservices/announcing-the-modern-servicing-model-for-sql-server/