SQL Server 2017 の累積的な更新プログラム 14

適用対象: SQL Server 2017 on Windows (all editions)SQL Server 2017 on Linux (all editions)

この記事では、SQL Server 2017 の 累積的な更新プログラム パッケージ 14 (CU14) (ビルド番号: 14.0.3076.1) について説明します。 この更新プログラムには、SQL Server 2017 の初回リリース後にリリースされた修正プログラムが含まれます。

この記事では、以下の状況に関する重要な情報についても説明します。

  • Pacemaker の最新の利用可能なバージョンを使用するディストリビューションの動作の変更
  • クエリ ストアを使用していて、以前に SQL Server 2017 Cumulative Update 2 (CU2) をインストールしている場合に必要なスクリプト
  • SQL Server 2017 以降、Analysis Services のビルド バージョン番号と SQL Server データベース エンジンのビルド バージョン番号が一致しません。 詳細については、Analysis Services 累積更新プログラムのビルド バージョンの確認を参照してください。

累積的な更新プログラム

累積的な更新プログラム (CU) は、現在 Microsoft ダウンロード センターで入手できます。

ダウンロード センターで入手できるのは、SQL Server 2017 用にリリースされた最新の CU だけです。

Linux の CU パッケージは、https://packages.microsoft.com/ で入手できます。

注意事項

  • 最新の CU には、インストール済みの SQL Server バージョン用として前回の CU に含められていた修正プログラムがすべて含まれます。
  • SQL Server CU は Service Pack と同じレベルに認証されるため、同じ信頼レベルでインストールする必要があります。
  • 次のガイドラインに従って CU が入手可能になったら、継続的かつ予防的に CU をインストールすることをお勧めします。
     
    • 過去のデータは、リリース済みの CU で既に解決されている問題が多数のサポート ケースで扱われていることを物語っています。
    • CU には、修正プログラムの他に 付加的な機能 (サポータビリティ、管理性、信頼性の更新ファイルなど) が含まれることもあります。
  • CU を実稼働環境に展開する前に CU をテストすることをお勧めします。
 

Windows 用のこの累積的な更新プログラム パッケージの入手方法


次の更新プログラムは、Microsoft ダウンロード センターから入手できます。

このダウンロード ページが表示されない場合は、Microsoft カスタマー サービス サポートに問い合わせてこの累積的な更新プログラム パッケージを入手してください。

注意事項

  • SQL Server 2017 用の今後の累積的な更新プログラムがリリースされた後は、これおよび以前のすべての CU を Microsoft Update カタログからダウンロードできます。 しかし、入手できる最新の累積的な更新プログラムを常にインストールすることをお勧めします。

Linux 用のこの累積的な更新プログラム パッケージの入手方法


Linux を最新の CU に更新するには、まず、累積的な更新プログラム リポジトリを設定する必要があります。 次に、適切なプラットフォーム固有の更新コマンドを使用して SQL Server パッケージを更新します。

インストール手順および CU パッケージのダウンロードへの直接リンクについては、リリース ノートを参照してください。

注意事項


Linux 用のこの累積的な更新プログラムをインストールした後、SQL Server の errorlog ファイルに次のメッセージが表示されることがあります。

DateTime Server Failed to verify the Authenticode signature of 'C:\binn\secforwarder.dll'. SQL Server DLL の署名検証はスキップされます。 Genuine copies of SQL Server are signed.

Failure to verify the Authenticode signature might indicate that this is not an authentic release of SQL Server. Install a genuine copy of SQL Server or contact customer support.

このメッセージは、sedforwarder.dll が Linux 用に構築およびパッケージ化されている方法が変更されたことに起因します。 署名チェック ロジックが正しく更新されていません。 メッセージは無視しても問題ありません。署名チェック ロジックが今後の累積的な更新プログラムで更新されると、この問題が修正されます。

累積更新プログラム パッケージに含まれている追加のホットフィックス


