KB5006944 - 2017 年 SQL Server 的累積更新 27
Release Date:
2021/10/27
Version:
14.0.3421.10
摘要
本文說明 Microsoft SQL Server 2017 的累積更新套件 27 (CU27) 。 此更新包含 2017 年 SQL Server 累積更新 26 發行之後發行的 12 個修正程式,以及更新元件至下列組建。
-
SQL Server - 產品版本:14.0.3421.10,檔案版本:2017.140.3421.10
-
Analysis Services - 產品版本: 14.0.249.83,檔案版本: 2017.140.249.83
這個更新的已知問題
此累積更新沒有已知問題。
此累積更新中包含的改進與修正
可下載Excel包含組建摘要清單及其目前支援週期的活頁簿可供使用。 Excel檔案也包含 SQL Server 2019 和 SQL Server 2017 的詳細修正程式清單。 按一下以立即下載此Excel檔案。
附註: 下表中的個別專案可透過書簽直接參照。 如果您按一下表格中的任何錯誤參照識別碼,您會注意到使用此格式#bkmk_NNNNNNNN將書簽標籤新增至 URL。 接著,您可以將此 URL 分享給其他人,讓他們可以直接跳到表格中所要的修正程式。
錯誤參照 |
知識庫文件編號 |
描述 |
修正區域 |
Platform |
|
---|---|---|---|---|---|
5007158 |
SQL 引擎 |
全部 |
|||
5007039 |
SQL 引擎 |
Windows |
|||
5007381 |
修正:在 2017 年 SQL Server 設定新的執行時間並移除新的累積更新修補程式之後,Sp_execute_external_script失敗 |
SQL 引擎 |
Windows |
||
在 2019 年 SQL Server 時,防止鬼影清理觸發記憶轉儲 |
SQL 引擎 |
Windows |
|||
修正在標準版 SQL Server 2019 中,PolyBase 縮小群組的次要節點上,容錯移轉叢集實例 (FCI) 設定失敗的問題。 以下是錯誤訊息: Polybase 的指定縮放設定與SQL Server容錯移轉叢集中作用中節點所指定的不同。 若要繼續,請提供 False 做為設定。 |
SQL 引擎 |
Windows |
|||
修正啟用詳細資訊截斷功能時,特定查詢會發生的查詢內部鎖死 |
SQL 引擎 |
Windows |
|||
修正因隱含轉換而會發生的假設失敗,其中述詞的精確度大於值: Msg 3624、層級 20、州/市 1、 Line LineNumber 系統主張檢查已失敗。 查看SQL Server錯誤記錄檔以取得詳細資料。 通常,假設失敗是軟體錯誤或資料損毀所導致。 若要檢查資料庫損毀,請考慮執行 DBCC CHECKDB。 如果您同意在設定期間將轉儲傳送給 Microsoft,迷你轉儲將會傳送至 Microsoft。 Microsoft 可能會在最新的 Service Pack 或來自技術支援人員的 Hotfix 中取得更新。 Msg 596、層級 21、州/市 1、 LineNumber 無法繼續執行,因為會話處於停止狀態。 Msg 0、層級 20、州/市 0、 Line LineNumber 目前命令發生嚴重錯誤。 若有任何結果,則應予以捨棄。 |
SQL 引擎 |
Windows |
|||
修正在 sys.servers 中輸入不正確名稱會導致Always On可用性群組 (AG) 在伺服器名稱不符合Windows主機名稱時移除複本的問題 |
高可用性 |
Windows |
|||
修正當您將預設資料目錄設為Azure Blob 儲存體 URL 時, (CU) 修補失敗的問題: 不支援指定路徑的格式。 例外類型「System.NotSupportedException」 附註 若要解決此問題,您可以將資料預設目錄變更為本機目錄,並重新執行SQL修補程式。 |
安裝&設定 |
Windows |
|||
修正在累積更新升級和降級期間 ,Alwayson_health 會話中的延伸事件版本不會自動變更的問題 |
高可用性 |
Windows |
|||
修正sp_pkeys KEY_SEQ欄輸出不符合主鍵中所定義之欄的順序的問題 |
SQL 引擎 |
Windows |
|||
修正執行 sp_server_diagnostics 時可能會發生的存取違規例外狀況 |
高可用性 |
Windows |
如何取得或下載此或最新的累積更新套件
附註: 在 2017 年 SQL Server 發行未來的累積更新之後,您可以從Microsoft Update Catalog下載此更新和所有先前的 CU。 不過,建議您一律安裝最新的累積更新。
下列更新可從 Microsoft Update Catalog 取得:
檔案資訊
您可以透過下列命令,以運算 SQLServer2017-KB5006944-x64.exe 檔案的雜湊來驗證下載:
certutil -hashfile SQLServer2017-KB5006944-x64.exe SHA256
檔案名稱 |
SHA256 雜湊 |
---|---|
SQLServer2017-KB5006944-x64.exe |
CCFA4DC8C7D39B2C3BC5F97067C8C57E72D7F9180AD5AABCC0B5D86E41513E66 |
此套件的英文版本具有 (或更新版本的檔案屬性) 列于下表中。 這些檔案的日期與時間是以國際標準時間 (UTC) 表示。 當您檢視檔案資訊時,它會轉換為當地時間。 若要查看 UTC 與當地時間的差異,請使用 [控制台] 中 [日期和時間] 項目的 [時區] 索引標籤。
x64 版本
SQL Server 2017 Analysis Services
SQL Server 2017 Database Services Common Core
SQL Server 2017 Data Quality Client
SQL Server 2017 資料品質
SQL Server 2017 sql_dreplay_client
SQL Server 2017 sql_dreplay_controller
SQL Server 2017 Database Services Core Instance
SQL Server 2017 Database Services Core Shared
SQL Server 2017 sql_extensibility
SQL Server 2017 Full-Text Engine
SQL Server 2017 sql_inst_mr
SQL Server 2017 Integration Services
SQL Server 2017 sql_polybase_core_inst
SQL Server 2017 sql_shared_mr
SQL Server 2017 sql_tools_extensions
|
此更新注意事項
若要套用此累積更新套件,您必須執行 SQL Server 2017。
套用此累積更新套件之後,您可能必須重新開機電腦。
如果要使用此套件的其中一個 Hotfix,您不需要對登錄進行任何變更。
本文也提供下列情況的重要資訊:
-
心律調節器 :在使用最新版 Pacemaker 的分配中會進行行為變更。 我們提供緩和方法。
-
查詢存放區 :如果您使用查詢存放區且先前已安裝 Microsoft SQL Server 2017 累積更新 2 (CU2) ,則必須執行此腳本。
Analysis Services CU 組建版本
從 2017 年 SQL Server 日開始,Analysis Services 組建版本號碼與 SQL Server 資料庫引擎 組建版本號碼不相符。 如需詳細資訊,請參閱 驗證 Analysis Services 累積更新組建版本。
CU) (累積更新
累積更新 (CU) 現在可從 Microsoft 下載中心下載。
下載中心僅提供 2017 年 SQL Server 發行的最新 CU。
適用于 Linux 的 CU 套件可在 HTTPs://packages.microsoft.com/取得。
注意事項
-
每個最新累積更新都包含 SQL Server 已安裝版本的之前累積更新。
-
SQL Server 累積更新的憑證級別與 Service Pack 相同,您可以放心安裝。
-
我們建議您依照下列指導方針,持續且主動地安裝 CU:
-
歷史資料表明,很多支援案例都涉及已發行累積更新中已解決的問題。
-
累積更新套件含的附加價值可能高於 Hotfix。 包括支援能力、可管理性和可靠性更新。
-
-
建議您先測試累積更新,再將這些累積更新部署到生產環境中。
重要
所有分配 (包括使用最新版Pacemaker 套件 1.1.1.18-11.el7 的最新可用 PACEEL 7.3 和 7.4) ,如果其值為 False,就會為start-failure-is-對性叢集設定帶來行為變更。 這項變更會影響容錯移轉工作流程。 如果主要複本發生中斷,叢集應該會失敗到其中一個可用的次要複本。 相反地,使用者會注意到叢集持續嘗試啟動失敗的主複本。 如果該主要複本因為永久中斷) 而無法上線 (,叢集絕對不會故障移至另一個可用的次要複本。
此問題會影響所有SQL Server版本,無論它們所使用的累積更新版本為何。
若要減輕此問題,請使用下列其中一種方法。
方法 1
請依照下列步驟執行:
-
從現有叢集移除 開始失敗-是嚴重 覆寫。
# RHEL, Ubuntu pcs 屬性 unset start-failure-is-對性 # 或 pcs 屬性 set start-failure-is-對性=true # SLES crm configure property start-failure-is-fatal=true -
減少 叢集重新檢查間隔 值。
# CLUSTEREL, Ubuntu pcs 屬性 set cluster-recheck-interval=<Xmin> # SLES crm configure property cluster-recheck-interval=<Xmin> -
將 failure-timeout meta 屬性新增至每個 AG 資源。
# 按一下、Ubuntu pcs 資源更新 ag1 meta failure-timeout=60s # SLES crm configure edit ag1 # 在文字編輯器中,在任何'param's 之後和任何 'op's 之前,新增 'meta failure-timeout=60s'注意 在此代碼中,視需要以 <Xmin>的值取代。 如果複本失敗,叢集會嘗試在受 失敗逾時 值和 叢集重新檢查間隔 值系結的時間間隔重新開機複本。 例如,如果 失敗逾時 設定為 60 秒,且 叢集重新檢查間隔 設為 120 秒,則會以超過 60 秒但小於 120 秒的時間間隔嘗試重新開機。 建議您將 失敗逾時 設定為 60 秒 ,並將 叢集重新檢查間隔 設定為大於 60 秒的值。 建議您不要將 叢集重新檢查間隔 設定為小值。 如需詳細資訊,請參閱 Pacemaker 檔或參閱系統提供者。
方法 2
還原為 Pacemaker 版本 1.1.16。
重要
如果您使用 查詢存放區 且要從 SQL Server 2017 累積更新 2 (CU2) 直接更新至 SQL Server 2017 累積更新 3 (CU3) 或後續累積更新,則必須執行此腳本。 如果您先前已安裝 SQL Server 2017 累積更新 3 (CU3) 或任何之後SQL Server 2017 累積更新,則不需要執行此腳本。
SET NOCOUNT ON;
DROP TABLE IF EXISTS #tmpUserDBs;
SELECT [database_id], 0 AS [IsDone]
INTO #tmpUserDBs
FROM master.sys.databases
WHERE [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) > 0
BEGIN
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 + ']''
END
END
ELSE
BEGIN
PRINT ''- Query Store not enabled in database [' + @userDB + ']''
END')
UPDATE #tmpUserDBs
SET [IsDone] = 1
WHERE [database_id] = DB_ID(@userDB)
END
當您將更新部署到混合式環境 (如 AlwaysOn、複製、叢集和鏡像) 時,建議您在部署更新之前參照下列文章:
-
SQL Server容錯移轉叢集滾動更新與 Service Pack 程式
注意如果您不想使用滾動更新程式,請依照下列步驟來套用更新:-
在被動式節點上安裝更新。
-
在作用中的節點上安裝更新 (需要重新開機服務) 。
-
-
升級和更新使用最小停機時間和資料遺失
的可用性群組伺服器注意如果您已啟用 AlwaysOn 搭配SSISDB目錄,請參閱SSIS 與 AlwaysOn的相關資訊,以取得如何在這些環境中套用更新的詳細資訊。
SQL Server 累積更新目前提供多語言版本。 因此,此累積更新不僅僅特定於一種語言。 它適用於所有支援語言。
一個累積更新套件包含所有 SQL Server 2017 元件的所有可用更新, (功能) 。 不過,累積更新套件只會更新您選取要送修SQL Server實例上目前安裝的元件。 例如,如果 SQL Server 功能 (套用此 CU 之後,Analysis Services) 新增至實例,您必須重新套用此 CU,才能將新功能更新到此 CU。
如果發生其他問題,或是需要進行任何疑難排解,您可能需要建立服務要求。 一般的支援成本將適用于其他支援問題,以及不符合此特定累積更新套件資格的問題。 如需 Microsoft 客戶服務及支援電話號碼的完整清單,或是建立個別的服務要求,請移至 Microsoft 支援服務網站。
如何解除安裝此更新
-
在 主控台 中,開啟[程式和功能] 專案,然後選取 [檢視已安裝的更新]。
-
在 SQL Server 2017底下找出與此累積更新套件相對應的專案。
-
按住 (或以右鍵按一下) 該項目,然後選取 [解除安裝]。
若要在 Linux 上卸載此 CU,您必須將套件回復到先前的版本。
如需有關如何復原安裝的詳細資訊,請參閱復原SQL Server。
協力廠商資訊免責聲明
本文提及的協力廠商產品是由獨立廠商所製造,與 Microsoft 無涉。 Microsoft 不以默示或其他方式提供任何關於這些產品的效能或可靠性保證。