SQL Server 2017 の更新プログラムの話

SQL Serverの最新の更新プログラムとバージョン履歴

SQL Server 2017 の更新プログラムは「サービスパック(SP)」でなく、「一般配布リリース(GDR)」と「累積的な更新プログラム(CU)」で提供される。GDRは「セキュリティ更新プログラム」と呼ばれることもある。

learn.microsoft.com

よって、更新プログラムを適用する際、セキュリティ対応のみのRTMベースラインか、機能追加・拡張のあるCUベースラインのどちらかを選択することになる。どちらを選択しても累積的なので、最新版のみを適用すればよい。ビルド番号により、CUベースラインから、RTMベースラインには移行できないようになっている。RTMベースラインから、CUベースラインへの移行は可能。

GDR には、RTM ベースラインまたは CU ベースラインを指定できます。 各ベースラインの最新の GDR バージョンは累積的であり、対応するベースラインに対する以前のすべての GDR からの修正が含まれています。

learn.microsoft.com

SQL Server ベースライン

今インストールされている SQL Server のベースラインはselect @@version で分かる。「RTM-GDR」と表示されればRTMベースライン、「RTM-CUxx」「RTM-CUxx-GDR」と表示されればCUベースライン。また、バージョン番号「メジャー.マイナー.ビルド.リビジョン」の3つめ「ビルド番号」が、2000番台ならRTMベースライン、3000番台ならCUベースラインである。

ライフサイクル

SQL Server のサポートは約10年間で、5年間のメインストリームサポートと5年間の延長サポートからなる。SQL Server 2017 のサポート関係の日付は以下のとおり。

日付
サポートの開始日 2017年9月29日
メインストリームの終了日 2022年10月11日
延長された終了日 2027年10月12日

learn.microsoft.com

KB5016884 - SQL Server 2017 の累積的な更新プログラム 31

累積的な更新プログラム 31 は、Microsoft SQL Server 2017 の最後の累積的な更新プログラムです。 SQL Server 2017 は、2022 年 10 月 11 日以降に延長サポートに移行されます。

延長サポートに移行した時点でCU31だったので、これが最後のCUとなる。これ以降の更新プログラムは、GDRで提供される。よって、累積的な更新プログラムを適用した環境では、バージョン表記SELECT @@VERSIONは「RTM-CU31-GDR」となる。

learn.microsoft.com

なぜこの記事を書いたか

SQL Server 2017 に対して、累積的な更新プログラムを適用していたが、累積的な更新プログラムが CU31 で打ち止めになって以降、GDR が2つ出ており、順番に2つインストールする必要があるのか、それとも最新の方だけインストールすればよいのか、わからなかったからです。KBの個別記事の概要を見ると対応する脆弱性しか修正しないように見えてしまいます。実際、Reddit でこれを誤解したコメント「順番に2つ適用する必要がある」がありましたが、前述のとおり累積的なので、最新の方のみのインストールでOKです。Hyper-V で「Windows Server 2019 評価版 + SQL Server 2017 Express RTM + CU31」の環境を作って、「Windowsの更新時に他のMicrosoft 製品の更新プログラムを受け取る」を指定した場合、最新の「KB5029376」のみが下りてくることを確認しました。

ビルド番号またはバージョン Update ナレッジ ベース番号 リリース日
14.0.3456.2 CU31 KB5016884 2022 年 9 月 20 日
14.0.3460.9 CU31 + GDR KB5021126 2023 年 2 月 14 日
14.0.3465.1 CU31 + GDR KB5029376 2023 年 10 月 10 日