
CU16 چه تغییراتی برای SQL Server 2022 داره
- تکنولوژی
- 1404/02/29
- 29 اردیبهشت 1404
در این مقاله به بررسی تغغیرات موجود در cumulativeupdate15 برای SQl Server 2022 میپردازیم
سناریوی هر کدوم رو هم در صورت امکان برای تست در محیط لوکال ارایه میدیم
نکته اینکه برای سناریو های تست دو تا راه هست
1) یکی اینکه دو تا Instance روی دو تا سرور یا VM نصب کرنید یکی شون رو به نسخه قبلی آپدیت کنید و یکی شون رو به نسخه بعدی
2) یکی دیگه هم میتونید تست ها رو ی روی محیط خودتون قبل از اپدیت انجم بدین و بعد از آپدیت کردن مجددا بررسی کنید
خب بریم سراغ تغییران این آپدیت
قابل اجرا درمحیط لوکال(single-node):
-3518505 مشکل درexport دادههایتمیز شدهDQS
توضیح: هنگامexport دادههای پاکسازیشده ازData Quality Services بهSQL Server، فرمت اشتباه ذخیره میشد.
قابل تست در لوکال؟
سناریو تست:
- اجرایwizard پاکسازی داده درDQS.
- export نتایج بهSQL Server table.
- بررسی صحت فرمت دادهها در مقصد.
اسکریپت پیشنهادی (بررسی داده خروجی):
Code |
USE CleanedDataDB; SELECT TOP 10 * FROM dbo.CleanedResults; |
3586315 – Database suspend هنگامALTER SERVER CONFIGURATION
توضیح: اجرای این دستور باعثSuspend شدن ناخواستهدیتابیس میشد.
قابل تست در لوکال؟
اسکریپت تست:
Code |
— اجرای تغییرات در کانفیگ سرور ALTER SERVER CONFIGURATION SET PROCESS AFFINITY CPU = AUTO;
— بررسی وضعیت دیتابیس SELECT name, state_desc FROM sys.databases; |
انتظار: نباید هیچ دیتابیسی به حالت“SUSPENDED” برود.
-2331381 محدودیت 64 دیتابیس درBACKUP WITH METADATA_ONLY
توضیح: اجرایbackup با متدMETADATA_ONLY وقتی بیشتر از64 دیتابیس وجود داشته باشد باعث خطا میشد.
قابل تست در لوکال؟) در صورت امکان ساخت دیتابیس زیاد(
اسکریپت ساخت دیتابیس تستی:
Code |
DECLARE @i INT = 1; WHILE @i <= 70 BEGIN EXEC(‘CREATE DATABASE DBTest’ + CAST(@i AS VARCHAR(10))); SET @i += 1; END |
اسکریپتBackup:
Code |
BACKUP DATABASE DBTest1 TO DISK = ‘C:\Backup\DBTest1.bak’ WITH METADATA_ONLY; |
بررسی: بدون خطایMsg 3088 یا 925 اجرا شود.
3567000 – Deadlock درMETADATA_ONLY snapshot backup
توضیح: تحت بار زیادOLTP، backup از نوعMETADATA_ONLY به بنبست وTimeout میرسید.
قابل تست در لوکال؟ (با شبیهسازی بار زیاد)
اسکریپت تست:
Code |
— همزمان اجرای چند عملیاتINSERT وBACKUP — اجرایbackup در یکsession و ایجادload درsession دیگر BACKUP DATABASE TestDB TO DISK = ‘C:\Backup\TestDB.bak’ WITH METADATA_ONLY; |
نکته: با ابزارهایی مانندSQLQueryStress یاOStress بار را شبیهسازی کنید.
-2696108 حذف لاگ اضافی درsp_flush_ct_internal_table_on_demand
توضیح: حذف پیامهای غیرضروری از لاگ خطاSQL.
قابل تست در لوکال؟
اسکریپت تست:
Code |
— اجرای پروسیجر EXEC sys.sp_flush_ct_internal_table_on_demand; — بررسی فایلERRORLOG برای لاگهای غیرضروری |
-341978 غیرفعالسازیOLEDB Streaming درDistribution Agent
قابل تست در لوکال؟ (در صورتی کهReplication راهاندازی شده باشد)
توضیح: اجرایDistribution Agent با سوئیچ-UseOledbStreaming 0.
Code |
# اجرایReplication Distribution Agent با تنظیم جدید Distrib.exe -Publisher <Publisher> -Distributor <Distributor> -UseOledbStreaming 0 |
-3459385 توقفFull-Text Auto Crawl
قابل تست در لوکال؟
اسکریپت تست:
Code |
CREATE FULLTEXT CATALOG FTCat AS DEFAULT; CREATE FULLTEXT INDEX ON dbo.MyTable(MyColumn) KEY INDEX PK_MyTable; — درج داده و انتظار برایCrawl INSERT INTO dbo.MyTable VALUES (‘Test Data’);
— بررسی خطا یا توقف درCrawl SELECT * FROM sys.fulltext_index_catalog_usages; |
-3495266 کاراکترهای غیرمجاز درلاگAgent
قابل تست در لوکال؟
سناریو:
- تنظیمSQL Agent job به اجرا در لحظه استارت.
- بررسی فایل لاگSQLAGENT.OUT.
3530163-خطا درUpgrade مدلmodel_msdb
توضیح: ارتقا از 2017 یا 2019 به 2022 باعث توقف رویmodel_msdb میشد.
قابل تست در لوکال؟ (در صورتی که محیط آپگرید داشته باشید)
3461615 – Crash درfdhost به دلیلOOM
قابل تست در لوکال؟ محدود به محیط با بار زیادfull-text
-3417400 انتظار طولانیKTM_RECOVERY_MANAGER درXA transaction
قابل تست در لوکال؟ نیازمندXA setup وtrace flag
فعالسازیtrace flag:
Code |
— درstartup parameters: -T8531 |
غیر قابل اجرادرSingle-Node (فقط توضیح):
-3426244 خطایSUMMARIZECOLUMNS/ROLLUPGROUP درDAX
- مربوط بهSSAS با مدلهای چندبعدی.
- تست نیاز بهSSAS Multidimensional و اجرای چند کوئریمتفاوتDAX دارد.
-3518497محل اشتباه منوی مجوزهادرMDS
- UI مرتبط است. تست فقط در نسخه خاصWindows قابل مشاهدهاستمثلWindows Server 2019
-3418488- خطایpatching درsecondary replicas باCDC
- نیاز بهAlways On Availability Group + CDC فعال.
-3487067 خرابی داده درLinux هنگامalternatewritethrough
- مختصSQL Server رویLinux و حالت خاصی از نوشتن به دیسک.
-3435174 پلانcache اشتباه درcontained AG
- فقط در محیطAlways On باcontained availability group قابل تست است.
جمعبندینهایی
Bug ID | عنوان | قابل تست در لوکال | نیاز به اسکریپت | انجام شد |
3518505 | DQS Export Format | بله | ||
3586315 | Suspend باALTER SERVER CONFIG | بله | ||
2331381 | محدودیت 64 دیتابیسدرBACKUP | بله | ||
3567000 | Deadlock درMETADATA_ONLY Backup | بله | ||
2696108 | لاگ غیرضروری درCDC Flush | بله | ||
3419788 | OLEDB Streaming درDistribution Agent | بله | ||
3459385 | Full-text auto crawl crash | بله | ||
3495266 | لاگ کاراکتر اشتباهدرAgent | بله | ||
3530163 | خطا در ارتقاءmodel_msdb | بله | ||
3461615 | crash درfdhost (بار سنگین) | – | نیمهقابل تست | |
3417400 | XA transaction contention | بله (با ترفند) | ||
سایر موارد | محیط خاص(AG/SSAS/Linux) | – | توضیح داده شد |
This article describes Cumulative Update package 16 (CU16) for Microsoft SQL Server 2022. This update contains 16 fixes that were issued after the release of SQL Server 2022 Cumulative Update 15 and it updates components in the following builds:
- SQL Server – Product version: 16.0.4165.4, file version: 2022.160.4165.4
- Analysis Services – Product version: 16.0.43.239, file version: 2022.160.43.239
reference | Description | Fix area | Component | Platform |
Fixes an issue in which Data Analysis Expressions (DAX) queries that use SUMMARIZECOLUMNS and ROLLUPGROUP with multidimensional models might produce incorrect results when running multiple queries that have different sub-selects without clearing the cache, which causes inaccurate totals starting from the second query.
| Analysis Services | Analysis Services | Windows | |
Fixes an issue in which the Data Quality Services (DQS) format is invalid when exporting cleaned data to SQL Server. خطایی که موقع اسپورت دیتا بعد از پاکسازی دیتا داده میشود رو رفع کنه. | Data Quality Services | Data Quality Services | Windows | |
Fixes an issue in which the menu for editing model permissions appears in the wrong location on some system versions (for example, Windows Server 2019). این مشکل مربوط بهفیکس خطایی استمکان نادرست منوی ویرایشمجوزهای مدل در برخی نسخههای سیستمعامل مثلWindows Server 2019 است. | Master Data Services | Master Data Services | Windows | |
FIX: Database is suspended incorrectly when you run ALTER SERVER CONFIGURATION (KB5048510) وقتی شمادستور ALTER SERVER CONFIGURATION را اجرامیکنید، اگر مشکلی در روند اعمال تنظیمات یا ناسازگاریهای مربوط به بروزرسانیباشد، ممکن است بانک داده به اشتباهsuspend شود، و این مشکل در این بروزرسانیخاص(KB5048510) گزارش شده است. | SQL Server Engine | Backup Restore | All | |
Fixes an issue that causes the BACKUP SERVER WITH METADATA_ONLY snapshot command to fail with the following errors when the SQL Server instance has more than 64 databases: Msg 3088, Level 16, State 1, Line <LineNumber> Server <ServerName> with dbid <DatabaseID> failed to resume in session <SessionID>. Msg 925, Level 19, State 1, Line <LineNumber> Maximum number of databases used for each query has been exceeded. The maximum allowed is 64. Msg 0, Level 20, State 0, Line <LineNumber> A severe error occurred on the current command. The results, if any, should be discarded. این خطا مربوط به زمانی است که ما بیشتر از 64 بانک داشته باشیم در این صورت BACKUP SERVER WITH METADATA_ONLY دچار این خطا میشه که در این اپدیت برطرف شده | SQL Server Engine | Backup Restore | All | |
Fixes a deadlock issue that you might encounter when performing a Transact-SQL snapshot backup using the METADATA_ONLY option under heavy concurrent OLTP workloads, which causes an eventual time-out of the backup with the following errors: Error: 3041, Severity: 16, State: 1. BACKUP failed to complete the command BACKUP DATABASE <DatabaseName>. Check the backup application log for detailed messages. <DateTime> ERROR: [PID:<PID>:Backup:<BackupID>] Snapshot failed with message ‘Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.’. این مشکل مربوط به بنبست(deadlock) و زمانبر شدن عملیات بکاپsnapshot با گزینه METADATA_ONLY در حالت بار کاریOLTP سنگین است که منجر به تایماوت و خطایشکست بکاپ میشود. مشکل در اثر رقابت بیش از حد منابع و عملیات همزمان است. | SQL Server Engine | Backup Restore | All | |
Fixes a patching error that you encounter in secondary replicas of an availability group with databases that have SQL replication or change data capture (CDC) enabled. For more information, see known issue of SQL Server 2022 CU15 or known issue one of SQL Server 2022 CU14. این مشکل مربوط به خطای پچ کردن(patching error) در (secondary replicas) از (Availability Groups) است که بانکهایاطلاعاتی با فعال بودنSQL Replication یاChange Data Capture (CDC) دارند. اینمشکل در بروزرسانیهایCU14 وCU15 SQL Server 2022 شناخته شده. | SQL Server Engine | High Availability and Disaster Recovery | Windows | |
Fixes an issue that causes database corruption if a system failure with alternatewritethrough mode occurs. | SQL Server Engine | Linux | Linux | |
Fixes incorrect results that you might encounter when you use the contained availability group (AG) and remove plans for a specific object by altering it from either a contained AG or non-contained AG connection. When you make changes from a contained AG or non-contained AG connection, the other connection continues to use the old plan for the altered object until it’s manually removed from the plan cache. این بروزرسانی مشکل مربوط به نتایج نادرست در استفاده از**Availability Group (AG)** (contained) است، جایی که پس از تغییر یکobject خاص (مثل جدول یا نما) از طریق اصلاح آن در اتصالهایcontained AG or non-contained اتصال دیگر همچنان ازplan قدیمی استفاده میکند تا زمانی که دستی ازplan catchهاحذف شود. این وضعیت منجر به ایجاد خطایی میشد که برطرف شد | SQL Server Engine | Programmability | All | |
Removes unnecessary log messages written to the SQL Server error log by the sys.sp_flush_ct_internal_table_on_demand stored procedure. این بروزرسانی مشکل نوشتن پیامهای غیرضروری در لاگ خطایSQL Serverتوسط پروسیجر sys.sp_flush_ct_internal_table_on_demand را برطرف میکند. این پیامها در واقع بیمورد بودند و حذفآنها سبب پاکیزگی و کاهش سردرگمی در لاگها | SQL Server Engine | Replication | All | |
Allows you to disable OLE DB streaming by passing -UseOledbStreaming 0 for the Replication Distribution Agent to avoid the error mentioned in Error message when you run the Distribution Agent in SQL Server این ویژگی بهشما اجازه میدهد تا با ارسال پارامتر -UseOledbStreaming 0 به Distribution Agent درSQL Server، قابلیت استریمOLE DB را غیرفعال کنید. این کار برای جلوگیری از خطایی که هنگاماجرای Distribution Agent رخ میدهد، مفید است | SQL Server Engine | Replication | All | |
Fixes an issue in which the full-text auto crawl monitor is aborted when you use full-text search. این بروزرسانی مشکل توقف مانیتور خودکارCrawl در (Full-Text Indexing) را هنگام استفاده از(full-text search) برطرف میکند. یعنی حالا، در صورت استفاده از قابلیت جستجویمتن کامل، این مانیتور دیگر بیدلیل خاموش نمیشود و عملکرد بهتری دارد. | SQL Server Engine | Search | All | |
Fixes an issue in which fdhost frequently restarts due to out-of-memory (OOM) of fdhost when there are too many outstanding global batches from SQL Server in the cloud. این بروزرسانی مشکل را برطرف میکند که در آن fdhost به دلیلکمبود حافظه(OOM) مرتبا ریاستارت میشد، زمانی که تعداد زیاد از (global batches) معوقه ازSQL Server در ابر وجود داشت. | SQL Server Engine | Search | All | |
Fixes an issue in which the SQL Server error log might include invalid characters for SQL Server Agent login attempts when the Agent runs a job on a scheduler configured to run automatically once the Agent starts این بروزرسانی مشکل را برطرف میکند که در آن،error log SQL Server ممکن است حاوی کاراکترهای نامعتبر هنگام تلاشهای ورود به حسابSQL Server Agent باشد، مخصوصاً زمانی که agentیک schedulerرو کانفیگ کرده که به صورت اتوماتیک اجرا بشه. | SQL Server Engine | SQL Agent | Windows | |
Fixes an issue in which upgrading from SQL Server 2017 or SQL Server 2019 to SQL Server 2022 is blocked during the database model_msdb upgrade phase. The following message appears in the SQL Server error log: <DateTime> Database ‘model_msdb’ running the upgrade step from version <VersionNumber> to version 957. Additionally, you might see the following error message when trying to log in: <DateTime> Logon Error: 18401, Severity: 14, State: 1. <DateTime> Logon Login failed for user ‘UserName’. Reason: Server is in script upgrade mode. Only administrator can connect at this time. [CLIENT: ClientID] این بروزرسانیمشکل را حل میکند که در فرآیند ارتقاء ازSQL Server 2017 یا 2019 بهSQL Server 2022، بهخصوص زمان بهروزرسانی پایگاهداده model_msdb، فرآیند نصب و ارتقاء با پیغامهایی مانند: arduino <DateTime> Database‘model_msdb‘ running the upgrade step fromversion<VersionNumber> to version957. و همچنین خطای ورود: vbnet <DateTime> LogonError: 18401, Severity: 14, State: 1. <DateTime> Logon Login failedforuser‘UserName‘. Reason: Server is in script upgrade mode. Only administrator can connect atthis time. متوقف میشود. این مشکل مربوط به حالت ارتقاء اسکریپت سرور است که فقط کاربرهای ادمینمیتوانند در آن حالت وارد شوند، اما بهصورت طبیعی پس از نصب، این حالت باید بهحالت عادی برگردد و تمام کاربران بتوانند وارد شوند. | SQL Server Engine | SQL Server Engine | All | |
Fixes a contention issue with high KTM_RECOVERY_MANAGER wait times that you might encounter when running XA distributed transactions. Note: You need to turn on trace flag 8531 as a startup trace flag. این بروزرسانی مشکل رقابت(contention) در بخش KTM_RECOVERY_MANAGER را برطرف میکند، که ممکناست هنگام اجرای تراکنشهای توزیعشدهXA رخ دهد و منجر به زمانهای انتظار بالاشود. نکته مهم: برای فعالسازیاین اصلاح، باید فلیگ ترسیم(trace flag) شماره 8531 را در شروع سرورفعال کنید، یعنی هنگام راهاندازی سرور، این فلیگ باید با پارامتر مربوطه وارد شود.
| SQL Server Engine | Transaction Services | All |