Sql server ошибка 3624

title description author ms.author ms.reviewer ms.date ms.service ms.subservice ms.topic helpviewer_keywords

MSSQLSERVER_3624

MSSQLSERVER_3624

pijocoder

jopilov

mathoma

02/01/2023

sql

supportability

reference

3624 (Database Engine error)

MSSQLSERVER_3624

[!INCLUDE SQL Server]

Details

Attribute Value
Product Name SQL Server
Event ID 3624
Event Source MSSQLSERVER
Component SQLEngine
Symbolic Name SYS_ASSERTFAIL
Message Text A system assertion check has failed. Check the SQL Server error log for details. Typically, an assertion failure is caused by a software bug or data corruption. To check for database corruption, consider running DBCC CHECKDB. If you agreed to send dumps to Microsoft during setup, a mini dump will be sent to Microsoft. An update might be available from Microsoft in the latest Service Pack or in a Hotfix from Technical Support.

Explanation

Asserts are statements placed in the code of an application to ensure that certain conditions are satisfied. In that respect an assert behaves similar to an error. You can think of asserts as emphatic, firm errors. The condition specified must be met for the program to continue regular execution. If the condition isn’t met, the assert is raised. For more information, see C/C++ Assertions.

SQL Server uses asserts in many places to ensure that conditions are true. For example, the condition ‘existingState == DB_Unencrypted’ asserts that a database state is unencrypted before the next command in the code is run. If that’s not the case, the assert is raised. Error 3624 notifies you that such a condition wasn’t met and an assert was raised.

Error 3624 is raised together with MSSQLSERVER_17066. Here are examples of how you can see these errors in the SQL Server error log. You’ll also see the assert condition raised during run time and the error is sent from SQL Server to the client application.

Error: 17066, Severity: 16, State: 1.
SQL Server Assertion: File: <"e:\b\s3\sources\sql\ntdbms\hekaton\engine\hadr\physical\ckptctrlprocesslogrecord.cpp">, line=1634 Failed Assertion = 'existingState == DB_Unencrypted'. This error may be timing-related. If the error persists after rerunning the statement, use DBCC CHECKDB to check the database for structural integrity, or restart the server to ensure in-memory data structures are not corrupted.

Error: 3624, Severity: 20, State: 1.
A system assertion check has failed. Check the SQL Server error log for details. Typically, an assertion failure is caused by a software bug or data corruption. To check for database corruption, consider running DBCC CHECKDB. If you agreed to send dumps to Microsoft during setup, a mini dump will be sent to Microsoft. An update might be available from Microsoft in the latest Service Pack or in a Hotfix from Technical Support.
Error: 17066, Severity: 16, State: 1.
SQL Server Assertion: File: <"xdes.cpp">, line=4919 Failed Assertion = 'lck_sufficient (lckMode, LCK_M_IX) || lck_sufficient (lckMode, LCK_M_BU)'. This error may be timing-related. If the error persists after rerunning the statement, use DBCC CHECKDB to check the database for structural integrity, or restart the server to ensure in-memory data structures are not corrupted.

Error: 3624, Severity: 20, State: 1.
A system assertion check has failed. Check the SQL Server error log for details. Typically, an assertion failure is caused by a software bug or data corruption. To check for database corruption, consider running DBCC CHECKDB. If you agreed to send dumps to Microsoft during setup, a mini dump will be sent to Microsoft. An update might be available from Microsoft in the latest Service Pack or in a Hotfix from Technical Support.
SQL Server Assertion: File: <diskio.cpp>, line=2902 Failed Assertion = 'filepos + cBytes <= GetMaxOffsetForIO ()'. This error may be timing-related. If the error persists after rerunning the statement, use DBCC CHECKDB to check the database for structural integrity, or restart the server to ensure in-memory data structures are not corrupted.

Error: 3624, Severity: 20, State: 1.
A system assertion check has failed. Check the SQL Server error log for details. Typically, an assertion failure is caused by a software bug or data corruption. To check for database corruption, consider running DBCC CHECKDB. If you agreed to send dumps to Microsoft during setup, a mini dump will be sent to Microsoft. An update might be available from Microsoft in the latest Service Pack or in a Hotfix from Technical Support.

Cause

Here are some possible reasons for an assert failure to occur:

Product Bug
A common reason for assert failures are issues in the product that lead to the conditions not to be true. These issues need to be investigated by Microsoft and when reproduced and understood can be fixed.