VSTS バグ番号 サポート技術情報番号 説明 修正領域 プラットフォーム
12245672 4338761 修正プログラム: SQL Server 2016 または 2017 でシステム バージョン管理されたテンポラル テーブルの 2 つのパーティションを結合すると、SQL Server で EXCEPTION_ACCESS_VIOLATION ダンプ ファイルが生成されることがある SQL エンジン Windows
12546124 4469268 修正プログラム: BPE ファイルの I/O エラーにより SQL Server でバッファ タイムアウトが発生する SQL エンジン Windows
12578034 4475322 修正プログラム: SQL Server 2014、2016、および 2017 でプリペアド ステートメントが多用されていると「Non-yield」エラーが発生する SQL エンジン Windows
12671869 4480641 修正プログラム: SQL Server 2016 または 2017 でメモリ付与タイムアウトが設定されているにもかかわらず、列ストア インデックス作成要求が 25 秒後にタイムアウトすることがある SQL パフォーマンス すべて
12564137 4480647 SQL Server で Oracle RAC 環境を使用する際の更新プログラムにより、機能が向上し、問題が修正される Integration Services Windows
12671876 4480650 修正プログラム: SQL Server 2016 と2017 で優先順位の値が同じ場合でも、sys.fn_hadr_backup_is_preferred_replica は複数のセカンダリ レプリカに対して TRUE を返す 高可用性 Windows
12671897 4483427 修正プログラム: SQL Server 2016 および 2017 で sqlos.wait_info イベントを使用して XEvent セッションを使用すると、アクセス違反が発生してサーバーが突然停止する SQL エンジン Windows
12450172 4483571 修正プログラム: 可用性グループ データベースを含むデータベース間トランザクションが SQL Server トリガーからコミットされると、アサーションエラーが発生する可能性がある SQL エンジン Windows
12552012 4483593 SQL Server で DTC が有効になっている同じインスタンス上の可用性グループ データベースにスナップショット分離とセーブポイントのサポートが追加された SQL エンジン Windows
12594078 4486931 修正プログラム: SQL Server 2016 および 2017 で sysadmin アカウント「sa」の名前を変更すると、SQL Server 2016 SP2 CU3 または CU4 へのアップグレードがエラーで失敗する SQL エンジン Windows
12671863 4486932 修正プログラム: SQL Server 2016 および 2017 では、ユーザーはベース テーブルにアラインされていない非クラスター化インデックスに増分統計を作成することを誤って許可されている SQL パフォーマンス Windows
12671899 4486935 修正プログラム: SQL 2014 SP2 CU14 以降のバージョン (2016、2017、または 2019) で Excel から特定のクエリを実行すると、クエリの結果は期待どおりにならない Analysis Services Windows
12571730 4486937 修正プログラム: SQL Server 2016 および 2017 でワークブックに変更を保存して閉じ、再度開くと、Excel からの MDS データの発行が失敗する Data Quality Services (DQS) Windows
12588637 4486940 修正プログラム: SQL Server 2016 および 2017 で限られたディスク領域にデータベースをバックアップしようとすると、アサーション エラーが発生する SQL エンジン Windows
12631714 4487751 修正プログラム: SSAS 2017 で Power BI デスクトップから TREATAS 関数 DAX クエリを実行すると、予期しない例外エラーが発生する Analysis Services Windows
12635600 4487975 修正プログラム: Excel で関連する数値データを表示したり、SSAS 2017 で MDSCHEMA_ACTIONS を使用したりすると、メニューにレポート アクション機能が表示されない Analysis Services Windows
12580378 4488026 修正プログラム: SQL Server 2017 で増分統計を含むテーブルに対して自動統計更新が行われると、アクセス違反が発生する SQL パフォーマンス Windows
12656687 4488036 修正プログラム: SQL Server 2017 の同じインスタンスに複数の発行元データベースがある場合、Repl_Schema_Access 待機の問題 SQL エンジン すべて
12562317 4488400 修正プログラム: SQL Server 2017 の可用性グループのデータベースでアクセス違反が発生し、データ移動が中断される Data Quality Services (DQS) Windows
12656908 4488809 修正プログラム: SQL Server 2014、2016、および 2017 で並列クエリが Filestream テーブルから削除されるとアサーションが発生する SQL エンジン Windows
12657080 4488817 修正プログラム: SQL Server 2016および2017 フェールオーバー クラスター インスタンスでクラスター共有ボリューム (CSV) を使用している場合、ファイル I/O アクセス機能の FILESTREAM を有効にできない SQL エンジン Windows
12639890 4488856 修正プログラム: SQL Server 2016 および 2017 をアップグレードした後で発行元を削除するか、データベースを発行用に有効にすると、エラー 2812 および 20028 が発生する SQL エンジン Windows
12654421 4488949 修正プログラム: SQL Server 2016 および 2017 のデータベース間トランザクションで、それ自体を指すリンク サーバーが使用されているとアサーションが発生する SQL エンジン Windows
12654305 4488971 修正プログラム: SQL Server 2016 および2017 で MDS データベースのアップグレードがエラーで失敗する Data Quality Services (DQS) Windows
12629554 4490134 改善点: SQL Server 2017 で新しい拡張イベント query_post_execution_plan_profile を追加する SQL パフォーマンス すべて
12576806 4490135 修正プログラム: ローカル プロセスでグローバル キー イベント ハンドルが使用されていると、SQL Server 2017 がクラッシュすることがある SQL エンジン Linux
12674843 4490137 修正プログラム: 統合認証を使用して SQL Server 2017 に接続すると、TCP タイムアウトまたはログイン タイムアウト エラーが発生する SQL エンジン すべて
12677802 4490138 修正プログラム: SQL Server 2016 および 2017 で NCI のキー列または含まれる列がいずれも変更されないようにテーブルが更新されると、CCI 上のフィルター処理された NCI が維持されない場合がある SQL パフォーマンス すべて
12673173 4490140 修正プログラム: SQL Server 2016 および 2017 の変更追跡クリーンアップ プロセスでスタック ダンプが発生する SQL エンジン Windows
12672571 4490142 修正プログラム: TF 460 が有効で、SQL Server 2017 の ELSE ブロックで INSERT INTO テーブル変数を使用した場合の切り捨てエラー SQL エンジン すべて
12700549 4490144 改善点: 新しい XEvent sqlserver.security_authentication_perf_interrogate_login が SQL Server 2017 で追加される SQL セキュリティ Linux
12700550 4490145 改善点: 新しい mssql-confオプション network.enablekdcfromkrb5 が SQL Server 2017 で追加される SQL セキュリティ Linux
12695517 4490379 修正プログラム: 統合認証を使用して SQL Server 2017 に接続すると、TCP タイムアウトまたはログイン タイムアウト エラーが発生する SQL セキュリティ Linux
12651915 4490799 修正プログラム: SQL Server 2017 CU9 から CU13 以降、DBCC STACKDUMP で Linux 上の SQL Server 2017 のダンプ ファイルが生成されない SQL エンジン Linux

