KB4483571 – ВИПРАВЛЕНО: можлива помилка твердження, якщо транзакцію між базами даних із базою даних групи доступності скоєно з SQL Server тригера

Застосовується до
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer Windows SQL Server 2017 Enterprise Core Windows SQL Server 2017 Enterprise Windows

Ознаки

Припустімо, що в Microsoft SQL Server 2016 або 2017 є принаймні одна група доступності AlwaysOn із DTC_SUPPORT=PER_DB. Якщо запустити тригер SQL Server, який містить транзакцію між базами даних за участю принаймні однієї з баз даних групи доступності, може виникнути помилка створення. Журнал помилок SQL Server містить такі повідомлення про помилки тверджень:

DateTime spid20s * *******************************************************************************
DateTime spid20s * ПОЧАТОК ДАМПА СТЕКА:
DateTime spid20s * Розташування: FileName:3880
DateTime spid20s * Вираз: m_state == BaseXact::XACT_PREPARED || m_state == BaseXact::XACT_COMMITTED
DateTime spid20s * SPID: 20

DateTime Помилка spid20s: 17066, важливість: 16, стан: 1.
DateTime spid20s SQL Server Assertion: FileName><, line=LineNumber Failed Assertion = 'm_state == BaseXact::XACT_PREPARED || m_state == BaseXact::XACT_COMMITTED'. Ця помилка може бути пов'язана з часом. Якщо помилка не зникає після повторного виконання оператора, скористайтеся DBCC CHECKDB, щоб перевірити базу даних на структурну цілісність, або перезапустіть сервер, щоб переконатися, що структури даних у пам'яті не пошкоджено.
Помилка DateTime spid20s: 3624, важливість: 20, стан: 1.
DateTime spid20s Помилка перевірки тверджень системи. Докладні відомості див. в журналі SQL Server помилок. Зазвичай помилка затвердження виникає через програмну помилку або пошкодження даних. Щоб перевірити базу даних на наявність пошкоджень, радимо скористатися функцією DBCC CHECKDB. Якщо ви погодилися надсилати дампи до корпорації Майкрософт під час налаштування, до корпорації Майкрософт буде надіслано міні-дамп. Оновлення може бути доступне від корпорації Майкрософт в останньому пакеті оновлень або в поточному виправленні від служби технічної підтримки.

Крім того, може з'явитися повідомлення про помилку, подібне до такого:

Дата_час Помилка сервера: 19407, важливість – 16, стан: 1.

Дата_час Server Термін оренди між групою доступності "GroupName" і відмовостійким кластером Windows Server минув. Виникла проблема підключення між екземпляром SQL Server і відмовостійким кластером Windows Server. Щоб визначити, чи правильно відбувається перемикання групи доступності, перевірте відповідний ресурс групи доступності в кластері відновлення після відмови Windows Server.

Стан

Корпорація Microsoft підтвердила, що це одна з проблем з продуктами Microsoft, перелічених у розділі "Застосовується до".

Спосіб усунення проблеми

Відомості про сукупний пакет оновлень:

Цю проблему вирішено в наведених нижче сукупних оновленнях для SQL ServerSQL Server:

Відомості про сукупні оновлення для SQL ServerSQL Server :
Кожне нове сукупне оновлення для SQL Server містить усі виправлення та виправлення системи безпеки, які входили до попереднього сукупного пакета оновлень. Перегляньте останні сукупні оновлення для SQL Server.

Відомості про поточні виправлення на вимогу:

Цю проблему вирішено в наведених нижче виправленнях на вимогу для SQL ServerSQL Server:

Посилання

Дізнайтеся, за допомогою яких термінів корпорація Майкрософт описує оновлення програмного забезпечення.