28

KB5006944 - Cumulative Update 27 for SQL Server 2017

 2 years ago
source link: https://support.microsoft.com/en-us/topic/kb5006944-cumulative-update-27-for-sql-server-2017-79117c8f-9d54-42f8-9727-5870fe475187
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

This article describes Cumulative Update package 27 (CU27) for Microsoft SQL Server 2017. This update contains fixes that were released after the initial release of SQL Server 2017 and updates the SQL Server and Analysis services components to the following builds.

Component

Product version

File version

SQL Server

14.0.3421.10

2017.140.3421.10

Analysis Services

14.0.249.83

2017.140.249.83

Important notices

This article also provides important information about the following situations:

  • Pacemaker: A behavioral change is made in distributions that use the latest available version of Pacemaker. Mitigation methods are provided.

  • Query Store:  You must run this script if you use the Query Store and you have previously installed Microsoft SQL Server 2017 Cumulative Update 2 (CU2).

  • Analysis Services CU build version: Beginning in SQL Server 2017, the Analysis Services build version number and SQL Server Database Engine build version number do not match. For more information, see Verify Analysis Services cumulative update build version.

Cumulative updates

Cumulative updates (CU) are now available at the Microsoft Download Center.

Only the most recent CU that was released for SQL Server 2017 is available at the Download Center.

CU packages for Linux are available at https://packages.microsoft.com/.

Notes

  • Each new CU contains all the fixes that were included with the previous CU for the installed version of SQL Server.

  • SQL Server CUs are certified to the same levels as Service Packs, and should be installed at the same level of confidence.

  • We recommend ongoing, proactive installation of CUs as they become available according to these guidelines:

    • Historical data shows that a significant number of support cases involve an issue that has already been addressed in a released CU.

    • CUs may contain added value over and above hotfixes. This includes supportability, manageability, and reliability updates.

  • We recommend that you test CUs before you deploy them to production environments.

How to obtain this cumulative update package for Windows

The following update is available from the Microsoft Download Center:

Download iconDownload the latest cumulative update package for SQL Server 2017 now. 

If the download page does not appear, contact Microsoft Customer Service and Support to obtain the cumulative update package.

Note After future cumulative updates are released for SQL Server 2017, this and all previous CUs can be downloaded from the Microsoft Update Catalog. However, we recommend that you always install the latest cumulative update that is available.

How to obtain this cumulative update package for Linux

To update Linux to the latest CU, you must first have the Cumulative Update repository configured. Then, update your SQL Server packages by using the appropriate platform-specific update command.

For installation instructions and direct links to the CU package downloads, see the release notes.

Additional hotfixes that are included in this cumulative update package

VSTS bug number

KB article number

Description

Fix area

Platform

14247979

5007158

FIX: Access violation occurs when you use LOB data type with columnstore indexes in SQL Server 2017

SQL Engine

14269725

5007039

FIX: You encounter error messages 8114 or 22122 when performing change tracking cleanup

SQL Engine

Windows

14269761

5007381

FIX: Sp_execute_external_script fails after you configure new runtime and remove a new Cumulative Update patch in SQL Server 2017

SQL Engine

Windows

13748048

Prevents ghost cleanup from triggering a memory dump during latch time-out in SQL Server 2019

SQL Engine

Windows

13788019

Fixes an issue where Failover Cluster Instance (FCI) setup fails on secondary nodes of a PolyBase scale-out group in a standard edition of SQL Server 2019. Here is the error message:

The specified scaleout setting for Polybase is not the same as that specified for the active node in the SQL Server Failover Cluster. To continue, please provide False for the setting.

SQL Engine

Windows

13952862

Fixes an intra-query deadlock that occurs with certain queries when verbose truncation feature is enabled

SQL Engine

Windows

14080201

Fixes the failed assertion that occurs due to implicit conversion where predicate's precision is greater than the value:

Msg 3624, Level 20, State 1, Line LineNumber      

A system assertion check has failed. Check the SQL Server error log for details. Typically, an assertion failure is caused by a software bug or data corruption. To check for database corruption, consider running DBCC CHECKDB. If you agreed to send dumps to Microsoft during setup, a mini dump will be sent to Microsoft. An update might be available from Microsoft in the latest Service Pack or in a Hotfix from Technical Support.    

Msg 596, Level 21, State 1, Line LineNumber      

Cannot continue the execution because the session is in the kill state.    

Msg 0, Level 20, State 0, Line LineNumber

A severe error occurred on the current command. The results, if any, should be discarded.

SQL Engine

Windows

14182231

Fixes an issue where an incorrect name entry in sys.servers can result in Always On Availability Group (AG) replica being removed when the server name does not match Windows hostname

High Availability

Windows

14216911

Fixes an issue where Cumulative Update (CU) patching fails with the following message when you set default data directory to Azure Blob Storage URL:

The given path's format is not supported.

Exception Type “System.NotSupportedException”

Note To work around the issue, you can change the data default directory to a local directory and rerun the SQL patch.

Setup & Install

Windows

14232818

Fixes an issue about extended event version in Alwayson_health session is not changed automatically during Cumulative Update upgrade and downgrade