この更新プログラムについての注記


ハイブリッド環境への展開

更新プログラムをハイブリッド環境 (AlwaysOn、レプリケーション、クラスター、ミラーリングなど) に展開するときには、更新プログラムを展開する前に次の記事を参照することをお勧めします。
 

累積的な更新プログラム パッケージの情報


必要条件

この累積的な更新プログラム パッケージを適用するには、SQL Server 2017 を実行している必要があります。

再起動に関する情報

この累積的な更新プログラム パッケージの適用後、コンピュータの再起動が必要な場合があります。

レジストリ情報

このパッケージに含まれている修正プログラムを使用するために、レジストリを変更する必要はありません。

その他の CU パッケージの情報


Pacemaker に関する注意事項


重要

最新の使用可能な Pacemaker パッケージ 1.1.18-11.el7 を使用するすべてのディストリビューション (RHEL 7.3 および7.4 を含む) では、値が false の場合にstart-failure-is-fatal クラスター設定の動作が変更されます。 この変更はフェールオーバー ワークフローに影響します。 プライマリ レプリカで機能停止が発生した場合、クラスターは使用可能なセカンダリ レプリカの 1 つにフェールオーバーすると予想されます。 代わりに、ユーザーは、クラスターが障害の発生したプライマリ レプリカを起動しようとし続けていることがわかります。 そのプライマリがオンラインにならない場合 (永続的な機能停止のため)、クラスターは他の使用可能なセカンダリ レプリカにフェールオーバーすることはありません。

この問題は、累積的な更新プログラムのバージョンに関係なく、すべての SQL Server のバージョンに影響します。

この問題を軽減するには、以下のいずれかの方法を使用します。

方法 1

