FIX: In-memory database restore fails with errors in SQL Server 2016 and SQL Server 2017

Applies to: SQL Server 2016 DeveloperSQL Server 2016 EnterpriseSQL Server 2016 Enterprise Core

Symptoms


Consider the following scenario:

  • You have a database that uses in-memory Online Transaction Processing (OLTP) in Microsoft SQL Server 2016 or SQL Server 2017.
  • A disk drive contains $FSLOG that's displayed to be FULL.

In this scenario, the database restore fails under either of the following conditions:

  • When you restart the SQL Server service. In this situation, if the database restarts, you may notice that the database recovery fails and returns a 5511 error. Additionally, the database may go into SUSPECT mode.
  • When you try to restore database from backup. In this situation, the database may not come online because of the file system log record corruption. For example, if the file name contains the "ffff" name pattern.

Under these conditions, you may receive error messages that resemble the following:

Msg 5511, Level 16, State 10
FILESTREAM's file system log record 'fba1eafd-fc759c68-ffff.045e1502-038a6397-0000.d790ce11-7d80-4654-9ec0-0c7f4f7c5388.0-0.1000016' under log folder is corrupted.

Msg 3167, Level 16, State 1
RESTORE could not start database DatabaseName

Msg 3013, Level 16, State 1
RESTORE DATABASE is terminating abnormally.

Msg 3414, Level 21, State 1
An error occurred during recovery, preventing the database DatabaseName from restarting. Diagnose the recovery errors and fix them, or restore from a known good backup. If errors are not corrected or expected, contact Technical Support

Resolution


This issue is fixed in the following cumulative update for SQL Server:

Cumulative Update 3 for SQL Server 2017     

Cumulative Update 6 for SQL Server 2016 SP1

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

References


Learn about the terminology that Microsoft uses to describe software updates.