sqlserver的CU与GDR补丁的区别
- CU(Cumulative Update,累积更新)和GDR(General Distribution Release,通用分发版本)是 SQL Server 基线版本的两种不同的软件更新类型。基线可以是 RTM(Release to Manufacturing)版本或 Service Pack(服务包)版本。
- GDR是常规分发版本,用于修复错误和安全漏洞,而CU是累积更新,包含了所有GDR修复和额外的特定问题修复。用户可以根据需求选择使用GDR还是CU,以保持SQL Server的稳定性和满足特定需求。
CU补丁(累积更新)
- CU 包含基于 RTM/SP 以来的累计更新,它包含了GDR中的所有修复和额外的特定问题修复。如果有SP补丁的话(SQL 2016及以前有SP补丁),CU表示从上一个SP补丁包开始添加的功能修复和增强功能,并将包含在下一个SP补丁包中,而CU补丁的编号会在SP后从1重新开始
CU补丁与SP补丁的关系
- CU 的安装类似于SP补丁包的安装。对于SQL Server 2016 及更低版本,在安装CU补丁之前,请确保SQL Server实例处于该CU补丁的正确SP级别,CU补丁和SP补丁是有对应关系的。 例如,SQL Server 2016 在安装 SP2 之前,不能应用 CU17
- 另外,对应给定的SP基线应用最新的CU,而无需为该服务包应用以前的 CU。 例如,若要为 SQL Server 2016 SP2 实例应用 CU17,可以跳过 CU14、CU15 和 CU16(如果未安装)而直接应用 CU17,因为 CU17包含了CU14、 CU15和CU16的补丁
| 版本 | 最新 SP 补丁 | 最新 CU 补丁 |
|---|---|---|
| SQL Server 2016 | SP3(13.0.6300.2 - 2021年9月) | 无SP3的CU |
| SQL Server 2016 | SP2(13.0.5026.0 - 2018年4月) | CU17 for SP2(13.0.5888.11 - 2021年3月) |
| SQL Server 2016 | SP1(13.0.4001.0 - 2016年11月) | CU15 for SP1(13.0.4574.0 - 2019年5月) |
| SQL Server 2016 | RTM(13.0.1601.5 - 2016年6月) | CU9 for RTM(13.0.2216.0 - 2017年11月) |
- 从 SQL Server 2017 开始不再提供SP补丁包,CU(累积更新)是累积性的,例如 CU15 包含了从RTM开始,CU1,CU2,...到CU14的所有累加的功能修复和安全更新。
GDR补丁(通用分发版本)
- GDR 是 SQL Server 的一种常规分发版本,用于修复产品中的错误、安全漏洞和性能问题
- GDR 通常以服务包(Service Pack)的形式发布,用户可以通过下载和安装来升级他们的SQL Server实例。
GDR和CU的选择
- 选择GDR还是CU取决于用户的需求和环境
- 如果用户希望保持SQL Server的稳定性,并且只需要修复已知的错误和安全漏洞,那么GDR是一个不错的选择
- 如果用户遇到了特定的问题,或者希望获得额外的性能改进,那么选择CU可能更合适
| 对比项目 | CU 补丁 | GDR 补丁 |
|---|---|---|
| 特性 | CU补丁 (累积更新) | GDR补丁 (通用分发版本) |
| 主要内容 | 大量非安全修复 (Bug修复、性能优化、功能改进) | 关键安全修复 + 极少数高优先级非安全修复 |
| 发布频率 | 定期 (通常每月一次) | 不定期 (仅在需要时,常与“补丁星期二”同步) |
| 版本号变化 | 显著变化 (内部版本号大幅递增) | 微小变化 (仅最后几位数字变化,主版本号保持不变) |
| 目的 | 提供最新非安全修复,快速迭代 | 提供关键安全修复和紧急修复,最小化变更风险 |
| 稳定性风险 | 相对较高 (包含大量变更) | 相对较低 (变更范围严格控制) |
| 典型适用场景 | 开发测试环境;解决特定非安全Bug的生产环境 | 生产环境首选;只需关键修复的环境;要求主版本不变的环境 |
| 是否包含安全更新 | 不包含 (安全更新需单独通过GDR或安全公告获取) | 包含 |
| 是否包含非安全更新 | 大量包含 (自RTM/SP以来的累积) | 极少包含 (仅限最紧急、影响广泛的非安全修复) |
- CU补丁包含了GDR补丁中的安全更新和关键稳定性修复,可以说,GDR补丁只是CU补丁的一个子集
SQL Server 不同版本的最新更新
| 版本 | 最新 Service Pack | 最新 GDR | 最新 CU |
|---|---|---|---|
| SQL 2022 | 无 | GDR(16.0.1145.1-2025年8月) | CU20(16.0.4205.1-2025年7月) |
| SQL 2019 | 无 | GDR(15.0.2140.1-2025年8月) | CU32(15.0.4430.1-2025年2月) |
| SQL 2017 | 无 | GDR(14.0.2080.1-2025年8月) | CU31(14.0.3456.2-2022年9月) |
| SQL 2016 | SP3(13.0.6300.2-2021年9月) | SP3的GDR(13.0.6465.1-2025年8月) | 无SP3的CU |
| SQL 2014 | SP3(12.0.6024.0-2018年10月) | SP3的GDR(12.0.6179.1-2023年10月) | SP3的CU4(12.0.6329.1-2019年7月) |
| SQL 2012 | SP4(11.0.7001.0-2017年9月) | SP4的GDR(11.0.7512.11-2023年2月) | 无SP4的CU |
| SQL 2008 R2 | SP3(10.50.6000.34-2014年9月) | SP3的GDR(10.50.6785.2-2023年2月) | 无 |
| SQL 2008 | SP4(10.0.6000.29-2014年9月) | SP4的GDR(10.0.6814.4-2023年2月) | 无 |
重要注意事项
- 基线版本:CU 和 GDR 都依赖于某个RTM或SP版本。CU 会累积到下一个 SP 或主版本结束;GDR 通常只提供从 RTM 或 SP 基线开始的独立关键更新。
- SQL 2014 及更早:GDR 分支和 CU 分支通常是独立的。一旦安装了某个 CU,后续只能安装基于该 CU 基线的新 CU 或升级到 SP。不能直接从安装了 CU 的版本安装 GDR(除非卸载 CU 回退到 RTM/SP,或安装新的 SP 重置基线)。
- SQL 2016 及更新:微软改进了模型,GDR 更新可以应用于安装了 CU 的系统(只要该 GDR 的基线版本号低于或等于当前安装的 CU 基线)。这大大简化了生产环境的安全更新流程,无需回退或等待 SP。这是生产环境首选 GDR 的主要原因之一。
- 生产环境:强烈建议采用 GDR 补丁。仅部署关键的安全更新和极少数紧急非安全修复,最大程度保证稳定性。这是最保守、风险最低的方式
- 生产环境:安装 CU 补丁务必谨慎,如果遇到影响业务的严重 Bug,且确认该 Bug 已在后续 CU 中修复,务必在测试环境经过严格的测试后方可实施
- 开测环境:可以更积极地部署最新的 CU,以便尽早发现和适应新版本中的变更,为未来生产环境的升级积累经验。
- 备份先行: 应用任何补丁前,务必进行完整数据库和系统备份