次の手順を実行します。

  1. 既存のクラスターから start-failure-is-fatal オーバーライドを削除します。 
       # RHEL, Ubuntu         pcs property unset start-failure-is-fatal         # or         pcs property set start-failure-is-fatal=true   # SLES         crm configure property start-failure-is-fatal=true
  2. cluster-recheck-interval の値を減らします。 
       # RHEL, Ubuntu         pcs property set cluster-recheck-interval=<Xmin>   # SLES         crm configure property cluster-recheck-interval=<Xmin>
  3. 各 AG リソースに failure-timeout メタ プロパティを追加します。 
       # RHEL, Ubuntu         pcs resource update ag1 meta failure-timeout=60s   # SLES         crm configure edit ag1      # In the text editor, add `meta failure-timeout=60s` after any `param`s and before any `op`s
     

    注: このコードでは、必要に応じて <Xmin> の値を置き換えます。 レプリカが停止した場合、クラスターは failure-timeout 値と cluster-recheck-interval 値によってバインドされた間隔でレプリカの再起動を試みます。 たとえば、failure-timeout が 60 秒に設定され、cluster-recheck-interval が 120 秒に設定されている場合、再起動は 60 秒より長く 120 秒未満の間隔で試行されます。 failure-timeout60 秒に、cluster-recheck-interval を 60 秒を超える値に設定することをお勧めします。 cluster-recheck-interval を小さい値に設定することはお勧めできません。 詳細については、Pacemaker のドキュメントを参照するか、システム プロバイダーまでお問い合わせください。


方法 2

Pacemaker バージョン 1.1.16 に戻します。

    クエリ ストアに関する注意事項


    重要

    クエリ ストア機能を使用していて、以前に Cumulative Update 2 (CU2) (14.0.3008.27) をインストールしたことがある場合、以下の要件が適用されます。

    Cumulative Update 3 (CU3) (14.0.3015.40) 以降の CU をインストールした後は、すぐに次のスクリプトを実行して、CU2 のインストール中にクエリ ストアによって収集されたすべてのプランを削除する必要があります。

    SET NOCOUNT ON;DROP TABLE IF EXISTS #tmpUserDBs;SELECT [database_id], 0 AS [IsDone]INTO #tmpUserDBsFROM master.sys.databasesWHERE [database_id] > 4 AND [state] = 0 -- must be ONLINE AND is_read_only = 0 -- cannot be READ_ONLY AND [database_id] NOT IN (SELECT dr.database_id FROM sys.dm_hadr_database_replica_states dr -- Except all local Always On secondary replicas  INNER JOIN sys.dm_hadr_availability_replica_states rs ON dr.group_id = rs.group_id  INNER JOIN sys.databases d ON dr.database_id = d.database_id  WHERE rs.role = 2 -- Is Secondary   AND dr.is_local = 1   AND rs.is_local = 1)DECLARE @userDB sysname;WHILE (SELECT COUNT([database_id]) FROM #tmpUserDBs WHERE [IsDone] = 0) > 0BEGIN SELECT TOP 1 @userDB = DB_NAME([database_id]) FROM #tmpUserDBs WHERE [IsDone] = 0 -- PRINT 'Working on database ' + @userDB EXEC ('USE [' + @userDB + '];DECLARE @clearPlan bigint, @clearQry bigint;IF EXISTS (SELECT [actual_state] FROM sys.database_query_store_options WHERE [actual_state] IN (1,2))BEGIN IF EXISTS (SELECT plan_id FROM sys.query_store_plan WHERE engine_version = ''14.0.3008.27'') BEGIN  DROP TABLE IF EXISTS #tmpclearPlans;  SELECT plan_id, query_id, 0 AS [IsDone]  INTO #tmpclearPlans  FROM sys.query_store_plan WHERE engine_version = ''14.0.3008.27''  WHILE (SELECT COUNT(plan_id) FROM #tmpclearPlans WHERE [IsDone] = 0) > 0  BEGIN   SELECT TOP 1 @clearPlan = plan_id, @clearQry = query_id FROM #tmpclearPlans WHERE [IsDone] = 0   EXECUTE sys.sp_query_store_unforce_plan @clearQry, @clearPlan;   EXECUTE sys.sp_query_store_remove_plan @clearPlan;   UPDATE #tmpclearPlans   SET [IsDone] = 1   WHERE plan_id = @clearPlan AND query_id = @clearQry  END;  PRINT ''- Cleared possibly affected plans in database [' + @userDB + ']'' END ELSE BEGIN  PRINT ''- No affected plans in database [' + @userDB + ']'' ENDENDELSEBEGIN PRINT ''- Query Store not enabled in database [' + @userDB + ']''END')  UPDATE #tmpUserDBs  SET [IsDone] = 1  WHERE [database_id] = DB_ID(@userDB)END