High Availability

Windows

14266687

Fixes an issue where the output of sp_pkeys KEY_SEQ column doesn't conform to the ordering of columns defined in the Primary Key

SQL Engine

Windows

14279542

Fixes an access violation exception that may occur when sp_server_diagnostics is executed

High Availability

Windows

Notes for this update

Known issues

  • Issue 1

    Under certain circumstances, there is a known uninstallation issue that affects SQL Server 2017 CU 20. After you uninstall CU 20, SQL Server doesn't come online, and the following error entry is logged in the SQL Server log:

    The script level for 'system_xevents_modification.sql' in database 'master' cannot be downgraded from XXXXXXXXX to XXXXXXXXX, which is supported by this server. This usually implies that a future database was attached and the downgrade path is not supported by the current installation. Install a newer version of SQL Server and re-try opening the database.

    The mitigation is to enable Trace Flag T902. After that, SQL Server will come online and you are done. You don't have to uninstall the program again. To upgrade to the new CU, you have to first remove this flag.

    SQL Server 2017 CU21 or any later CU release contains the fix.

  • Issue 2

    If you use the Change Tracking feature, you might encounter errors. For more information, see KB 5007039 before you apply this update package.

Hybrid environments deployment

When you deploy an update to a hybrid environment (such as AlwaysOn, replication, cluster, and mirroring), we recommend that you refer to the following articles before you deploy the update:

Language support

SQL Server Cumulative Updates are currently multilingual. Therefore, this cumulative update package is not specific to one language. It applies to all supported languages.

Components (features) updated

One Cumulative Update package includes all available updates for ALL SQL Server 2017 components (features). However, the cumulative update package updates only those components that are currently installed on the SQL Server instance you select to be serviced. If a SQL Server feature (for example, Analysis Services) is added to the instance after this CU is applied, you must re-apply this CU to update the new feature to this CU.

Support for this update

If additional issues occur or if any troubleshooting is required, you might have to create a service request. The usual support costs will apply to additional support questions and to issues that do not qualify for this specific cumulative update package. For a complete list of Microsoft Customer Service and Support telephone numbers, or to create a separate service request, go to the Microsoft support website.

How to uninstall this update on Windows

  1. In Control Panel, open the Programs and Features item, and then select View installed updates.

  2. Locate the entry that corresponds to this cumulative update package under SQL Server 2017.

  3. Press and hold (or right-click) the entry, and then select Uninstall.

More CU package information

Prerequisites

To apply this Cumulative Update package, you must be running SQL Server 2017.

Restart information

You may have to restart the computer after you apply this Cumulative Update package.

Registry information

To use one of the hotfixes in this package, you do not have to make any changes to the registry.

File hash information

File name

SHA1 hash

SHA256 hash

SQLServer2017-KB5006944-x64.exe

1109176CEC3724FEB7E21B6E6804B0876229C7C9

CCFA4DC8C7D39B2C3BC5F97067C8C57E72D7F9180AD5AABCC0B5D86E41513E66

Pacemaker notice

IMPORTANT

All distributions (including RHEL 7.3 and 7.4) that use the latest available Pacemaker package 1.1.18-11.el7 introduce a behavior change for the start-failure-is-fatal cluster setting if its value is false. This change affects the failover workflow. If a primary replica experiences an outage, the cluster is expected to fail over to one of the available secondary replicas. Instead, users will notice that the cluster keeps trying to start the failed primary replica. If that primary never comes online (because of a permanent outage), the cluster never fails over to another available secondary replica.

This issue affects all SQL Server versions, regardless of the cumulative update version that they are on.

To mitigate the issue, use either of the following methods.

Method 1

Follow these steps:

  1. Remove the start-failure-is-fatal override from the existing cluster.

    # 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. Decrease the cluster-recheck-interval value.

    # RHEL, Ubuntu     pcs property set cluster-recheck-interval=<Xmin> # SLES        crm configure property cluster-recheck-interval=<Xmin>

  3. Add the failure-timeout meta property to each AG resource.

    # 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

    Note In this code, substitute the value for <Xmin> as appropriate. If a replica goes down, the cluster tries to restart the replica at an interval that is bound by the failure-timeout value and the cluster-recheck-interval value. For example, if failure-timeout is set to 60 seconds and cluster-recheck-interval is set to 120 seconds, the restart is tried at an interval that is greater than 60 seconds but less than 120 seconds. We recommend that you set failure-timeout to 60s and cluster-recheck-interval to a value that is greater than 60 seconds. We recommend that you do not set cluster-recheck-interval to a small value. For more information, refer to the Pacemaker documentation or consult the system provider.

Method 2

Revert to Pacemaker version 1.1.16.

Query Store notice

IMPORTANT

You must run this script if you use Query Store and you are updating from SQL Server 2017 Cumulative Update 2 (CU2) directly to SQL Server 2017 Cumulative Update 3 (CU3) or any later cumulative update. You do not have to run this script if you have previously installed SQL Server 2017 Cumulative Update 3 (CU3) or any later SQL Server 2017 cumulative update.

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

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK