
CU15 چه تغییراتی برای SQL Server 2022 داره
- تکنولوژی
- 1404/02/29
- 29 اردیبهشت 1404
در این مقاله به بررسی تغغیرات موجود در cumulativeupdate15 برای SQl Server 2022 میپردازیم
سناریوی هر کدوم رو هم در صورت امکان برای تست در محیط لوکال ارایه میدیم
نکته اینکه برای سناریو های تست دو تا راه هست
1) یکی اینکه دو تا Instance روی دو تا سرور یا VM نصب کرنید یکی شون رو به نسخه قبلی آپدیت کنید و یکی شون رو به نسخه بعدی
2) یکی دیگه هم میتونید تست ها رو ی روی محیط خودتون قبل از اپدیت انجم بدین و بعد از آپدیت کردن مجددا بررسی کنید
خب بریم سراغ تغییران این آپدیت
KB5041321 – Cumulative Update 15 for SQL Server 2022
در ادامه، سناریوی تست برای هر مورد ذکرشده ازCU15 درSQL Server 2022 آورده شده است. مواردی که در محیط لوکال(single-node) قابل تست هستند همراهبا اسکریپت و توضیحات کامل ارائه شدهاند. مواردی که نیاز به محیط خاص (مثلAlways On یا DAG) دارند فقط توضیح داده شدهاند.
سناریوهایتست قابل اجرا در محیط لوکال(Single-Node)
Bug 3285880 – Authentication issue with domain account in Master Data Services
قابل تست در محیط لوکال؟: خیر، نیاز بهdomain environment دارد.
توضیح: این اصلاح مربوط به احراز هویتdomain account در ابزار کانفیگMaster Data Services است. در محیط لوکال بدونdomain controller قابل تست نیست.
Bug 3354272 – Detecting Domain Controller
قابل تست در محیط لوکال؟: خیر، تشخیصdomain controller فقط در محیطی باActive Directory امکانپذیر است.
Bug 3459086 – VSS Writer Freeze Issue
قابل تست در محیط لوکال؟: بله
توضیح سناریو تست:
- نصب یک ابزار پشتیبانگیری مثلVeeam Agent یا استفادهازWindows Server Backup.
- اجرایfull backup ازSQL Server با استفاده ازVSS.
تست:
Code |
powershell # دستور شروع بکاپ باVolume Shadow Copy wbadmin start backup -backupTarget:D: -include:C: -quiet |
بررسی:
- درEvent Viewer بررسی کنید کهVSS Writer مربوط بهSQL Server با موفقیتFreeze انجام داده یا خیر.
- در فایل لاگSQL (ERRORLOG) دنبال پیامهای مرتبط باfreeze/unfreeze بگردید.
Bug 3338395 – PolyBase Error on Multiple TCP Ports
قابل تست در محیط لوکال؟: بله، اگرPolyBase فعال باشد.
سناریو تست:
- فعالسازیPolyBase:
Code |
EXEC sp_configure ‘polybase enabled’, 1; RECONFIGURE; |
- تنظیم چند پورت برایSQL Server (درSQL Server Configuration Manager).
- ریستارت سرویسSQL.
- بررسی لاگ برای خطایArgumentException مربوط به پورت.
Bug 3101865 – MODEL parameter validation in PREDICT
قابل تست در محیط لوکال؟: بله
اسکریپت تست:
Code |
— ساخت مدل ساده CREATE TABLE ModelInput (Input1 FLOAT, Input2 FLOAT); INSERT INTO ModelInput VALUES (1.1, 2.2); — اجرایPREDICT با مدل اشتباه SELECT PREDICT(MODEL = ‘invalid_model’, DATA = ModelInput)
|
انتظار: پیغام خطا در صورت استفاده از مدلنامعتبر. CU15 باید خطا را به صورت واضحتر مدیریت کند.
Bug 3181615 – CDC DDL Lockdown
قابل تست در محیط لوکال؟: بله
اسکریپت تست:
Code |
USE master; CREATE DATABASE TestCDC; GO USE TestCDC; — فعالسازیCDC EXEC sys.sp_cdc_enable_db; — غیرفعالسازیCDC EXEC sys.sp_cdc_disable_db; — اجرایsp_cdc_vupgrade باید با پیغام بهتری مواجه شود EXEC sys.sp_cdc_vupgrade;
|
Bug 3338274 – Case-sensitive collation error in replication
قابل تست در محیط لوکال؟: بله، با تنظیمcollation
اسکریپت تست:
CODE |
— ساخت دیتابیس باcollation حساس به حروف CREATE DATABASE TestCase COLLATE Latin1_General_CS_AS; — اجرای ذخیرهسازی که نیاز بهpublisher دارد USE TestCase; EXEC sp_validate_redirected_publisher;
|
نتیجه: بررسی شود که خطا 21890 با دقت بیشتری مدیریت شده است. |
Bug 3362871 – Checkpoint error with Change Tracking
قابل تست در محیط لوکال؟: بله
اسکریپت تست:
Code |
USEmaster; CREATEDATABASECTTest; GO ALTERDATABASECTTestSETCHANGE_TRACKING= ON (CHANGE_RETENTION= 2 DAYS, AUTO_CLEANUP= ON); USECTTest; CREATETABLEct_table (idINTPRIMARYKEY, valNVARCHAR(100)); ALTERTABLEct_table ENABLE CHANGE_TRACKING; — اجرای چند عملیات و سپس checkpoint INSERTINTOct_tableVALUES(1, ‘test‘); CHECKPOINT;
|
بررسی لاگ: خطای 2601 نباید رخ دهد.
سناریوهایفقط قابل توضیح (نیاز به محیط پیچیده(
Bug 3287656 – DAG assertion failure
- فقط در محیط دارایDAG (Distributed Availability Group) قابل تست است.
- CU15 بررسیمیکند کهDAG فقط شامل ۲AG باشد.
Bug 3301982 – Assertion on changing database owner in readable secondary
- نیاز بهAlways On Availability Group و یکsecondary readable دارد.
Bug 3394373 – Transactional Replication error after AG failover
- نیاز بهsetup باreplication وAvailability Group.
- خطا زمانی رخ میدهد کهLog Reader Agent تکراری اجرا شودبعد ازfailover.
جمعبندی تستدر محیط لوکال
انجام شد | نیاز بهاسکریپت | قابل تستدر لوکال | عنوان | Bug ID |
– | – | احراز هویتdomain | 3285880 | |
– | – | تشخیصDC | 3354272 | |
بله | VSS Writer | 3459086 | ||
– | – | DAG غلط | 3287656 | |
– | – | تغییر مالک درsecondary | 3301982 | |
بله | خطایPolyBase | 3338395 | ||
بله | مدل اشتباه درPREDICT | 3101865 | ||
بله | قفلDDL درCDC | 3181615 | ||
بله | collation درreplication | 3338274 | ||
بله | خطای 2601 درcheckpoint | 3362871 | ||
– | – | AG replication error | 3394373 |
KB5041321 – Cumulative Update 15 for SQL Server 2022
This article describes Cumulative Update package 15 (CU15) for Microsoft SQL Server 2022. This update contains 14 fixes that were issued after the release of SQL Server 2022 Cumulative Update 14, and it updates components in the following builds:
- SQL Server – Product version: 16.0.4145.4, file version: 2022.160.4145.4
- Analysis Services – Product version: 16.0.43.233, file version: 2022.160.43.233
Known issues in this update
Patching error for secondary replicas in an availability group with databases enabled replication or CDC
اینمشکل مربوط به بروزرسانی تجمعیCU13 درSQL Server 2022 است و در نسخهCU16 رفع شده است. خلاصه مشکل و راهحلها:
مشکل اصلی:
- درCU13، یک اصلاح(fix 2998350) وارد شد که باعث شد دیتابیسهایSecendry در صورت داشتن (replication) یاChange Data Capture (CDC) و بودن در (Availability Group) در هنگام راهاندازی بهطورقابل اعتماد استارت بزنند.
- اما این اصلاح مشکل ایجاد کرد: هنگامیکهSQL Server در حالت تککاربره(single-user mode) اجرا میشود، دیتابیسهایAG نمیتوانند عملیات بازیابی(recovery) راآغاز کنند.
- Setup در این حالت در حین نصب، درحالت تککاربره اجرا میشود و نمیتواند به دیتابیسها دسترسی پیدا کند، کهموجب خطا و شکست مراحل نصب میشود.
خطای رخداده:
- خطای مرتبط با انتظار برایراهاندازی دیتابیسها درگیر که نام آنها در گزارش خطا ذکر شده و شناسه گروهنادرست گزارش میشود (کد خطا: x851A001A0 )
- پیغام معمول: invalid Group ID
راهحلهایموقتی قبل از نصب بروزرسانی:
- فعال کردن Trace Flag 12347 که تغییرات اصلاحCU13 رابرمیگرداند (یعنی مشکل مربوط بهCU13 را رفعمیکند).
- حذف یا غیرفعال کردنCDC یا replication در دیتابیساز Ag
راهحلنهایی و رفع کامل:
- این مشکل در SQL Server 2022 CU16 کاملاًبرطرف شده
Platform | Component | Fix area | Description | Bug reference |
Windows | Master Data Services | Master Data Services | Fixes a domain account authentication issue in the configuration tool by adding an auto-retry method to the account validation part, which will use the UPN format and try to authenticate using three separate authentication methods after the authentication fails in SAM format and default. این اصلاح مربوط به ابزارپیکربندی است و مشکل احراز هویت حساب کاربری دامنه را برطرف میکند. در ادامهخلاصه توضیحات: مشکل حل شده
راهحل:
نتیجه:
| |
Windows | Master Data Services | Master Data Services | Updates the criterion for determining the current machine type and the judgment conditions of whether it is a domain controller. این بهروزرسانیمربوط به روششناسی تشخیص نوع ماشین (سیستم) و وضعیت بودن آن به عنوانکنترلکننده دامنه(Domain Controller) است. به طور خلاصه:
این تغییرات کمک میکند تا سیستمها بهتر و دقیقتر بتوانندوضعیت ماشین را شناسایی کنند، که ممکن است در فرآیندهای مدیریتی و امنیتی موثرباشد. | |
Windows | Backup Restore | SQL Server Engine | Fixes an issue in which the SQL Server Volume Shadow Copy Service (VSS) Writer can’t freeze the database during a VSS-based backup. For more information, see known issue two of SQL Server 2022 CU14. این اصلاح مشکلمربوط به سرویس Volume Shadow Copy Service (VSS) Writer درSQL Server است. خلاصه موارد مهم:
این اصلاح تضمین میکند که فرآیند پشتیبانگیریهایVSS بهتر و بدون مشکل انجام شود، و دیتابیس در حالت مناسب قرار گیرد. | |
All | High Availability and Disaster Recovery | SQL Server Engine | Fixes an assertion failure (Location: ListenerSpec.cpp:480; Expression: totalUsed + cbListenerName <= cbObj) that you encounter when creating a distributed availability group (DAG) and incorrectly specifying the number of availability groups in it to be other than two. در زمان تعریف تعداد دگ ها رو اشتباه بهش بگیم این اصلاح مشکلمربوط به خطای assertion failure است که هنگام ساختن یک (DAG) رخ میدهد، به ویژه زمانی که تعدادAg در آن نادرست و غیر از دو تعیینشده باشد. توضیحات مختصر:
راهحل:
| |
All | Metadata | SQL Server Engine | Fixes an assertion failure (Location: MetadataVersion.cpp:71; Expression: !CFeatureSwitchesMin::GetCurrentInstance()->FEntityVerStoreCsnCheckEnabled() || newInfo != InvalidXts()) that you encounter when you try to change the database owner on a readable secondary replica of an Always On availability group. یک ادعای اشتباه رو که در نود سکندری می تونی owner یک دیتابیس یا یک گروه رو عوض کنی اصلاح کرده. | |
All | PolyBase | SQL Server Engine | Fixes an issue in which PolyBase throws the following error at service startup if the SQL Server instance is configured to listen on multiple TCP ports: System.ArgumentException: Unable to parse port, instance = ‘<InstanceName>’, text = ‘<Text>’ اگر اینستنس اس کیو ال برای شنیدن چندین پورت Tcp گانفیگ شده باشد سرویس polybaseموقع راه اندازی دچار خطا میشه که برطرف شده | |
All | Query Execution | SQL Server Engine | Adds a validation for the MODEL parameter when running PREDICT to avoid errors due to the input of wrong models. یک ویرایش اضافه کرده برای Model parametr که پیش بینی میکنه برای جلوگیری از خطا | |
All | Replication | SQL Server Engine | Adds a new security feature to implement change data capture (CDC) metadata data definition language (DDL) lockdown, preventing errors that might occur when running sp_cdc_vupgrade against a database with CDC disabled. یک ddlاضافه کرده برای جلوگیری از خطا زمان اجرای sp_cdc_vupgrade ag، این sp توسط ادمین اجرا میشهامعمولاهنگام بروزرسانی یا تغییر نسخهیCDC در پایگاه دادهها اجرا میشود تا سازگاریو عملکردCDC پس از تغییرات حفظ شود. | |
All | Replication | SQL Server Engine | Fixes the following error 21890 that you encounter when you use the case-sensitive collation and run sp_validate_redirected_publisher: The SQL Server instance ‘<InstanceName>’ with distributor ‘<DistributorName>’ and distribution database ‘<DatabaseName>’ cannot be used with publisher database ‘<DatabaseName>’. Reconfigure the publisher to make use of distributor ‘<DistributorName>’ and distribution database ‘<DatabaseName>’. این خطا زمانی اتفاق میفته که Case-sensetive کولیشن استفاده کنیم و sp زیر رو هم اجرا کنیم sp_validate_redirected_publisher | |
All | Replication | SQL Server Engine | Fixes an issue with checkpoint operation in which the following error 2601 occurs when SQL Server tries to perform a checkpoint operation on the database that has change tracking enabled: <DateTime> Error: 2601, Severity: 14, State: 1. <DateTime> Cannot insert duplicate key row in object ‘<ObjectName>’ with unique index ‘<IndexName>’. The duplicate key value is <KeyValue>. این مشکل مربوطبه خطای 2601 است که هنگام انجام عملیاتcheckpoint در دیتابیسی با فعالسازیChange Tracking رخ میدهد. خطا نشان میدهد کهسیستم تلاش میکند یک رکورد تکراری در یک جدول با کلید یکتا وارد کند، اما چنینرکوردی قبلاً وجود دارد. علت مشکل:
| |
Windows | Replication | SQL Server Engine | Fixes an issue in which error 18752 occurs and transactional replication stops working when you use a heavy workload in combination with availability groups and after a failover occurs. Error message: Only one Log Reader Agent or log-related procedure (sp_repldone, sp_replcmds, and sp_replshowcmds) can connect to a database at a time. If you executed a log-related procedure, drop the connection with session ID <SessionID> over which the procedure was executed or execute sp_replflush over that connection before starting the Log Reader Agent or executing another log-related procedure. این خطا زمانی اتفاق می افته که یک transactional replacation استاپ میشه کارش وقتی که یک ورک لود سنگین پس از یک failover اتفاق میفته در ان زمان سیستم اجازه نمیده که پروسیجرهای مرتبط با لاگ به دیتابیس در اون لحظه وصل بشن. | |
All | Storage Management | SQL Server Engine | Before the fix, the SQL Server error log records many messages regarding starting or stopping Extended Events (XEvents) sessions. After applying the fix, starting or stopping XEvents sessions isn’t logged by default. You can enable it by turning trace flag 9714 on. قبل از برطرف شدن ،خطاهای زیادی مربوط به استارت و اسناپ شدن exten eventثبت میشد اما بعدش در صورتی که بخواهیم این اتفاق بیفته باید فلگ 9714رو فعال کنیم. | |
All | Temporal | SQL Server Engine | Fixes an issue in which table and column names that are read from database metadata aren’t correctly quoted in some cases when building internal SQL Server batches in stored procedures that manage temporal tables. After applying the fix, quoting is completed correctly. خطایی رو فیکس کرده که وقتی یک جدول یا ستونی از متادیتای پایگاه داده خونده میشه و نامشون داخل گیومه یا براکت ،در بعضی موارد که یک بچ داخل اس پی که جداول تمپرال رو منیج میکنن به درستی تشخیص داده نمیشن رو اصلاح کرده | |
All |
|
|
|
|