DBCC: база данных не могла быть исключительно заблокирована для выполнения операции

Вынужденный сказать CHKDSK только выполнит ту функцию на размонтированном диске.

1
задан 30 March 2011 в 05:55
5 ответов

Я закончил тем, что создал снимок и выполнил DBCC на нем.

0
ответ дан 3 December 2019 в 17:21

Скорее всего, сервисная учетная запись SQL не имеет полномочий создать необходимые файлы снимка.

На активной базе данных его очень маловероятный CHECKDB сможет добраться, X блокировок базы данных, необходимых для выделения, проверяют к выполненному, который является, почему я изменил тайм-аут блокировки для него, чтобы быть только 20 секундами (IIRC).

Спасибо

3
ответ дан 3 December 2019 в 17:21

Я не уверен первопричина, которая останавливает взятые снимки; но Вы попытались работать DBCC CheckDB с Tablock опция видеть, работает ли это? (Книги онлайн явно указывают tablock опция "включает краткосрочное эксклюзивное (X), соединяют базу данных".), Но по крайней мере это не берет снимки, и DBCC CheckDB может успешно выполниться на этот раз с этой опцией. Другая опция, это не критическая система, и можно предоставить время простоя; попытайтесь изменить его на однопользовательский режим и выполните DBCC снова ИЛИ восстановите его где-то в другом месте и сделайте DBCC, если у Вас есть тестовая среда.

Вашим движением парню должен быть Блог Paul Randal для всех вещей CheckDB.

1
ответ дан 3 December 2019 в 17:21

Я написал подробное сообщение в блоге, чтобы избавиться от этой ошибки.

  1. Отключить соединение. (Для этого: Файл> Отключить обозреватель объектов )
  2. Подключить соединение. (Для этого: Файл> Подключить обозреватель объектов )
  3. Откройте окно «Новый запрос» и выполните следующую команду: использовать мастер (Примечание: команда выше сделает вашу текущую базу данных master, что важно перед запуском следующей последовательности команд.)
  4. Скопируйте и вставьте следующую последовательность команд в окне запроса. Замените слово «MyDatabaseName» именем базы данных, к которой вы пытаетесь получить монопольный доступ.

ALTER DATABASE MyDatabaseName SET SINGLE_USER WITH ROLLBACK IMMEDIATE

ALTER DATABASE MyDatabaseName SET SINGLE_USER WITH ROLLBACK ПОСЛЕ 30

ALTER DATABASE MyDatabaseName SET SINGLE_USER WITH NO_WAIT_NAME

ALDATE_USER WITH NO_WAIT_NAME

ALDATE_USER WITH NO_WAIT_NAME

ALDATE_USER WITH NO_WAIT_DULTER_DATE_DBASE_DATE_DATE_DATE_NAME

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

1
ответ дан 3 December 2019 в 17:21

Иногда возникает проблема, когда в скрытом моментальном снимке базы данных заканчивается свободное место. Поскольку он реализован с использованием альтернативных потоков существующих файлов данных, моментальный снимок базы данных занимает пространство из того же места, что и существующие файлы данных. Если проверяемая база данных имеет большую рабочую нагрузку по обновлению, все больше и больше страниц помещаются в моментальный снимок базы данных, что приводит к его увеличению. В ситуации, когда на томах, на которых размещена база данных, не так много места, это может означать, что скрытому моментальному снимку базы данных не хватает места, и DBCC CHECKDB останавливается с ошибкой. Пример этого показан здесь (ошибки могут варьироваться в зависимости от точной точки, в которой моментальный снимок базы данных исчерпывает пространство):

Попробуйте эту ссылку

http://sqlism.blogspot.com/2014/10 /a-database-snapshot-cannot-be-created.html

0
ответ дан 3 December 2019 в 17:21

Теги

Похожие вопросы