Поделиться через


MSSQLSERVER_3023

Область применения: SQL Server

Сведения

Атрибут Значение
Название продукта SQL Server
ИД события 3023
Источник событий MSSQLSERVER
Компонент SQLEngine
Символическое имя DB_IN_USE_DUMP
Текст сообщения Резервное копирование и операции с файлами (такие как ALTER DATABASE ADD FILE) в базе данных должны быть сериализованы. Повторите инструкцию после завершения текущей операции резервного копирования или операции с файлами.

Описание

Вы пытаетесь выполнить команду резервного копирования, сжатия или изменения базы данных в SQL Server, и вы столкнулись со следующими сообщениями:

Сообщение 3023, уровень 16, состояние 2, строка 1
Резервное копирование и операции с файлами (такие как ALTER DATABASE ADD FILE) в базе данных должны быть сериализованы. Повторите инструкцию после завершения текущей операции резервного копирования или операции с файлами.

Сообщение 3013, уровень 16, состояние 1, строка 1
РЕЗЕРВНОЕ КОПИРОВАНИЕ БАЗЫ ДАННЫХ завершено с ошибкой.

Кроме того, журнал ошибок SQL Server содержит такие сообщения:

<Ошибка резервного копирования datetime> : 3041, серьезность: 16, состояние: 1.
<Не удалось выполнить резервное копирование даты и времени> резервного копирования команды BACKUP DATABASE MyDatabase WITH DIFFERENTIAL. Проверьте дополнительные сообщения в журнале приложения резервного копирования.

Вы также можете заметить, что эти команды возвращают wait_type = LCK_M_U и wait_resource = DATABASE: <id> [BULKOP_BACKUP_DB] при просмотре их состояния в различных динамических административных представлениях, например sys.dm_exec_requests или sys.dm_os_waiting_tasks.

Возможные причины

Существует ряд правил в отношении того, какие операции разрешены или запрещены в процессе полного резервного копирования базы данных. Ниже приведены некоторые примеры:

  • Одновременно может выполняться только одно резервное копирование данных (в процессе полного резервного копирования разностное или добавочное резервное копирование выполняться не может).
  • Одновременно может выполняться только одно резервное копирование журналов (резервное копирование журналов разрешено во время полного резервного копирования базы данных).
  • Во время резервного копирования в базу данных нельзя добавлять файлы или удалять их из базы данных.
  • Во время резервного копирования базы данных нельзя сжимать файлы.
  • Во время резервного копирования в модель восстановления можно вносить лишь некоторые изменения.

При выполнении любой из этих конфликтующих операций команды будут сталкиваться с ожиданиями блокировки, как указано в разделе "Пояснение" для сообщений 3023 и 3041.

Действие пользователя

Проверьте расписания различных операций по обслуживанию базы данных и скорректируйте их таким образом, чтобы эти операции или команды не конфликтовали друг с другом.

Дополнительные сведения

SQL Server записывает время начала и время окончания резервного копирования в msdb базе данных. Вы можете проверить журнал резервного копирования, чтобы определить, происходило ли полное резервное копирование базы данных в тот момент, когда была предпринята попытка добавочного резервного копирования, что привело к ошибке. В этом вам может помочь следующий запрос:

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

Можно также использовать событие User Error Message в трассировке профилировщика SQL или расширенное событие error_reported для отслеживания передачи сообщений 3023 приложению, которое инициировало резервное копирование или другую команду обслуживания.