SQL Server 2017 Update 4 (KB4056498) Released: Key Improvements & Fixes
This article provides comprehensive details regarding Cumulative Update Package 4 (CU4) for Microsoft SQL Server 2017. Released on February 20, 2018, this update, version 14.0.3022.28, incorporates a total of 54 crucial fixes reported after the release of Cumulative Update 3 for SQL Server 2017. CU4 is designed to enhance the stability, performance, and reliability of your SQL Server 2017 instances by updating various key components. This document outlines the significant improvements and fixes included in this update, guidance for obtaining and installing CU4, and important notices for specific configurations.
Summary of Cumulative Update 4¶
Cumulative Update 4 for SQL Server 2017 is a significant release that addresses a range of issues across different SQL Server components. This update brings the product version of SQL Server to 14.0.3022.28 and the file version to 2017.140.3022.28. For Analysis Services, the update changes the product version to 14.0.204.1 and the file version to 2017.140.204.1. These updates are essential for maintaining an optimal and secure SQL Server environment.
Important Notice for Linux Deployments with Pacemaker¶
Users implementing SQL Server 2017 on Linux with Pacemaker-managed Availability Groups should be aware of potential symptoms after installing CU4. Specifically, the following issues might arise:
- Primary Replica Demotion: Pacemaker may immediately demote the primary replica of the Availability Group (AG) resource to a secondary replica.
- Failure to Promote Secondary Replica: Subsequently, Pacemaker will fail to promote any secondary replica back to a primary replica role.
- No Errors in
crm_mon: Thecrm_moncommand will not display any errors originating from the ‘monitor’, ‘notify’, or ‘promote’ actions of theocf:mssql:agresource agent. - Promotion Score of ‘-1’: Executing
crm_simulate -sLwill reveal a promotion score of ‘-1’ on all replicas within the AG resource.
To address this issue, Microsoft recommends the following mitigation strategies:
- Apply Patch: Implement the
mssql-server-ha.cu4.patchavailable on GitHub to the/usr/lib/ocf/resource.d/mssql/agfile on all nodes within the Pacemaker cluster where themssql-server-hapackage is installed. - Upgrade to CU5: Upgrade to Cumulative Update 5 (CU5) for SQL Server 2017, which is the recommended and more comprehensive solution.
- Revert to CU3: Alternatively, revert back to Cumulative Update 3 (CU3) if immediate resolution is needed and upgrading to CU5 is not feasible at the moment.
Key Improvements and Fixes in CU4¶
This cumulative update incorporates a wide array of fixes and enhancements across various SQL Server 2017 components. These address critical bugs and improve the overall functionality and performance of SQL Server. Below is a summary of the key fix areas and components affected by CU4:
Analysis Services Enhancements¶
Several fixes within CU4 target Microsoft Analysis Services, enhancing its performance and stability. These include:
- Increased Parallelism for External Queries: Improvement in the parallelism of external queries executed by the modern Get Data experience in SSAS 2017 Tabular models. This enhances the speed of data retrieval and processing.
- Crash Fix for Database Rename: Addresses an intermittent crash issue in SSAS 2016 and 2017 that occurred when renaming a multidimensional database using scripts. This fix improves the reliability of database management operations.
- Correct ChildCount Estimates: Resolves an issue where non-admin roles could not receive accurate
ChildCountestimates for parent/child dimension leaf members in SSAS. This fix ensures accurate data representation for all user roles. - Improved Tabular Model Processing Time: Fixes a problem where processing tabular model databases, tables, or partitions took longer in SSAS 2017. This improvement reduces processing times and enhances overall performance.
- Access Violation Error Fix: Addresses an access violation error in SSAS that occurred when executing an MDX query in SQL Server 2017. This fix enhances query execution stability.
- Internal Error Fix for Hierarchy Drilldown: Resolves an internal error encountered when drilling down hierarchy members in SSAS 2016 and 2017 in multidimensional mode. This fix improves the user experience when navigating multidimensional data.
- Data-Driven Subscription Failure Fix: Corrects an issue where data-driven subscriptions failed after upgrading from SSRS 2008 to SSRS 2016. This ensures the smooth functioning of reporting services subscriptions.
- “AdomdConnectionException” Error Fix: Fixes an “AdomdConnectionException” error that occurred when SSRS 2016 and 2017 data sources used
msmdpump.dll. This resolves connectivity issues with Analysis Services data sources. - Sliding Expiration for Authentication Cookie Fix: Addresses a problem where sliding expiration for authentication cookies was not functioning and failed to redirect to the logon page in SSRS 2016 and 2017. This fix improves session management and security.
Integration Services Stability¶
CU4 includes a fix for SQL Server Integration Service packages:
- Hanging Packages with Custom Logging: Fixes an issue where SQL Server Integration Service packages would randomly hang if custom logging was enabled. This enhances the reliability of SSIS package execution, especially in environments utilizing custom logging.
Master Data Services Improvement¶
- “Request Timed Out” Error Resolution: Addresses a “Request timed out” error that occurred when changing security options for an MDS security group in SQL Server 2016 and 2017. This fix improves the responsiveness of Master Data Services security administration.
SQL Server Engine Enhancements¶
A significant number of fixes are focused on the core SQL Server Engine, covering areas from Backup and Restore to Query Optimization and High Availability.
- Database Restore with Double Slash FILENAME Fix: Resolves an issue where database restoration using the
replaceoption failed if theFILENAMEcontained a double slash operator. This fix enhances the robustness of database restore operations. - Deadlock on Clustered Columnstore Index Fix: Fixes a deadlock situation that occurred when running a parallel query on a clustered columnstore index in SQL Server 2016 and 2017. This improves concurrency and performance for queries on columnstore indexes.
- Memory Leak Fix for
sp_execute_external_scriptandsys.dm_exec_cached_plans: Addresses memory leaks caused by the system stored proceduresp_execute_external_scriptand the DMVsys.dm_exec_cached_plansin SQL Server 2017. This fix enhances memory management and system stability. PREDICTFunction Error Handling in ML Services: Improves thePREDICTfunction in SQL Server 2017 Machine Learning Services by ensuring it returns error messages for missing columns and correctly handles learning parameters for Tree/Forest models. This enhances the usability and reliability of ML Services.- Access Violation in AlwaysOn Availability Group Fix: Resolves an access violation issue that occurred on the primary replica of an AlwaysOn Availability Group in SQL Server. This fix improves the stability of AlwaysOn configurations.
- REDO Thread Availability Fix in Availability Groups: Fixes an issue where a REDO thread was not available in the secondary replica after an availability database was dropped in SQL Server. This enhances the reliability of Availability Group operations.
- “Msg 3948” Error Fix on Secondary Availability Group: Addresses a “Msg 3948” error encountered when running a query on the secondary replica of a secondary availability group in SQL Server 2016 and 2017. This fix improves the functionality of secondary availability groups.
- Log Shipping Failure with Always On AGs Fix: Resolves a failure in log shipping when used in conjunction with Always On Availability Groups in SQL Server 2016 and 2017. This ensures the proper functioning of disaster recovery strategies combining log shipping and Always On.
- Pacemaker Demotion Issue on Linux (KB4076982): Fixes the Pacemaker issue described earlier, where Pacemaker demoted the existing primary replica of an AlwaysOn AG in SQL Server 2017 on Linux and never promoted a new one.
- Access Violation in Distributed Availability Groups Fix: Addresses an access violation that occurred when DMV queries were run against a distributed availability group in SQL Server. This improves the stability of distributed AG configurations.
- Long Database Recovery Time Fix with In-Memory OLTP: Resolves an issue where database recovery took a long time when it contained memory-optimized tables in SQL Server 2016 and 2017. This fix reduces database recovery times for databases utilizing In-Memory OLTP.
- High CPU Usage Fix with Large Index on Memory-Optimized Table: Fixes high CPU usage when a large index was used in a query on a memory-optimized table in SQL Server 2016 and 2017. This improves query performance on memory-optimized tables.
- In-Memory Database Hang During Recovery Fix: Addresses an issue where In-Memory databases in an Availability Group would hang during recovery in SQL Server 2017. This enhances the reliability of In-Memory databases in AG environments.
- Move Master Database and Error Log on Linux Improvement: Provides an improvement to allow moving the master database and error log file to another location in SQL Server 2017 on Linux. This enhances manageability and customization on Linux platforms.
- Performance Improvement on Smaller Linux Systems: Improves the performance of SQL Server 2017 on smaller systems running Linux. This makes SQL Server more efficient in resource-constrained environments.
- Duplicate GUID Fix for
NEWSEQUENTIALIDon Linux: Fixes an issue where theNEWSEQUENTIALIDfunction generated duplicate GUIDs after SQL Server 2017 on Linux was restarted. This ensures the correct functioning of GUID generation. - Unexpected Memory Consumption Fix on Linux with TCP: Addresses unexpected memory consumption when TCP protocol connections were used for SQL Server 2017 on Linux. This improves resource management in Linux deployments.
- Database Schema Upgrade/Downgrade Fix on Linux: Resolves an issue where database schemas were not upgraded or downgraded when installing or uninstalling a cumulative update in SQL Server 2017 on Linux. This ensures proper schema management during updates.
msdbCompatibility Level Fix: Fixes an issue where the compatibility level of themsdbdatabase remained at 130 after performing a slipstream upgrade to SQL Server 2017. This ensures themsdbdatabase operates at the correct compatibility level.- Error 14684 Fix for Management Data Warehouse: Addresses Error 14684 when reconfiguring Management Data Warehouse in a named instance of SQL Server 2016 and 2017. This improves the reliability of MDW configuration.
- PolyBase Installation with JRE 9 Fix: Fixes an issue where PolyBase failed to install because the installer did not recognize JRE 9 when installing SQL Server 2017. This ensures successful PolyBase installation with newer JRE versions.
- Silent Failure Fix for
UPDATEwith Nonexistent Partition Function: Resolves a silent failure of theUPDATEstatement when referencing a nonexistent partition function in theWHEREclause in SQL Server 2014 or 2017. This improves error reporting and code debugging. - “Invalid comparison due to NO COLLATION” Assert Fix: Fixes an “Invalid comparison due to NO COLLATION” retail assert that occurred in SQL Server 2014 and 2017. This improves data comparison operations.
- Assertion Fix with Memory-Optimized Table Variable as TVP: Addresses an assertion that occurred when passing a memory-optimized table variable into a stored procedure as a table-valued parameter in SQL Server 2016 and 2017. This enhances the use of memory-optimized table variables in stored procedures.
- Inconsistent
CXPACKETandCXCONSUMERWait Types Fix: Resolves inconsistent results forCXPACKETandCXCONSUMERwait types for certain parallel query plans in SQL Server 2017. This improves the accuracy of wait statistics for parallel queries. - Assertion Error Fix with Stored Procedure Referencing Large Object: Fixes an assertion error when executing a stored procedure that referenced a large object in SQL Server 2014 and 2017. This enhances the stability of stored procedures handling large objects.
- Non-Optimal Query Plan Choice Fix: Addresses a non-optimal query plan choice that caused poor performance when values outside the range represented in statistics were searched in SQL Server 2016 and 2017. This improves query optimizer decisions.
- Bad Results Fix for Batch Mode Hash Aggregate Operator: Fixes an issue where a
SELECTquery using a batch mode hash aggregate operator that counted multiple nullable columns returned incorrect results in SQL Server. This ensures accurate query results with batch mode operations. - Error Fix for Online Index Rebuild on Single Partition: Resolves an error encountered when rebuilding a single partition of an index online in SQL Server 2014 and 2016. This improves online index maintenance operations.
- Change Data Capture Enable/Disable Fix After Attach: Fixes an issue where change data capture could not be enabled or disabled for a database after attaching it in SQL Server 2014 or 2017. This ensures proper CDC functionality after database attachment.
- Change Data Capture Not Working Fix: Addresses a general issue where change data capture was not functioning in SQL Server 2017. This fix restores CDC functionality.
- Error Fix with
GEOGRAPHY_AUTO_GRIDorGEOMETRY_AUTO_GRIDin Replication Article: Resolves an error when a SQL Server replication article contained eitherGEOGRAPHY_AUTO_GRIDorGEOMETRY_AUTO_GRID. This fix improves replication with spatial data types. - Login Creation Based on Parent Domain User Fix on Linux: Fixes an issue where creating a login based on a user belonging to the parent domain failed in SQL Server 2017 on Linux. This enhances security management in Linux environments.
- Long Compilation Time Fix for String/Binary to XML Cast: Addresses long compilation times for queries that cast string or binary data to XML in SQL Server 2016 and 2017. This improves query performance for XML-related operations.
- High CPU Consumption Fix with Temp Table Inserts: Resolves an issue where many consecutive transactions inserting data into a temp table in SQL Server 2016 and 2017 consumed more CPU than in SQL Server 2014. This optimizes CPU usage for temp table operations.
- Service Broker Hung Session Fix with XML Message: Fixes an issue where processing an XML message through Service Broker resulted in a hung session in SQL Server 2016 and 2017. This enhances the reliability of Service Broker message processing.
- Wrong Values Fix for
sys.dm_os_windows_infoDMV: Correctssys.dm_os_windows_infoDMV to return correct values for Windows 10 and Windows Server 2016. This ensures accurate system information reporting. - Memory Dump Fix for “Stalled IOCP Listener” and “non-yielding IOCP listener”: Addresses memory dumps generated for “Stalled IOCP Listener” and “non-yielding IOCP listener” after SQL Server restart. This improves system stability after restarts.
- SQL Server Shutdown After Restart with C2 Audit Mode Fix: Fixes an issue where SQL Server would shut down after a restart if C2 audit mode was enabled. This ensures SQL Server functions correctly with C2 audit mode.
- Long Memory Ramp-Up Phase Fix After TF 834 on Linux: Resolves an issue where the memory ramp-up phase was excessively long after Trace Flag 834 was enabled in SQL Server 2017 on Linux. This improves startup times in Linux environments.
- Out of Memory Error Fix with Low Virtual Address Space: Addresses an out-of-memory error when the virtual address space of the SQL Server process was very low in SQL Server 2014 and 2017. This enhances memory management under stress conditions.
- Thread Pool Exhaustion and
CMEMTHREADContention Fix: Fixes thread pool exhaustion andCMEMTHREADcontention in AlwaysOn Availability Groups with data seeding in SQL Server 2016 and 2017. This improves AG performance during data seeding. - “Incompletely installed” Error Fix on Feature Selection Page: Resolves an “Incompletely installed” error on the Feature Selection page when modifying the current installation of SQL Server 2016 SP1 or SQL Server 2016 SP1 CU5. This improves the update and modification process.
Obtaining Cumulative Update 4¶
Cumulative Update 4 for SQL Server 2017 is available through multiple channels to suit different deployment needs:
For Windows (Recommended)¶
The recommended method for obtaining CU4 on Windows is through the Microsoft Download Center.
Download the latest cumulative update package for SQL Server 2017 now
If the download page is not accessible, you can contact Microsoft Customer Service and Support to obtain the package.
From Microsoft Update Catalog for Windows¶
Alternatively, CU4 is also available from the Microsoft Update Catalog. This platform allows you to search for and download specific updates.
Download the cumulative update package for SQL Server 2017 CU4 now
It is important to note that while older cumulative updates can be found in the Microsoft Update Catalog, it is always recommended to install the latest available cumulative update to benefit from the most recent fixes and improvements.
For Linux¶
To update SQL Server 2017 on Linux to CU4, you must first configure the Cumulative Update repository. After configuration, use the platform-specific update command to update your SQL Server packages.
For detailed installation instructions and direct links to the CU package downloads, refer to the SQL Server 2017 Release Notes.
File Information¶
File Hash Verification¶
To ensure the integrity of the downloaded package, you can verify the SHA256 hash of the SQLServer2017-KB4056498-x64.exe file using the following command in Command Prompt:
certutil -hashfile SQLServer2017-KB4056498-x64.exe SHA256
The expected SHA256 hash for SQLServer2017-KB4056498-x64.exe is:
387F9C10E2983F351171250AB0F3F80F58AADCE0139DAF0BD4D704C17E79C566
Cumulative Update Package File Details¶
The English version of this CU package contains a comprehensive set of files for various SQL Server 2017 components. The following tables provide detailed information about the files included, including file names, versions, sizes, dates, times, and platforms.
(The original article contains extensive tables listing files for “SQL Server 2017 Analysis Services”, “SQL Server 2017 Database Services Common Core”, “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”, and “SQL Server 2017 sql_tools_extensions”. For brevity, these detailed file lists are not replicated here. Please refer to the original article for complete file information.)
This extensive list of files indicates the breadth of components updated by CU4, ensuring a holistic update across your SQL Server 2017 installation.
Important Considerations Before Installation¶
Before applying Cumulative Update 4, it is crucial to consider the following:
Prerequisites¶
To apply CU4, your system must already be running SQL Server 2017. Ensure that your SQL Server 2017 instance is properly installed and functioning before proceeding with the update.
Restart Requirement¶
After applying CU4, you might be required to restart your computer to complete the installation process. It is recommended to plan for potential downtime and schedule the update during a maintenance window.
Registry Modifications¶
Applying this cumulative update package does not necessitate any manual changes to the Windows Registry.
Important Notices¶
- Pacemaker Behavioral Change: As highlighted earlier, distributions using the latest Pacemaker package (1.1.18-11.el7) exhibit a behavioral change affecting failover workflows. Review the mitigation methods provided earlier in this article if you are using Pacemaker for high availability.
- Query Store Script for CU2 Users: If you are upgrading from SQL Server 2017 Cumulative Update 2 (CU2) and utilize Query Store, you must run the provided SQL script after applying CU4. This script is essential to ensure the proper functioning of Query Store after the update. If you have already installed CU3 or a later CU, this script is not required.
Analysis Services CU Build Versioning¶
Starting with SQL Server 2017, the build version numbers for Analysis Services and the SQL Server Database Engine are intentionally decoupled. For more details on verifying the Analysis Services cumulative update build version, please see the Microsoft documentation on Verify Analysis Services cumulative update build version.
General Recommendations for Cumulative Updates¶
Microsoft recommends a proactive and ongoing approach to installing Cumulative Updates for SQL Server. Here’s why:
- Comprehensive Fixes: Each new CU includes all fixes that were part of previous CUs for the same SQL Server version.
- Service Pack Level Certification: SQL Server CUs undergo rigorous testing and are certified to the same standards as Service Packs, ensuring a high level of reliability and stability.
- Proactive Issue Resolution: Historical data indicates that a significant portion of support cases are related to issues already addressed in released CUs. Installing CUs proactively helps prevent encountering known problems.
- Added Value Beyond Hotfixes: CUs often contain not just bug fixes, but also valuable improvements in supportability, manageability, and overall reliability.
- Testing in Non-Production Environments: It is highly recommended to thoroughly test SQL Server CUs in non-production environments before deploying them to production systems. This allows for validation and minimizes potential risks in critical environments.
Pacemaker Notice: Behavioral Change in Detail¶
IMPORTANT: A significant behavioral change has been introduced in distributions (including RHEL 7.3 and 7.4) utilizing Pacemaker package 1.1.18-11.el7. This change pertains to the start-failure-is-fatal cluster setting when its value is set to false. This impacts the failover process in high-availability configurations.
In previous Pacemaker versions, if a primary replica failed, the cluster would fail over to an available secondary replica. However, with this new behavior, the cluster will continuously attempt to restart the failed primary replica. If the primary replica remains offline due to a permanent outage, the cluster will not initiate a failover to a secondary replica.
This issue is not specific to CU4 and affects all SQL Server 2017 versions, regardless of the installed cumulative update level.
Pacemaker Mitigation Methods¶
To mitigate this critical Pacemaker issue, two methods are recommended:
Method 1: Adjust Cluster Settings¶
This method involves modifying the Pacemaker cluster settings to restore the expected failover behavior.
-
Remove
start-failure-is-fatalOverride:- For RHEL and Ubuntu systems, execute:
pcs property unset start-failure-is-fatal # or pcs property set start-failure-is-fatal=true - For SLES systems, execute:
crm configure property start-failure-is-fatal=true
- For RHEL and Ubuntu systems, execute:
-
Decrease
cluster-recheck-intervalValue:- For RHEL and Ubuntu systems:
pcs property set cluster-recheck-interval=<Xmin> - For SLES systems:
crm configure property cluster-recheck-interval=<Xmin>
- For RHEL and Ubuntu systems:
-
Add
failure-timeoutMeta Property to AG Resource:- For RHEL and Ubuntu systems:
pcs resource update ag1 meta failure-timeout=60s -
For SLES systems, edit the AG resource configuration:
crm configure edit ag1
In the text editor, addmeta failure-timeout=60safter anyparamlines and before anyoplines. -
Note: Replace
<Xmin>with an appropriate value forcluster-recheck-interval. The interaction betweenfailure-timeoutandcluster-recheck-intervaldetermines the restart attempt interval. For example, withfailure-timeoutset to 60 seconds andcluster-recheck-intervalset to 120 seconds, the restart attempts will occur at intervals greater than 60 seconds but less than 120 seconds. Microsoft recommends settingfailure-timeoutto60sandcluster-recheck-intervalto a value greater than 60 seconds. Avoid settingcluster-recheck-intervalto very small values. Consult Pacemaker documentation or your system provider for optimal values.
- For RHEL and Ubuntu systems:
Method 2: Revert Pacemaker Version¶
The second mitigation method is to revert to Pacemaker version 1.1.16. This will restore the previous failover behavior.
Query Store Notice: Important Script for CU2 Upgraders¶
IMPORTANT: If you are upgrading directly from SQL Server 2017 Cumulative Update 2 (CU2) to CU3 or any later cumulative update, and you are using Query Store, you must execute the following SQL script on each relevant database after applying CU4.
This script is not required if you have previously installed CU3 or any subsequent 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
This script is designed to clear potentially affected query plans in the Query Store if you are upgrading from CU2.
Hybrid Environment Deployment Guidance¶
When deploying updates in hybrid environments (such as Always On, replication, cluster, and mirroring), it is crucial to follow best practices to minimize downtime and ensure a smooth update process. Microsoft recommends referring to the following articles before deploying CU4 in such environments:
- Upgrade a failover cluster instance
- Upgrade and update of availability group servers that use minimal downtime and data loss
- How to apply a hotfix for SQL Server in a transactional replication and database mirroring topology
- How to apply a hotfix for SQL Server in a replication topology
- Upgrading Mirrored Instances
- Overview of SQL Server Servicing Installation
These resources provide detailed steps and considerations for updating SQL Server in complex configurations, helping to maintain high availability and data integrity.
Language Support and Component Updates¶
SQL Server Cumulative Updates are multilingual and are not specific to a single language. This CU package is applicable to all supported languages of SQL Server 2017.
A single CU package encompasses all available updates for all SQL Server 2017 components (features). However, the installation process will only update those components that are currently installed on the specific SQL Server instance you are servicing. If you add a new SQL Server feature (e.g., Analysis Services) to your instance after applying CU4, you will need to reapply CU4 to update the newly added feature to this CU level.
Support for This Update¶
If you encounter any issues or require troubleshooting beyond the scope of this cumulative update, you may need to create a service request with Microsoft Support. Standard support costs will apply to additional support inquiries and issues that do not specifically qualify under this CU package. For a comprehensive list of Microsoft Customer Service and Support contact numbers, or to create a new service request, please visit the Microsoft support website.
Uninstalling CU4 on Windows¶
If necessary, Cumulative Update 4 can be uninstalled on Windows systems. To uninstall CU4, follow these steps:
- Open Control Panel.
- Navigate to Programs and Features and select View installed updates.
- Locate the entry corresponding to this cumulative update package under SQL Server 2017.
- Right-click the entry and select Uninstall.
- Follow the on-screen prompts to complete the uninstallation process.
Third-party information disclaimer:
The third-party products discussed in this article are manufactured by companies independent of Microsoft. Microsoft makes no warranty, implied or otherwise, regarding the performance or reliability of these products.
We encourage you to apply this Cumulative Update to ensure your SQL Server 2017 environment benefits from the latest fixes and improvements. If you have any questions or comments regarding this update, please feel free to share them below!
Post a Comment