ai30logo500whitecroped

هیچ محصولی در سبد خرید نیست.

CU16 چه تغییراتی برای SQL Server 2022 داره

در این مقاله به بررسی تغغیرات موجود در cumulativeupdate15 برای SQl Server 2022 میپردازیم
سناریوی هر کدوم رو هم در صورت امکان برای تست در محیط لوکال ارایه میدیم
نکته اینکه برای سناریو های تست دو تا راه هست
1) یکی اینکه دو تا Instance روی دو تا سرور یا VM نصب کرنید یکی شون رو به نسخه قبلی آپدیت کنید و یکی شون رو به نسخه بعدی

2) یکی دیگه هم میتونید تست ها رو ی روی محیط خودتون قبل از اپدیت انجم بدین و بعد از آپدیت کردن مجددا بررسی کنید

خب بریم سراغ تغییران این آپدیت

✅ قابل اجرا درمحیط لوکال(single-node):

-3518505 مشکل درexport داده‌هایتمیز شدهDQS

توضیح: هنگامexport داده‌های پاکسازی‌شده ازData Quality Services بهSQL Server، فرمت اشتباه ذخیره می‌شد.

✅قابل تست در لوکال؟

سناریو تست:

  1. اجرایwizard پاکسازی داده درDQS.
  2. export نتایج بهSQL Server table.
  3. بررسی صحت فرمت داده‌ها در مقصد.

اسکریپت پیشنهادی (بررسی داده خروجی):

 

 

 

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

قابل تست در لوکال؟✅

سناریو:

  1. تنظیمSQL Agent job به اجرا در لحظه استارت.
  2. بررسی فایل لاگ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

3426244

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

3518505

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

3518497

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

3586315

FIX: Database is suspended incorrectly when you run ALTER SERVER CONFIGURATION (KB5048510)

وقتی شمادستور ALTER SERVER CONFIGURATION را اجرامی‌کنید، اگر مشکلی در روند اعمال تنظیمات یا ناسازگاری‌های مربوط به بروزرسانیباشد، ممکن است بانک داده به اشتباهsuspend شود، و این مشکل در این بروزرسانیخاص(KB5048510) گزارش شده است. 

SQL Server Engine

Backup Restore

All

2331381

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

3567000

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

3418488

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

3487067

Fixes an issue that causes database corruption if a system failure with alternatewritethrough mode occurs.

SQL Server Engine

Linux

Linux

3435174

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

2696108

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

3419788

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

3459385

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

3461615

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

3495266

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

3530163

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> Databasemodel_msdbrunning the upgrade step fromversion<VersionNumber> to version957.

و همچنین خطای ورود:

vbnet

<DateTime> LogonError: 18401, Severity: 14, State: 1.

<DateTime> Logon Login failedforuserUserName‘. Reason: Server is in script upgrade mode. Only administrator can connect atthis time.

متوقف می‌شود. این مشکل مربوط به حالت ارتقاء اسکریپت سرور است که فقط کاربرهای ادمینمی‌توانند در آن حالت وارد شوند، اما به‌صورت طبیعی پس از نصب، این حالت باید بهحالت عادی برگردد و تمام کاربران بتوانند وارد شوند.

SQL Server Engine

SQL Server Engine

All

3417400

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

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *