愿隙 发表于 2025-6-11 10:59:38

SQL Server CU补丁与GDR补丁区别

在SQL Server数据库中的补丁有GDR补丁和CU补丁,关于两者的区别以及一些疑问,下面简单总结一下:
GDR(General Distribution Release)和CU(Cumulative Update)是SQL Server基线版本的两种不同更新服务选项。基线可以是RTM(Release to Manufacturing)版本或Service Pack(服务包)版本。个人有时候出于方便或习惯方面的原因,会将其叫为CU补丁或GDR补丁。有些正式的翻译为累积更新(CU)和通用分发版本(GDR). 文中可能在这两者之间切换,希望大家不要纠结这个细节。
 
CU补丁(累积更新)

CU(累积更新)包含基于RTM/SP 以来的累计更新。它包含累积的一些功能修复和安全更新以及功能增强(Feature Enhancements)。如果有SP补丁的话(有些SQL 版本有SP补丁,有些SQL版本没有),CU表示从上一个SP补丁包开始添加的功能修复和增强功能,并将包含在下一个SP补丁包中。而从SQL Server 2017开始,没有了SP补丁,CU补丁(累积更新)就跟之前的SP补丁一样。CU(累积更新)是累积性的,例如CU15,则包含前面从RTM开始,CU1,CU2....到CU14的所有累加的功能修复和安全更新。
这里展开说一下SP补丁与CU补丁的关系。
CU(累积更新)的安装类似于SP补丁包的安装。

[*]对于SQL Server 2016 及更低版本:
在安装CU补丁之前,请确保SQL Server实例处于该CU补丁的正确SP级别。 例如,在为 SQL Server 2016 实例应用 SP2 之前,不能对 SQL 2016 SP2 应用 CU17。CU补丁的编号会在SP后从1重新开始。
也就是说安装CU补丁前,必须安装了对应的SP补丁,CU补丁和SP补丁是有对应关系的。此时的CU不包含SP之前的累积更新补丁。
另外,对应给定的SP基线应用最新的CU,而无需为该服务包应用以前的 CU。 例如,若要为 SQL Server 2016 SP2 实例应用 CU17,可以跳过将以前的更新应用到 CU14、CU15 和 CU16(如果未安装)并直接应用 CU17。CU17包含了CU14、 CU15和CU16的补丁。
[*]对于SQL Server 2017及更高版本,始终可以应用可用的最新 CU。 从SQL Server 2017开始不再提供SP补丁包,只提供累积更新(CUs),以前只需要安装SP补丁包,现在改为安装累积更新补丁(CUs)。换个角度来说,SQL Server 2017 及更高版本不存在任何 Service Pack包了。
 
GDR补丁(通用分发版本)

通用分发版本,GDR补丁是针对特定问题的安全更新或关键修复。GDR(General Distribution Release,通用分发版本)更新是SQL Server的一种维护选项,主要用于提供关键的安全修复和高优先级的稳定性修复。以下是 GDR 更新包含的具体内容:

[*]安全更新(Security Updates)
GDR 更新主要包含针对SQL Server 的安全漏洞修复。这些更新旨在解决可能被利用的安全问题,例如权限提升、数据泄露或拒绝服务攻击等。安全更新通常由微软安全响应中心(MSRC)发布,以应对已知的安全威胁。

[*]关键稳定性修复(Critical Stability Fixes)
除了安全更新外,GDR 还可能包含一些关键的稳定性修复。这些修复用于解决可能严重影响系统运行的问题,例如导致数据库崩溃或数据损坏的严重错误。这些修复通常经过严格测试,确保不会引入新的问题。

[*]累积性更新(Cumulative Updates)
GDR 更新也是累积性的,这意味着每个新的 GDR 更新都包含之前所有 GDR 更新的内容。用户只需安装最新的 GDR 更新即可获得所有必要的安全和稳定性修复。这种设计减少了用户需要安装的更新数量,简化了更新管理。
GDR补丁不包含的内容

