Устранение ошибок согласованности базы данных, по инструкции DBCC CHECKB

Переводы статьи Переводы статьи
Закрыть Закрыть
Код статьи: 2015748 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Проблема

При выполнении инструкции DBCC CHECKDB (или другие подобные команды, подобно CHECKTABLE) SQL Server ERRORLOG записывается сообщение, подобное следующему:

2010-03-31 22:07:06.34 spid53 инструкции DBCC CHECKDB (mydb) исполнить MYDOMAIN\theuser найдено 15 ошибок и восстановлению 0 ошибок. Прошло времени: 0 часов 0 минут 0 секунд. Моментальный снимок внутренней базы данных разделить номер LSN точка = 00000026:0000089d:0001 и первый номер LSN = 00000026:0000089c:0001. Это информационное сообщение. Вмешательство пользователя не требуется.

Это сообщение показывает, сколько ошибок согласованности базы данных были обнаружены и сколько были восстановлены (если используется параметр восстановления с помощью команды). Это сообщение также записывается в журнал событий приложений Windows как сообщение информации уровня с EventID = 8957 (даже в том случае, если сообщение об ошибке отправляется информационное сообщение уровня).

Сведения в сообщении, начиная с «... моментальный снимок внутренней базы данных» отображается только в том случае, если инструкция DBCC CHECKDB была запущена через Интернет, который используется, если база данных не находится в режиме SINGLE_USER. Это обусловлено тем, что для инструкции DBCC CHECKDB online снимок внутренней базы данных используется для предоставления согласованного набора данных для проверки.

В этой статье не описывается, как устранение неполадок по каждой конкретной ошибке сообщил DBCC CHECKDB, но довольно общий подход, если сообщение об ошибке. Если не указано специально CHECKDB все ссылки в этой статье также применима к инструкции DBCC CHECKTABLE и CHECKFILEGROUP.

Причина

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

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

Решение

Во-первых, наилучшим решением, если инструкция DBCC CHECKDB сообщает об ошибках согласованности является восстановление из проверенной рабочей резервной копии. Тем не менее если не удается восстановить из резервной копии, CHECKDB предоставляет возможность исправить ошибки. Системного уровня такие проблемы, как файловая система или оборудование может быть причиной возникновения таких проблем, рекомендуется устранить эти сначала перед восстановлением или запуск repair.

Чтобы указать, какой параметр минимальный восстановления, необходимо исправить все ошибки предоставляется при запуске инструкции DBCC CHECKDB рекомендации. Эти сообщения могут выглядеть следующим образом:

CHECKDB найдено 0 ошибок распределения и 15 ошибок согласованности базы данных «mydb».
аргумент REPAIR_ALLOW_DATA_LOSS — уровень минимального ремонта для ошибок, найденных по инструкции DBCC CHECKDB (mydb

Рекомендуется восстановить минимальный уровень восстановления, чтобы попытаться устранить все ошибки CHECKDB. Это не означает, что этот параметр восстановления фактически исправить все ошибки. Кроме того не всех ошибок, может потребоваться данный уровень восстановления для устранения этой ошибки. Это означает, что не все ошибки, CHECKDB при repair_allow_data_loss рекомендуется приведет к потере данных. Восстановления необходимо выполнить для определения, если разрешение ошибки приведет к потере данных. Одним из способов ограничить вниз уровень восстановления будет иметь для каждой таблицы является использование инструкции DBCC CHECKTABLE для любой таблицы, отчет об ошибке. Это будет отображаться минимальный уровень восстановления для определенной таблицы.

Чтобы найти причину возникновения ошибок целостности базы данных рассмотрим эти методы:

  • Проверьте журнал событий системы Windows для любого уровня системы, драйвера или диске ошибок, связанных с
  • Проверка целостности файловой системы с помощью команды chkdsk.
  • Запустите программу диагностики, любые предоставляемые производителями оборудования для компьютера и/или системного диска.
  • Работа с поставщиком оборудования или к изготовителю устройств убедитесь, что:
    • Оборудование и конфигурация подтверждает требования ввода/вывода сервера SQL Server
    • Обновление драйверов устройств и других вспомогательных компонентов программного обеспечения всех устройств в пути ввода-вывода
  • Рекомендуется использовать программу, такую как SQLIOSim на том же диске, как базы данных, которые сообщили о возникновении ошибок согласованности. SQLIOSim — это средство, независимо от ядра SQL Server, чтобы проверить целостность ввода-вывода для системного диска. Обратите внимание на то, что SQLIOSim поставляется вместе с SQL Server 2008 и не reuiqre не отдельной загрузки.
  • Проверьте наличие других ошибок, отправленной сервером SQL Server, такие как нарушения прав доступа. Эти типы проблем, может привести к повреждению базы данных поэтому необходимо сначала устранить эти ошибки.
  • Убедитесь, что базы данных при использовании параметра PAGE_VERIFY CHECKSUM. Если выводятся ошибки контрольной суммы они индикаторы, которые ошибок после написания SQL Server согласованность страниц на диск так, что дисковая система следует тщательно проверить. Ознакомьтесь с Устранение 824 Msg в SQL Server для получения дополнительных сведений об ошибках контрольной суммы.
  • Поиск ошибок 832 сообщение в ЖУРНАЛ. Они являются показателями того, страницы могут быть поврежден, пока они находятся в кэше перед записываются на диск. Дополнительные сведения содержатся в способах устранения 832 Msg в SQL Server .
  • Попробуйте выполните восстановление из резервной копии базы данных, т.е. вы знаете "Очистить" (нет ошибок из CHECKDB) и резервных копий журналов транзакций, вы знаете, охватывающих время, когда произошла ошибка. Если можно «воспроизводить» эту проблему путем восстановления резервной копии базы данных «чистое» и транзакции заносит в журнал, то за помощью в службу технической поддержки корпорации Майкрософт.
  • Ошибки чистоту данных может вызвать проблемы с приложением, вставки или обновления недопустимые данные в таблицах SQL Server. Для получения дополнительных сведений об устранении неполадок чистоту данных ошибок обратитесь к следующей статье: Устранение неполадок в SQL server 2005 2570 ошибка DBCC

Дополнительная информация

Дополнительные сведения о синтаксисе DBCC CHECKDB и параметры и сведений о том, как выполнить команду прочитайте раздел документации по SQL Server на выполнение инструкции DBCC CHECKDB.

Если ошибки найдены, CHECKDB, дополнительные сообщения следующим образом в ERRORLOG выводятся сообщения об ошибках в целях:

2010-03-31 22:07:06.34 spid53 использование "dbghelp.dll" версия "4.0.5"
2010-03-31 22:07:06.35 spid53 ** дамп потоков - spid = 0, EC = 0x00000000855F5EB0
2010-03-31 22:07:06.35 spid53 *** дамп стека, отправляемые C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\LOG\SQLDump0012.txt
2010-03-31 22:07:06.35 spid53      * *******************************************************************************
2010-03-31 22:07:06.35 spid53 *
2010-03-31 22:07:06.35 spid53 * НАЧАТЬ ДАМП СТЕКА:
2010-03-31 22:07:06.35 spid53 * 31-03-10 22: 07: 06 spid 53
2010-03-31 22:07:06.35 spid53 *
2010-03-31 22:07:06.35 spid53 * повреждения базы данных DBCC
2010-03-31 22:07:06.35 spid53 *
2010-03-31 22:07:06.35 spid53 * 84 входной буфер байтов -
2010-03-31 22:07:06.35 spid53 * dbcc checkdb(mydb)
2010-03-31 22:07:06.35 spid53 *
2010-03-31 22:07:06.35 spid53      * *******************************************************************************
2010-03-31 22:07:06.35 spid53      * -------------------------------------------------------------------------------
2010-03-31 22:07:06.35 spid53 * краткое содержимое стека
2010-03-31 22:07:06.38 spid53 подпись стека для дампа является 0x00000000000001E8
2010-03-31 22:07:07.42 spid53 внешних дамп процесса возврата кода 0x20002001.
Сведения об ошибке был отправлен отчет об ошибках "Доктор Ватсон".

Файлы, используемые для отчетов об ошибках содержат файл txt SQLDump <nnn>. Этот файл можно использовать для исторических целей, как он содержит список ошибок, найденных в CHECKDB в формате XML.

Чтобы узнать, когда время последнего запуска инструкции DBCC CHECKDB без ошибок, обнаруженных в базе данных (последний известный чистой CHECKDB), проверьте ЖУРНАЛ сервера SQL для сообщения, как в следующем примере для базы данных или базы данных системы (это сообщение записывается в виде сообщения об уровне сведений в журнал событий приложений Windows с EventID = 17573):

10:13:59.80 2010-04-01 spid7s CHECKDB для базы данных "master" завершилась без ошибок в 22:11:11.417 2010-03-31 (по местному времени). Это информационное сообщение; не требуется никаких действий пользователя

Примечание. Это ЭКСПРЕСС-ПУБЛИКАЦИЯ, подготовленная непосредственно службой технической поддержки Майкрософт . Сведения, содержащиеся в данном документе, предоставлены в качестве отклика на возникшие проблемы. Из-за срочности в материалах могут быть опечатки, и в любое время и без уведомления в них могут быть внесены изменения. Чтобы получить дополнительные сведения, см. Условия использования.

Свойства

Код статьи: 2015748 - Последний отзыв: 30 мая 2011 г. - Revision: 8.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
Ключевые слова: 
kbmt KB2015748 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:2015748

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com