Database corruption
Another common cause for assert failures is physical inconsistencies in databases. Damaged data structures, when read in memory, can cause the expected conditions to be false and thus raise an assert.

External library or filter driver
A somewhat common cause for assert messages has been found to be caused by external DLL inside SQL Server memory or a filter driver designed to monitor or intercept SQL Server activity. If such an external component modifies objects or structures that SQL Server uses, assert failures can occur. For more information, see Performance and consistency issues when certain modules or filter drivers are loaded.

Hardware problem (memory, CPU)
Faulty hardware can cause corruption of data structures in memory and therefore lead to assert failures. This issue is less common but it occurs.

User Action

  1. Check your build of SQL Server, see Determine which version and edition of SQL Server Database Engine is running

  2. Find the Latest updates available for your SQL Server version or best open the Excel file that lists all fixes for all builds

  3. Review the articles or Excel file for any assert fixes released after your current SQL Server build. If you find a later build that fixes assert issues, consider upgrading to that build.

  4. In some cases, you can search for the specific assert condition in Failed Assertion part of the 17066 error. For example, in the above message search for lck_sufficient (lckMode, LCK_M_IX). This expression will help you with a more accurate search for a matching issue. This expression is the condition that triggers the assert in the first place and it’s quite specific.

  5. Run DBCC CHECKDB on your databases. If DBCC CHECKDB reports database corruption errors, focus on resolving that issue before anything else. Restore a clean database backup and investigate root cause for the database inconsistencies. For more information, see Troubleshoot database consistency errors reported by DBCC CHECKDB.

  6. Check if there are external modules loaded in SQL Server memory space and also check for filter drivers

    SELECT * FROM sys.dm_os_loaded_modules
    WHERE company != 'Microsoft Corporation'

    For filter drivers, run the following command from Command Prompt

    Follow the recommendations in Performance and consistency issues when certain modules or filter drivers are loaded.

  7. If you’ve already upgraded your SQL Server to the latest Cumulative Update, and DBCC CHECKDB doesn’t report any errors, then reach out to Microsoft technical support and be ready to provide the following information:

    • SQL Server error logs from the Log folder
    • SQL Server memory dumps (SQLDump00xx.mdmp) generated in the Log folder
    • Steps to reproduce the assert when available. What query or action leads to the assert to be raised?
    • Output from fltmc filters and from the `sys.dm_os_loaded_modules DMV
    • Information about your system — output from systeminfo

Summary:
Running a T-SQL Query on MS SQL Server 2008 or SQL Server 2008 R2 may sometimes lead to SQL Database Error 3624. This error may be caused when there is variation in the length of the key data in comparison with the length of the compressed key-value buffer. Read on to know about the probable causes of error, its resolution steps. These steps include running DBCC CHECKDB command, restoring database backup, applying patches released by Microsoft, and using a SQL recovery tool.

Free Download for Windows

Contents

  • Reasons for Error 3624
  • How to Resolve SQL Database Error 3624
  • What If Nothing Works?
  • Conclusion

At times, when SQL Administrator tries to move the database from one SQL server to another, they may encounter the following error message:

Location: statutil.cpp:4128
Expression: iKey < m_statBlob.GetHeader()->GetKeyCount()
SPID: 59 Process ID: 1732
Msg 3624, Level 20, State 1, Line 1
A system assertion check has failed. Check the SQL Server error log for details. Typically, an assertion failure is caused by a software bug or data corruption. To check for database corruption, consider running DBCC CHECKDB. If you agreed to send dumps to Microsoft during setup, a mini dump will be sent to Microsoft. An update might be available from Microsoft in the latest Service Pack or in a QFE from Technical Support.
Msg 0, Level 20, State 0, Line 0
A severe error occurred on the current command. The results, if any, should be discarded.

Reasons for Error 3624

  1. The Query derives data by means of the JOIN statement for two or more tables
  2. Data compression enabled for only one table
  3. Clustered Index key available on a column of the table
  4. The column length in one table differs from column length on other tables
  5. ON-filter enabled for the column
  6. Either the SQL server performs an operation with LOOP JOIN join-hint or this hint is used by Query

The result is that the length of key data is bigger than the length of the compressed key value buffer, thus causing the “SQL Database Error 3624 – a system assertion check has failed”. However, the assertion failure may also be caused due to a software bug or corruption in the database.

Try to find the cause of the error by running the DBCC CHECKDB command and work to resolve the error with most suitable SQL Database recovery option.

How to Resolve SQL Database Error 3624

  1. Check Database consistency: DBCC CHECKDB command lets you analyze the exact cause of the error, for example, whether the error is caused due to database corruption or due to a bug in the software’s previous release. Database corruption can be repaired but up to a certain level only.
  2. Restore Database from Backup: In case the corruption is too high, try to restore the database from backup, however, check the status before restoring the database from backup. Backup should be up-to-date for restoration and not available in any of the following forms:
    • Not Up-to-date and old: In case the backup is 15 days old then the database for 15 days is not available
    • Not corrupt: Corruption in database backup will not lead to proper restoration. Even if the database is restored from backup, it cannot be used further, due to chances of further corruption
    • Database Backup not available: Database backup is not implemented. Some organizations do not invest their resources in backup and suffer when crises arise.
  3. Apply Patches: Assertion error is generally caused due to bugs in the software and fixed with service pack releases. Patching the server with the latest service pack helps in removing the bug-related error.

What If Nothing Works?

If performing the above steps fail to resolve the “SQL Database Error 3624 – A system assertion check has failed”, then try to fix the issue using SQL Recovery software. Use Stellar Repair for MS SQL Software to recover the database and fix the SQL error 3624. The software is available in different versions – Technician, Platinum, and all-in-one Stellar Database Toolkit.

  • Technician version consists of one software which is used to repair the corrupt SQL database.
  • Platinum version consists of two software. One of these software repairs the corrupt MDF file and restores the SQL database. The other software recovers database from the corrupt backup file.
  • Stellar Toolkit for MS SQL is available as a bundle of 3-software – one repairs corrupt SQL database; second restores the database from damaged SQL database backup file and SQL Password Recovery recovers SQL Server database-password when the user forgets the password.

Deploy the right version – Technician, Platinum or Toolkit and start resolving SQL related errors and fixes.

free download

Conclusion

SQL Database error 3624 arises when MDF and NDF files get affected due to a bug or any database corruption. Microsoft releases patches from time to time to help resolve the software bugs. These updates are applied as software extensions. SQL database should not be in a dormant stage for long and most of the time the updated backup is also not available. In that case, installing and recovering SQL Database from Stellar Repair for MS SQL software is the right solution.

About The Author

Priyanka Chauhan

Priyanka is a technology expert working for key technology domains that revolve around Data Recovery and related software’s. She got expertise on related subjects like SQL Database, Access Database, QuickBooks, and Microsoft Excel. Loves to write on different technology and data recovery subjects on regular basis. Technology freak who always found exploring neo-tech subjects, when not writing, research is something that keeps her going in life.

SQL error 3624 is one such frequent error that is faced by many users. It marks the database as SUSPECT. While users are working on Microsoft SQL Server and they run Transaction-SQL Query, there are chances that “SQL server Error 3624” aka “a system assertion check has failed” may occur. If an administrator attempts to export the database from a SQL Server to another SQL Server, an error may arise where the database stops working. And an error message pop-ups.

ERROR MESSAGE

Following error message is displayed:

Error message SQL Server Error 3624

In this guide, we will give answer the queries “ How to solve SQL Error 3624  and “SQL 2016 a system assertion check has failed”. Whereas, before moving towards the solutions we need to know the proper reasons behind this error.

Why SQL  Error 3624 arises?

The main cause of SQL Server Error 3624 is bulk data insertion in the SQL Server that consequently damages the log file of that specific database. Eventually, it marks the database as SUSPECT. This error can occur in the following circumstances:

  • When a table contains a non-clustered index
  • A column of table has clustered index key
  • When a TABLOCK query is used in SQL
  • Data compression enabled for a single table
  • On-Filter is activated for any column
  • Different column length of data tables
  • If there is bulk data insertion and table not truncated
  • SQL performs a LOOP JOIN join-hint or it is used by query

The result is that the length of the key data is bigger than the length of the compressed key-value buffer. Sometimes this error occurs due to the software bug or corruption.

Try to find the actual cause of the error by running the DBCC CHECKDB command and work to resolve the error with the most suitable SQL Database recovery option.

Manual Approaches to resolve SQL Error 3624

There are several manual methods present to resolve this error. Some of them are listed below:

Method 1. Check Database consistency 

DBCC CHECKDB command can be used to analyze the exact cause of error, for example, whether the error is caused due to database corruption or due to bug in software’s previous release.SQL Database corruption can be repaired by using it, but up to a certain level only.

Method 2.Restore with Backup 

In case the corruption is too high, try to restore the database from backup, however, check the status before restoring the database from backup. Backup should be up-to-date for restoration and not available in any of the following forms:

  • If the backup is 15 days old then the database for 15 days is not available.
  • If database backup is not implemented. Some organizations do not invest their resources in backup and suffer when the crises arise.

Method 3.Apply patches

Assertion failed error is generally caused due to bugs in the software and can be fixed with service pack releases. Patching the server with the latest service pack helps in removing the bug related error. 

Limitation of using manual approaches:

It is obvious that technical expertise is required to follow manual approaches. And if you are a novice user then you can find difficulty to understands steps. Also, you can lose the data if you don’t know about steps properly. In such a case, you are advised to use a Professional Tool to fix SQL Error 3624.

Automated or Professional Solution

To overcome all the limitations of manual methods you can go with an automated solution which is an SQL Database Recovery Software. This recovery software can perform recovery with the utmost accuracy and restore SQL database contents. It is the best solution to fix “A system assertion check has failed – SQL server error 3624”. This software is compatible with all version of SQL server. Therefore, this can be used to solve SQL 2016 a system assertion check has failed error or any version of SQL Server.

Final Words

This guide gives you all details about SQL Server Error 3624 – a system assertion check has failed. All possible reasons and manual methods to resolve this issue discussed above. But there is technical expertise required to follow manual approaches. Therefore, we recommend you to use SQL Database Recovery Software. I hope you will find this blog useful to solve your query. If you have any queries regarding any step then feel free to contact me.

Related Post

SQL Server


Raj |
Modified: November 18th, 2022 | 5 Minutes Reading

While running a Transaction-SQL query in SQL Server, sometimes users get an unexpected SQL Database Error 3624. Thus, considering the needs of users to resolve this error, today we have come up with this write-up. Here we will discuss the causes and ways that can resolve this error easily.

Introducing with SQL Database Error 3624

SQL Server is one of the most reliable software and this has brought it up in many mid-scale associations. It is a widely used prominent database management service that creates tables, stored procedures, executes queries, retrieves data, deletes records, maintains transaction log etc. Although SQL Server is highly authentic sometimes, it encounters some serious issues. SQL server error 3624 is one such frequent error that is faced by many users. It marks the database as SUSPECT. While SQL administrator tries to shift the database from a SQL server to another then, it displays the error in the following screenshot:

SQL Database Error 3624

SQL database error 3624 error means system assertion check is failed and now, to resolve this error users have to check the SQL Server error log. The main cause of assertion failure is a software bug or maybe corruption in database. For checking the corruption in database, run DBCC CHECKDB command. An update from Microsoft may available in the latest Service Pack or it can be received in a QFE from Technical Support.
Msg 0, Level 20, State 0, Line 0

Why SQL Error Code 3624 Arises?

The main cause of SQL database error 3624 is bulk data insertion in the SQL Server that consequently damages the log file of that specific database. Eventually, it marks the database as SUSPECT. The SQL Server 3624 error can occur in of following circumstances:

Case 1. When a table contains a non-clustered index

Case 2. A column of table has clustered Index key

Case 3. While A TABLOCK query is used in SQL

Case 4. Data compression enabled for a single table

Case 5. On-Filter is activated for any column

Case 6. Different column length of data tables

Case 7. Prior bulk data insertion and table not truncated

Case 8. SQL performs a LOOP JOIN join-hint or it is used by query

Is This a Data Loss Warning Error?

We cannot say that this error means data loss but there are few chances of data loss after prompting this error. MS SQL server manages the database via its own strategy of mirroring the database to avoid any data loss. While any user works with Full Recovery Model then, they must be working with this strategy that creates accurate replica of database. Both database copies administered by different servers, where first is on principle and another is on mirror server. This error mainly affects the mirroring of database thus; there is a risk of data loss. The mirror database becomes suspended and the entire data stored in principal database only.

How to Resolve SQL Database Error 3624?

In this section, we will discuss all the easy and probable solutions that can easily fix this error code.

Technique 1: Checking the consistency of Database

The DBCC CHECKDB command allows users to examine the exact reason of error 3624. We can understand it via an example: the error occurs either due to corruption in database or by any bug in application’s previous release. The DBBC CHECKDB command can repair the database corruption but only up to a certain stage.

Technique 2: Retrieve Data from Backup

When the corruption level is too high in database then, users must try to restore the data from backup. But before that, verify the status of restoring database from backup. The database backup must be latest to restore and should not exist in any of the following forms:

  • Not so latest and old: If the backup of database is 15 days old then, the data for 15 days is not available.
  • Not corrupted: If the database is corrupted then, it will not lead to an appropriate restoration. In case if you have restored the database from backup, it cannot be used for further operations.
  • Absence of Database Backup: The backup of database has no implementations. Most of the users do not take the backup of database. Then, they undergo while this error arises.

Technique 3: Use patches

SQL Database error 3624 usually occurs because of bugs in the software and these can fix via service pack releases. After patching the SQL server with up-to-date service pack can resolve the bugs from software and this error can be fixed then.

These all are manual ways that can fix SQL error 3624 but there are some limitations of these methods. Moreover, there is no guarantee that this error will resolve completely after applying the mentioned techniques. As we know now that, the main cause of SQL database error 3624 is corruption in SQL server database. So, all we have to do is, fix this corruption and restore the database in a healthy form. Now, the question arises that how to fix the corruption from SQL database? Well, do not worry! We have come up with an extreme and guaranteed solution to recover corrupt SQL database: SQL Recovery Tool. This is one of the most trusted and reliable solutions for recovering the database.

Troubleshoot SQL Database Error 3624 – System Assertion has Failed


admin ~
Modified: 03-04-2020 ~ SQL Server ~ 4 Minutes Reading

When users are working on Microsoft SQL Server 2008 or 2008 R2 and they run Transaction-SQL Query, there are chances that SQL Database Error 3624 may occur. If an administrator attempts to export the database from a SQL Server to other SQL Server, an error may arise where database stops working. Following error message is displayed:

fix sql server error 3624

A system assertion has failed. Check the SQL Server error log for more information.

This problem is caused when the database gets corrupted or by a software bug. In case it is due to database corruption, a user can run DBCC CHECKDB. If the user agrees to send a minidump or backup, it will be sent to Microsoft. Microsoft will send an update in a QFE or latest Service Pack.

Quick Reasons for SQL Server Error 3624

Some of the reasons due to which this error 3624 occurs in SQL Server are:

  • When two or more tables are joined by JOIN statement

  • Data compression is enabled for one table only

  • Clustered Index is available on the column of table

  • Column length of one table is different from column length of other tables

  • ON- filter is enabled for any particular column

Due to all of the above-mentioned reasons, length of key data appears to be greate the than length of compressed data. This all results in SQL Database Error 3624: System Assertion Has Failed.

It may also happen due to

  • Software issues like corruption in database or software issues.

Instant Solution to Resolve SQL database Error 3624

To resolve SQL database error 3624, there are 2 methods to solve the issue:

  1. Manual method

  2. Automated method

Let us study them in detail

#Manual Method to Fix SQL Server Error 3624

In the manual method, a user needs to perform all the steps manually. The manual solution can be done with the help of following 3 solutions:

  • Check the cause of error

The exact cause of the error can be known with the help of DBCC CHECKDB. Whether the error occurs due to corruption in database or software bug, it can be analyzed very well. If the corruption is within the limits, it can be repaired too.

  • Retrieve data from backup

In case the database is severely corrupted, it can be restored from the backup. But, the condition is backup should be up to date and any of the following conditions must not exist:

  • Backup is old and not up to date: If the backup created is old, then some of the data will miss. For example, if the backup is 15 days old, then the data of the past 15 days will be not there.

  • Backup of the data is corrupted: If the backup of the data is corrupted, then it cannot be retrieved properly. Even if it can be restored, users are unable to use it for future purpose.

  • Backup of the Database is not created: If the backup of the data is not created, organizations have to suffer if any problem occurs.

  • Apply Patches

The main cause of System Assertion error is the software bug. It can be fixed by service packs. Patching the SQL Server with the service pack is suitable for removal of bug related issues.

Important Note: In case if your SQL database is inaccessible and you want a quick solution to Access and recover the SQL database then the user can take the help of automated solution by using SQL database recovery Software.

Download Purchase Now

Conclusion

While using SQL Server, many users encounter SQL Database Error 3624. This happens when the MDF and NDF files of SQL Server gets damaged due to database corruption or software bug. One way to resolve the issue is to use latest patches released by Microsoft. Also, the data can be restored from the backup of the data created. Another approach is automated solution. This can be done with the help of software like Revove SQL Recovery Tool. This the most reliable solution and repairs the file in no time.

Понравилась статья? Поделить с друзьями:
  • Sql server ошибка 258
  • Sql server ошибка 17113
  • Sql server ошибка 15407
  • Sql server ошибка 15401
  • Sql server ошибка 15105