一、 软件生命周期
SQL 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 2017 (14.x) on Linux 版本信息,具体参考:
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-release-notes?view=sql-server-2017#CU10
发行版本 | 版本 | 发布日期 |
14.0.3048.4 | 2018-12-18 | |
14.0.3045.24 | 2018-10-24 | |
14.0.3038.14 | 2018-09-20 | |
14.0.3037.1 | 2018-08-27 | |
14.0.3035.2 | 2018-08-18 | |
14.0.2002.14 | 2018-08-18 | |
14.0.3030.27 | 2018-07-18 | |
14.0.3029.16 | 2018-06-21 | |
14.0.3026.27 | 2018-05-24 | |
14.0.3025.34 | 2018-04-19 | |
14.0.3023.8 | 2018-03-20 | |
14.0.3022.28 | 2018-02-20 | |
14.0.3015.40 | 2018-01-03 | |
14.0.2000.63 | 2018-01-03 | |
14.0.3008.27 | 2017-11-28 | |
14.0.3006.16 | 2017-10-24 | |
14.0.1000.169 | 2017-10-02 |
五、 SQL Server版本信息
select @@version语句将返回以下信息:
- SQL Server版本
- 补丁信息
- 处理器架构
- SQL Server构建日期
- 版权声明
- SQL Server版本
- 操作系统版本
对于Azure SQL数据库,将返回以下信息。
- 版本 - “Microsoft SQL Azure”
- 产品级别 - “(RTM)”
- 产品版本
- 建立日期
- 版权声明
例如:
内容 | 含义 |
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/
六、 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的内容,如图:
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容器上获取和安装补丁的信息,请参阅:
- 配置存储库以在Linux上安装和升级SQL Server
- Linux上的SQL Server 2017发行说明
- 适用于Docker Engine的Linux上Microsoft SQL Server的官方映像
参考
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