[*]功能增强(Feature Enhancements):GDR 更新通常不包含新功能或功能增强,这些内容通常在 CU(Cumulative Update,累积更新)中提供。
[*]非关键性修复(Non-Critical Fixes):GDR 更新专注于解决高优先级问题,不会包含一些非关键性的功能修复或改进。
那么现在来回答下面几个问题:

[*]在SQL Server数据库中CU补丁是否包含GDR补丁呢?
答:CU补丁包含GDR补丁中的安全更新和关键稳定性修复,从数学概念上理解的话,GDR补丁只是CU补丁的一个子集。当然前提是时间线上,CU补丁是GDR补丁后续发布的补丁。更多信息,你可以看看链接On Cumulative Updates and GDRs

[*]GDR补丁包含CU补丁吗?
答:如果严谨的来说,有些GDR补丁和这个GDR之前的CU补丁肯定有交集,但是就如上面所说,GDR补丁只是CU补丁的一个子集,那么GDR肯定不能包含CU的所有补丁修复,但是会包含部分补丁修复。而且GDR中不包含功能增强与非关键性修复。
[*]打补丁时选择CU补丁还是GDR补丁?如何选择?
GDR更新的主要目标是提供关键的安全和稳定性修复,确保 SQL Server 系统的安全性和可靠性。它适用于那些希望最小化更新风险的生产环境,特别是那些对系统稳定性要求较高的场景。如果需要更全面的功能修复和改进,可以考虑使用 CU 更新,但需要注意GDR和CU之间的切换限制。

[*]可以既安装CU补丁又安装GDR补丁吗?
在回答这个问题前,我们先来看看官方文档的介绍:
What are the GDR and CU update designations and how do they differ?
The General Distribution Release (GDR) and Cumulative Update (CU) designations correspond to the two different servicing options in place for SQL Server baseline releases. A baseline can be either an RTM release or a Service Pack release.

[*]GDR updates – cumulatively only contain security updates for the given baseline.
[*]CU updates – cumulatively contain all functional fixes and security updates for the given baseline.For any given baseline, either the GDR or CU updates could be options (see below).
If SQL Server installation is at a baseline version, you can choose either the GDR or CU update.If SQL Server installation has intentionally only installed past GDR updates, then choose to install the GDR update package.If SQL Server installation has intentionally installed previous CU updates, then chose to install the CU security update package.Note: You are allowed to make a change from GDR updates to CU updates ONE TIME. Once a SQL Server CU update is applied to a SQL Server installation, there is NO way to go back to the GDR update path.
翻译如下所示:
GDR(General Distribution Release,通用分发版本)和 CU(Cumulative Update,累积更新)对应于两种不同的可用于 SQL Server 基线版本的服务选项。基线可以是 RTM 版本或 Service Pack 版本。

[*]GDR更新: 仅累积包含针对给定基线的安全更新。
[*]CU更新: 累积包含给定基线的所有功能修复程序和安全更新。
对于任何给定的基线,GDR 或 CU 更新都可以是选项(见下文)。
如果 SQL Server 安装了基线版本,则可以选择 GDR 或 CU 更新。
如果 SQL Server 安装有意只安装了过去的GDR更新,则选择安装GDR更新包。
如果 SQL Server 安装有意只安装了以前的CU更新,则选择安装CU安全更新包。
注意:您仅有一次机会可以将 GDR 更新更改为 CU 更新。一旦 SQL Server CU 更新应用于 SQL Server 安装,将无法返回到 GDR 更新路径。
参考资料 1: https://sqlblog.org/2022/06/24/cu-vs-gdr
2: https://learn.microsoft.com/en-us/answers/questions/240590/cant-upgrade-sql-server-2016-to-latest-cu-update
扫描上面二维码关注我如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: SQL Server CU补丁与GDR补丁区别