MSSQLSERVER_3023

Applies to: SQL Server

Details

Attribute Value
Product Name SQL Server
Event ID 3023
Event Source MSSQLSERVER
Component SQLEngine
Symbolic Name DB_IN_USE_DUMP
Message Text Backup and file manipulation operations (such as ALTER DATABASE ADD FILE) on a database must be serialized. Reissue the statement after the current backup or file manipulation operation is completed

Explanation

You try to run a Backup, shrink, or alter database command in SQL Server, and you encounter the following messages:

Msg 3023, Level 16, State 2, Line 1
Backup and file manipulation operations (such as ALTER DATABASE ADD FILE) on a database must be serialized. Reissue the statement after the current backup or file manipulation operation is completed.

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

Additionally, the SQL Server error log contains messages like the following:

<Datetime> Backup Error: 3041, Severity: 16, State: 1.
<Datetime> Backup BACKUP failed to complete the command BACKUP DATABASE MyDatabase WITH DIFFERENTIAL. Check the backup application log for detailed messages.

You might also notice that these commands encounter a wait_type = LCK_M_U and a wait_resource = DATABASE: <id> [BULKOP_BACKUP_DB] when the status of these commands is viewed from the various dynamic management views (DMVs), such as from sys.dm_exec_requests or sys.dm_os_waiting_tasks.

Possible causes

There are several rules on which operations are allowed or not allowed when a full database is currently in progress against a database. Some examples are as follows:

  • Only one data Backup can occur at a time (when a full database Backup occurs, differential, or incremental Backups cannot occur at the same time).
  • Only one-log Backup can happen at a time (a log Backup is allowed when a full database Backup is occurring).
  • You cannot add or drop files to a database while a Backup is occurring.
  • You cannot shrink files while database Backups are happening.
  • There are limited recovery model changes allowed while Backups are occurring.

When any of these conflicting operations are performed, the commands will encounter the lock waits that are mentioned in the "Explanation" section followed by you receiving the 3023 and 3041 messages.

User action

Examine the schedules of the various database maintenance activities, and then adjust the schedules so that these operations or commands do not conflict with each other.

More information

SQL Server records the start time and the end time of the Backup in the msdb database. You can examine the Backup history to determine whether there was a full database Backup occurring while an incremental Backup was attempted and therefore caused the error. You can use the following query to help you with this process:

select database_name, type, backup_start_date, backup_finish_date
from msdb.dbo.backupset
order by database_name, type, backup_start_date, backup_finish_date
go

You can also use the User Error Message event in SQL Profiler Trace or the error_reported event in Extended Events to track the reporting of the 3023 messages back to the application that initiated the Backup or other maintenance command.