Sql server обнаружил логическую ошибку ввода вывода

  • Remove From My Forums

 none

Помогите поднять базу после падения

  • Вопрос

  • После попытки установки очередного апдейта просграммы она ругнулась на базу с вот такой ошибкой

    [Microsoft][ODBC SQL Server Driver][SQL Server]SQL Server обнаружил логическую ошибку
     ввода-вывода, связанную с согласованностью: неверная контрольная сумма (ожидаемая
     0x5428a3bc; фактическая 0x4b67e4cf). Она произошла при прочитать страницы (1:73248
    ) в базе данных с идентификатором 7 по смещению 0x00000023c40000 файла «D:BASESsklad.DAT». Дополнительные сведения см. в журнале ошибок SQL Server и журнале системных
     событий. Это серьезная ошибка, которая угрожает целостности базы данных и должна
     быть немедленно исправлена. Выполните полную проверку базы данных на согласованность
     (DBCC CHECKDB). Эта ошибка может быть вызвана многими причинами; дополнительные сведения
     см. в электронной документации по SQL Server.

    Решил полечить базу
    перевел ее в одномользовательский режим
    и попробывал сделать сначала
    dbcc checkdb (‘sklad’)
    получил ответ
    Сообщение 8921, уровень 16, состояние 1, строка 3

    Проверка отменена. В процессе сбора фактов была обнаружена ошибка. Возможно, база данных tempdb достигла предела памяти, или системная таблица не согласована. Проверьте предыдущие ошибки.

    Сообщение 824, уровень 24, состояние 2, строка 3

    SQL Server обнаружил логическую ошибку ввода-вывода, связанную с согласованностью: неверная контрольная сумма (ожидаемая 0x5428a3bc; фактическая 0x4b67e4cf). Она произошла при прочитать страницы (1:73248) в базе данных с идентификатором 7 по смещению 0x00000023c40000
    файла «D:BASESsklad.DAT». Дополнительные сведения см. в журнале ошибок SQL Server и журнале системных событий. Это серьезная ошибка, которая угрожает целостности базы данных и должна быть немедленно исправлена. Выполните полную проверку базы данных на согласованность
    (DBCC CHECKDB). Эта ошибка может быть вызвана многими причинами; дополнительные сведения см. в электронной документации по SQL Server.

    когда не помогло попробывал

    dbcc checkdb (‘sklad’,repair_allow_data_loss)

    в ответ тоже самое подскажите что делать

Ответы

  • Аппаратный сбой: отключение питания, начинает сыпаться жёсткий диск, и т.п. Или программный сбой. Чтобы снизить вероятность программного, нужно следить за устнановкой последних апдэйтов и сервиспаков на операционку и SQL Server. И ещё, у вас я так понял
    такой проблемы нет, но важно следить за нагрузкой на сервер.

    • Помечено в качестве ответа

      4 июня 2010 г. 11:03

title description author ms.author ms.reviewer ms.date ms.service ms.subservice ms.topic helpviewer_keywords

MSSQLSERVER_824

MSSQLSERVER_824: SQL Server detected a logical consistency-based I/O error.

MashaMSFT

mathoma

jopilov, randolphwest

12/13/2022

sql

supportability

reference

824 (Database Engine error)

MSSQLSERVER_824

[!INCLUDESQL Server]

Details

Attribute Value
Product name [!INCLUDEssNoVersion]
Event ID 824
Event Source MSSQLSERVER
Component SQLEngine
Symbolic Name B_HARDSSERR
Message Text SQL Server detected a logical consistency-based I/O error: %ls. It occurred during a %S_MSG of page %S_PGID in database ID %d at offset %#016I64x in file ‘%ls’. Additional messages in the SQL Server error log or system event log may provide more detail.

Symptom

You might encounter the following error message in the [!INCLUDEssNoVersion] error log or the Windows Application event log if a logical consistency check fails after reading or writing a database page:

2022-11-02 15:46:42.90 spid51      Error: 824, Severity: 24, State: 2.
2022-11-02 15:46:42.90 spid51      SQL Server detected a logical consistency-based I/O error: incorrect pageid (expected 1:43686; actual 0:0). It occurred during a read of page (1:43686) in database ID 23 at offset 0x0000001554c000 in file 'H:MSSQL16.MSSQLSERVERMSSQLDATAmy_db.mdf'. Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.

If a SELECT or DML query runs into this message, the error message is returned to the application, and the database connection is terminated.

Cause

This error indicates that Windows reports that the page is successfully read from disk, but [!INCLUDEssNoVersion] has discovered something wrong with the page. This error is similar to error 823, except that Windows didn’t detect the error. Error 824 usually indicates a problem in the I/O subsystem such as failing disk drives, firmware problems, faulty device drivers, and so on. For more information about I/O errors, see Microsoft SQL Server I/O Basics, Chapter 2.

[!INCLUDEssNoVersion] uses the following Windows APIs to perform the I/O operations: ReadFile, WriteFile, ReadFileScatter, and WriteFileGather. After completing these I/O operations, [!INCLUDEssNoVersion] checks for any error conditions associated with these API calls. If these API calls fail with an Operating System error, then [!INCLUDEssNoVersion] reports Error 823. There can be situations where the Windows API call actually succeeds, but the data transferred by the I/O operation might have encountered a logical consistency problem. These logical consistency problems are reported through Error 824.

The 824 error contains the following information:

  • The database file against which the I/O operation is performed
  • The offset with the file where the I/O operation was attempted
  • The database to which this file belongs
  • The page number that was involved in the I/O operation
  • Was the operation a read or write operation
  • Details about the logical consistency check that failed (the type of check, actual value, and expected value used for this check)

These logical consistency checks are integrity checks performed by [!INCLUDEssNoVersion] to ensure key elements of the data that was involved in the I/O transfer remained intact throughout the I/O operation. The checks include Checksum, Torn Page, Short transfer, Bad Page ID, Stale Read, and Page Audit Failure. The nature of the checks performed vary depending on different configuration options at the database and server level.

The 824 error message usually indicates that there’s a problem with underlying storage system or the hardware or a driver that is in the path of the I/O request. You can encounter this error when there are inconsistencies in the file system or if the database file is damaged.

Resolution

If you encounter error 824, you can try the following resolutions:

  • Review the suspect_pages table in msdb to check if other pages (in the same database or different databases) are encountering this problem.

    SELECT * FROM msdb..suspect_pages
      WHERE (event_type = 1 OR event_type = 2 OR event_type = 3);
  • Check the consistency of the databases that are located in the same volume (as the one reported in the 824 message) using DBCC CHECKDB command. If you find inconsistencies from the DBCC CHECKDB command, use the guidance from Knowledge Base article How to troubleshoot database consistency errors reported by DBCC CHECKDB.

  • If the database that encounters these 824 errors doesn’t have the PAGE_VERIFY CHECKSUM database option turned on, turn on the option immediately. 824 errors can occur for other reasons than a checksum failure but CHECKSUM provides the best option to verify consistency of the page after it has been written to disk. Use this script to identify databases where CHECKSUM option isn’t enabled:

     SELECT * FROM sys.databases
       WHERE page_verify_option_desc != 'CHECKSUM';
  • Review the Windows Event logs for any errors or messages reported from the Operating System or a Storage Device or a Device Driver. If they’re related to this error in some manner, you should address those errors first. For example, apart from the 824 message, you may also notice an event like «The driver detected a controller error on DeviceHarddisk4DR4» reported by the Disk source in the Event Log. In that case, you have to evaluate if this file is present on this device and then first correct those disk errors.

  • Use the SQLIOSim utility to find out if these 824 errors can be reproduced outside of regular [!INCLUDEssNoVersion] I/O requests. SQLIOSim ships with [!INCLUDEsql2008-md] and later versions, so there’s no need for a separate download.

  • Work with your hardware vendor or device manufacturer to ensure:

    • The hardware devices and configuration conform to the I/O requirements of SQL Server.
    • The device drivers and other supporting software components of all devices in the I/O path are updated.
  • If the hardware vendor or device manufacturer provided you with any diagnostic utilities, use them to evaluate the health of the I/O system.

  • Evaluate if there are Filter Drivers that exist on the I/O path of these requests. You can run the following commands to list all filter drivers on the system:

    fltmc filters
    fltmc instances
    • Exclude database and log files from being scanned by such filter drivers. For more information, see Directories and file name extensions to exclude from virus scanning
    • Check if there are any updates to these filter drivers
    • Can these filter drivers be removed or disabled to observe if the problem that results in the 824 error goes away?
  • If you’re running a virtual machine, ensure all virtualization drivers are updated or check with the virtualization vendor for more information.

  • If the problem isn’t hardware-related and a known clean backup is available, restore the database from the backup.

See also

  • Manage the suspect_pages Table (SQL Server)

Содержание

  1. MSSQLSERVER_824
  2. Сведения
  3. Симптом
  4. Причина
  5. Решение
  6. KB960770 — FIX: You receive error 605 and error 824 when you run a query that inserts data into a temporary table in SQL Server
  7. Symptoms
  8. Resolution
  9. Workaround
  10. Status
  11. More Information
  12. SQL Server 2008 R2 BPA information
  13. References
  14. References
  15. Исправление: Появляется сообщение об ошибке 605 и ошибку 824 при выполнении запроса, который вставляет данные во временную таблицу в SQL Server
  16. Проблемы
  17. Решение
  18. Обходное решение
  19. Статус
  20. Дополнительная информация
  21. Сведения о SQL Server 2008 R2 анализатора соответствия Рекомендациям
  22. Ссылки
  23. Ссылки

MSSQLSERVER_824

Область применения: SQL Server (все поддерживаемые версии)

Сведения

attribute Значение
Название продукта SQL Server
Идентификатор события 824
Источник события MSSQLSERVER
Компонент SQLEngine
Символическое имя B_HARDSSERR
Текст сообщения SQL Server обнаружил логическую ошибку ввода-вывода, связанную с согласованностью: %ls. Она произошла при %S_MSG страницы %S_PGID в базе данных с идентификатором %d по смещению %#016I64x файла «%ls». Дополнительные сведения см. в журнале ошибок SQL Server и журнале системных событий.

Симптом

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

Если запрос SELECT или DML выполняется с этим сообщением, в приложение возвращается сообщение об ошибке, а подключение к базе данных прерывается.

Причина

Эта ошибка говорит о следующем: Windows сообщает об успешном считывании страницы с диска, но SQL Server обнаружил некоторые повреждения страницы. Эта ошибка похожа на ошибку 823, за исключением того, что Windows не обнаружила ошибку. Ошибка 824 обычно указывает на проблемы в подсистеме ввода-вывода, такие как отказ дисков, проблемы встроенного ПО, неисправные драйверы устройств и т. д. Дополнительные сведения об ошибках ввода-вывода см. в главе 2 документации Майкрософт об основных операциях ввода-вывода в SQL Server.

SQL Server использует следующие API-интерфейсы Windows для выполнения операций ввода-вывода: ReadFile , WriteFile , ReadFileScatter и WriteFileGather . После завершения этих операций ввода-вывода SQL Server проверяет наличие ошибок, связанных с этими вызовами API. Если эти вызовы API завершаются ошибкой операционной системы, SQL Server сообщает об ошибке 823. Бывают ситуации, когда вызов API Windows фактически выполняется успешно, но данные, передаваемые операцией ввода-вывода, могли столкнуться с проблемой логической согласованности. Эти проблемы с логической согласованностью выводятся через ошибку 824.

В сообщении об ошибке 824 содержатся следующие сведения:

  • Файл базы данных, для которого была выполнена операция ввода-вывода.
  • Смещение в файле, где была предпринята попытка выполнить операцию ввода-вывода.
  • База данных, которой принадлежит этот файл.
  • Номер страницы, включенной в операцию ввода-вывода.
  • Была ли это операция чтения или записи.
  • Сведения о проверке логической согласованности, которая завершилась сбоем (тип проверки, фактическое значение и ожидаемое значение, используемое для этой проверки).

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

Сообщение об ошибке 824 обычно указывает на то, что возникла проблема с базовой системой хранения, оборудованием или драйвером, который находится в пути запроса ввода-вывода. Эта ошибка может возникать, если в файловой системе возникли несоответствия или если файл базы данных поврежден.

Решение

При возникновении ошибки 824 можно попробовать следующие решения.

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

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

Если в базе данных, в которой возникают эти ошибки 824, параметр базы данных не PAGE_VERIFY CHECKSUM включен, включите параметр немедленно. Ошибки 824 могут возникать по другим причинам, кроме ошибки контрольной суммы, но CHECKSUM обеспечивает наилучший вариант проверки согласованности страницы после ее записи на диск. Используйте этот скрипт для определения баз данных, в которых параметр CHECKSUM не включен:

Проверьте журналы событий Windows на наличие ошибок или сообщений от операционной системы, устройства хранения или драйвера устройства. Если они каким-то образом связаны с этой ошибкой, сначала следует устранить эти ошибки. Например, помимо сообщения 824, вы также можете заметить такое событие, как «Драйвер обнаружил ошибку контроллера в DeviceHarddisk4DR4», сообщаемое источником диска в журнале событий. В этом случае необходимо проверить наличие этого файла на устройстве, а затем сначала исправить ошибки диска.

Используйте служебную программу SQLIOSim, чтобы узнать, можно ли воспроизвести ошибки 824 за пределами обычных запросов ввода-вывода SQL Server. SQLIOSim поставляется с SQL Server 2008 (10.0.x) и более поздних версий, поэтому отдельная загрузка не требуется.

Обратитесь к поставщику оборудования или изготовителю устройства, чтобы убедиться, что:

  • Аппаратные устройства и конфигурация соответствуют требованиям ввода-вывода SQL Server.
  • драйверы устройств и другие программные компоненты, поддерживающие все устройства в пути ввода-вывода, обновлены.

Если поставщик оборудования или изготовитель устройства предоставил вам какие-либо диагностические программы, используйте их для оценки работоспособности системы ввода-вывода.

Оцените наличие драйверов фильтров в пути ввода-вывода этих запросов. Чтобы получить список всех драйверов фильтров в системе, можно выполнить следующие команды:

  • Исключить файлы базы данных и журналов из проверки с помощью таких драйверов фильтров. Дополнительные сведения см. в разделе Каталоги и расширения имен файлов для исключения из проверки на вирусы.
  • Проверьте наличие обновлений для этих драйверов фильтра.
  • Можно ли удалить или отключить эти драйверы фильтров, чтобы увидеть, исчезнет ли проблема, которая приводит к ошибке 824?

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

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

Источник

KB960770 — FIX: You receive error 605 and error 824 when you run a query that inserts data into a temporary table in SQL Server

Bug: #50003826 (SQL Hotfix)

Microsoft distributes Microsoft SQL Server 2008 fixes as one downloadable file. Because the fixes are cumulative, each new release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 fix release.

Symptoms

In SQL Server 2008, you run a query that inserts data into a temporary table. The insert statement contains a subquery that references the same temporary table. When you run the query, you may receive an error message that resembles the following:

Msg 605, Level 21, State 3, Line 1

Attempt to fetch logical page (1:225) in database 2 failed. It belongs to allocation unit 281474980315136 not to 504403158513025024.

If you run the query again, you receive an error message that resembles the following:

Msg 824, Level 24, State 2, Line 1

SQL Server detected a logical consistency-based I/O error: incorrect checksum (expected: 0x50758180; actual: 0x15658bfc). It occurred during a read of page (1:336) in database ID 2 at offset 0x000000002a0000 in file ‘C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATAtempdb.mdf’. Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.

In some cases, you may also receive an error message that resembles the following:

Msg 601, Level 12, State 3, Procedure p rocedure name, Line line number
Could not continue scan with NOLOCK due to data movement.

A possible query construct that can produce these errors is as follows:

Resolution

The fix for this issue was first released in Cumulative Update 3. For more information about how to obtain this cumulative update package for SQL Server 2008, click the following article number to view the article in the Microsoft Knowledge Base:

960484 Cumulative update package 3 for SQL Server 2008Note Because the builds are cumulative, each new fix release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 fix release. We recommend that you consider applying the most recent fix release that contains this hotfix. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

956909 The SQL Server 2008 builds that were released after SQL Server 2008 was releasedAfter you install this cumulative update package, you have to enable trace flag 4135. To do this, you can add the -T4135 startup parameter. Or, you can use the dbcc traceon(4135) statement for a specific session.

Workaround

To work around this issue, add a column that has both a clustered primary key and an identity property to the temporary table. For example, run the following statement to change the temporary table:

Status

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

More Information

Although you encounter error message 824 or 605, the database does not become corrupted. Also, these error messages reference pages from the tempdb database.

For more information about what files are changed, and for information about any prerequisites to apply the cumulative update package that contains the hotfix that is described in this Microsoft Knowledge Base article, click the following article number to view the article in the Microsoft Knowledge Base:

960484 Cumulative update package 3 for SQL Server 2008

SQL Server 2008 R2 BPA information

The SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) provides a rule to detect situations in which you do not have the cumulative update or the trace flag enabled to address this issue. The SQL Server 2008 R2 BPA supports both SQL Server 2008 and SQL Server 2008 R2.

If you run the BPA tool and encounter a «Database Engine — tempdb errors fix or trace flag missing» warning, you have to check the version of SQL Server and the trace flags that are configured to enable this fix.

References

SQL Server 2008 R2 BPA Rule

tempdb errors fix or trace flag missing

Note You can enable trace flag 4135 or trace flag 4199 to enable this fix. Trace flag 4135 was introduced in Cumulative Update package 3 for SQL Server 2008. Trace flag 4135 is also available in SQL Server 2008 Service Pack 1, in SQL Server 2008 Service Pack 2, and in SQL Server 2008 R2. Trace flag 4199 was introduced in Cumulative Update package 7 for SQL Server 2008, in Cumulative Update package 7 for SQL Server 2008 Service Pack 1, and in Cumulative Update package 1 for SQL Server 2008 R2. For more information about trace flag 4199, click the following article number to view the article in the Microsoft Knowledge Base:

974006 Trace flag 4199 is added to control multiple query optimizer changes previously made under multiple trace flags Because the fix for this problem involves a combination of a specific hotfix build and a trace flag to enable the fix, we are including the following table to show the different scenarios and the recommended action for you to take for each scenario.

For more information about the latest SQL Server builds, click the following article number to view the article in the Microsoft Knowledge Base:

957826 Where to find information about the latest SQL Server builds

References

For more information about the list of builds that are available after the release of SQL Server 2008, click the following article number to view the article in the Microsoft Knowledge Base:

956909 The SQL Server 2008 builds that were released after SQL Server 2008 was released

For more information about the Incremental Servicing Model for SQL Server, click the following article number to view the article in the Microsoft Knowledge Base:

935897 An Incremental Servicing Model is available from the SQL Server team to deliver hotfixes for reported problems

For more information about the naming schema for SQL Server updates, click the following article number to view the article in the Microsoft Knowledge Base:

822499New naming schema for Microsoft SQL Server software update packagesFor more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:

824684 Description of the standard terminology that is used to describe Microsoft software updates

Источник

Исправление: Появляется сообщение об ошибке 605 и ошибку 824 при выполнении запроса, который вставляет данные во временную таблицу в SQL Server

Ошибка: #50003826 (исправление SQL)

Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 как один загружаемый файл. Так как исправления являются накопительными, каждый выпуск содержит все исправления и все исправления безопасности, которые были включены в предыдущие 2008 SQL Server исправления выпуска.

Проблемы

В SQL Server 2008 выполнение запроса, который вставляет данные во временную таблицу. Инструкция insert содержит вложенный запрос, который ссылается на одну и ту же временную таблицу. При выполнении запроса появляется сообщение об ошибке, подобное приведенному ниже:

Ошибка msg 605, 21 уровень состояние 3, строка 1Attempt для выборки логической страницы (1:225) в базе данных 2. Он принадлежит к 281474980315136 единицы размещения не для 504403158513025024.

При выполнении запроса, появляется сообщение об ошибке, подобное приведенному ниже:

Сообщение 824, уровень 24, состояние 2, строка 1

SQL Server обнаружил логическую ошибку ввода-вывода на основе соответствия: Неверная контрольная сумма (ожидается: 0x50758180; фактическая: 0x15658bfc). Она произошла во время чтения страницы (1:336) в базе данных ID 2 по смещению 0x000000002a0000 в файле «C:Program создаваемую SQL ServerMSSQL10. SQL2008MSSQLDATAtempdb.mdf «. Дополнительные сообщения в журнале событий системы или журнал ошибок SQL Server может предоставить более подробные сведения. Это серьезная ошибка, которую может нарушить целостность базы данных и должны быть исправлены немедленно. Выполните проверку согласованности базы данных (DBCC CHECKDB). Эта ошибка может быть вызвана многими причинами. Дополнительные сведения содержатся в разделе электронной документации по SQL Server.

В некоторых случаях может также появиться сообщение об ошибке, подобное приведенному ниже:

Msg 601, уровень 12, состояние 3, процедура p rocedure имя, номер строкине удалось продолжить просмотр с NOLOCK вследствие перемещения данных.

Запрос конструкцию, которая может приводить к этим ошибкам выглядит следующим образом:

Решение

Исправление этой уязвимости первого выпуска накопительного обновления 3. Дополнительные сведения о том, как получить этот накопительный пакет обновления для SQL Server 2008, щелкните следующий номер статьи базы знаний Майкрософт:

960484 Накопительный пакет обновления 3 для SQL Server 2008Примечание. Поскольку построения являются накопительными, каждый новый выпуск исправление содержит все исправления и все исправления, входившие в состав предыдущих SQL Server 2008 выпуска исправлений. Мы рекомендуем рассмотреть применение последнего выпуска исправления, содержащего это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

956909 SQL Server 2008 выполняет построение, выпущенных после выпуска SQL Server 2008После установки этот накопительный пакет обновления, необходимо включить флаг трассировки 4135. Чтобы сделать это, можно добавить -T4135 параметра запуска. Или можно использовать инструкцию dbcc traceon(4135) для конкретного сеанса.

Обходное решение

Чтобы обойти эту проблему, добавьте столбец с кластеризованного первичного ключа и свойство identity во временной таблице. Например выполните следующую инструкцию, чтобы изменить временной таблицы:

Статус

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

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

Несмотря на то, что возникнет сообщение об ошибке 824 или 605 базы данных не поврежден. Кроме того эти сообщения об ошибках ссылаются на страницы в базе данных tempdb.Дополнительные сведения о том, какие файлы изменяются, а для получения сведений о компонентах, необходимых для применения в накопительный пакет обновления, содержащий исправление, описанное в статье базы знаний Майкрософт, щелкните следующий номер статьи для просмотра Статья базы знаний Майкрософт:

960484 Накопительный пакет обновления 3 для SQL Server 2008

Сведения о SQL Server 2008 R2 анализатора соответствия Рекомендациям

SQL Server 2008 R2 анализатор соответствия рекомендациям (SQL Server 2008 R2 BPA) предоставляет правила для определения ситуаций, в которых нет накопительного обновления или флаг трассировки включен для решения этой проблемы. SQL Server 2008 R2 BPA поддерживает SQL Server 2008 и SQL Server 2008 R2. Если запустить средство анализатора соответствия Рекомендациям и встретиться «СУБД — tempdb исправить ошибки или отсутствует флаг трассировки» предупреждение, необходимо проверить версию SQL Server и флаги трассировки, которые настроены для активации этого исправления.

Ссылки

Правило SQL Server 2008 R2 анализатора соответствия Рекомендациям

исправить ошибки базы данных tempdb или отсутствует флаг трассировки

Примечание. Можно включить флаг трассировки 4135 или флаг трассировки 4199 Включение данного исправления. Флаг трассировки 4135 был представлен в накопительный пакет обновления 3 для SQL Server 2008. Флаг трассировки 4135 доступен также в Пакет обновления 1 для SQL Server 2008, Пакет обновления 2 для SQL Server 2008 и SQL Server 2008 R2. Флаг трассировки 4199 был введен в накопительный пакет обновления 7 для SQL Server 2008, накопительный пакет обновления 7 для SQL Server 2008 Пакет обновления 1 и накопительный пакет обновления 1 для SQL Server 2008 R2. Дополнительные сведения о флаге трассировки 4199 щелкните следующий номер статьи базы знаний Майкрософт:

974006 Флаг трассировки 4199 добавляется к элементу управления, несколько изменений оптимизатор запросов, сделанных в группе несколько флагов трассировки Так как исправление для этой проблемы включает в себя сочетание построения исправления и флага трассировки, чтобы активировать его, предоставляются вместе в следующей таблице показаны различные сценарии и рекомендуемые действия для выполнения для каждого сценария. Дополнительные сведения о последней версии сборок SQL Server щелкните следующий номер статьи базы знаний Майкрософт:

957826 Где найти сведения о последней версии SQL Server формирует

Ссылки

Дополнительные сведения о списке сборок, доступных после выпуска SQL Server 2008 щелкните следующий номер статьи базы знаний Майкрософт:

956909 SQL Server 2008 выполняет построение, выпущенных после выпуска SQL Server 2008Дополнительные сведения о добавочных модель обслуживания для SQL Server щелкните следующий номер статьи базы знаний Майкрософт:

935897 Модель обслуживания изменений, используемая рабочей группой SQL Server, предоставляет модель ISM для распространения исправлений обнаруженных проблемДополнительные сведения о схеме именования для обновления SQL Server щелкните следующий номер статьи базы знаний Майкрософт:

822499Новая схема присвоения имен пакетам обновлений программного обеспечения Microsoft SQL ServerДля получения дополнительных сведений о терминологии обновлений программного обеспечения щелкните следующий номер статьи базы знаний Майкрософт:

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

Источник

   DimonNT

22.10.20 — 07:43

Друзья. Случилось горе-беда, упала база ТиС на SQL. Сразу оговорюсь: База была файловая, но т.к. один из регистров был слишком огромный (известное ограничение 1с 7.7) с июня сего года базу я экспортировал в SQL и всё бы ничего, если бы не моя лень, лень сделать бэкап…

И вот попал: SQL Server обнаружил логическую ошибку ввода-вывода, связанную с согласованностью: неверная контрольная сумма (ожидаемая 0x207589f9; фактическая: 0x21f589f9). Она произошла при прочитать страницы: (1:25392) в базе данных с идентификатором 5 по смещению: 0x0000000c66000 файла: c:skladsqlskladsql.mdf

Ну и предварительно сделав бэкап, я давай её лечить разными снадобьями:

DBCC CHECKDB (‘skladsql’, REPAIR_FAST)

автор

Сообщение 7985, уровень 16, состояние 2, строка 1

Предварительная проверка системных таблиц: объект с идентификатором 5. Не удалось

прочитать страницу (1:25392) и заблокировать ее кратковременной блокировкой типа SH.

Инструкция проверки прервана из-за неустранимой ошибки.

Результаты DBCC для «skladsql».

Сообщение 5233, уровень 16, состояние 98, строка 1

Ошибка таблицы: идентификатор единицы размещения 327680, страница (1:25392). Выполнить

тест (IS_OFF (BUF_IOERR, pBUF->bstat)) не удалось. Значения равны 12584969 и -6.

CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности, не связанных ни с

одним объектом.

CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в базе данных

«skladsql».

DBCC CHECKDB (‘skladsql’, REPAIR_REBUILD)

автор

Сообщение 7985, уровень 16, состояние 2, строка 1

Предварительная проверка системных таблиц: объект с идентификатором 5. Не удалось

прочитать страницу (1:25392) и заблокировать ее кратковременной блокировкой типа SH.

Инструкция проверки прервана из-за неустранимой ошибки.

Результаты DBCC для «skladsql».

Сообщение 5233, уровень 16, состояние 98, строка 1

Ошибка таблицы: идентификатор единицы размещения 327680, страница (1:25392). Выполнить

тест (IS_OFF (BUF_IOERR, pBUF->bstat)) не удалось. Значения равны 12584969 и -6.

CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности, не связанных ни с

одним объектом.

CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в базе данных

«skladsql».

DBCC CHECKDB (‘skladsql’, REPAIR_ALLOW_DATA_LOSS)

автор

Сообщение 7985, уровень 16, состояние 2, строка 1

Предварительная проверка системных таблиц: объект с идентификатором 5. Не удалось

прочитать страницу (1:25392) и заблокировать ее кратковременной блокировкой типа SH.

Инструкция проверки прервана из-за неустранимой ошибки.

Результаты DBCC для «skladsql».

Сообщение 5233, уровень 16, состояние 98, строка 1

Ошибка таблицы: идентификатор единицы размещения 327680, страница (1:25392). Выполнить

тест (IS_OFF (BUF_IOERR, pBUF->bstat)) не удалось. Значения равны 12584969 и -6.

CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности, не связанных ни с

одним объектом.

CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в базе данных

«skladsql».

DBCC checkdb(‘skladsql’)

ALTER DATABASE skladsql SET SINGLE_USER WITH ROLLBACK IMMEDIATE

автор

Сообщение 7985, уровень 16, состояние 2, строка 1

Предварительная проверка системных таблиц: объект с идентификатором 5. Не удалось

прочитать страницу (1:25392) и заблокировать ее кратковременной блокировкой типа SH.

Инструкция проверки прервана из-за неустранимой ошибки.

Результаты DBCC для «skladsql».

Сообщение 5233, уровень 16, состояние 98, строка 1

Ошибка таблицы: идентификатор единицы размещения 327680, страница (1:25392). Выполнить

тест (IS_OFF (BUF_IOERR, pBUF->bstat)) не удалось. Значения равны 12584969 и -6.

CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности, не связанных ни с

одним объектом.

CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в базе данных

«skladsql».

DBCC CHECKALLOC (‘skladsql’)

автор

Сообщение 5233, уровень 16, состояние 98, строка 1

Ошибка таблицы: идентификатор единицы размещения 327680, страница (1:25392). Выполнить

тест (IS_OFF (BUF_IOERR, pBUF->bstat)) не удалось. Значения равны 12584969 и -6.

Сообщение 7985, уровень 16, состояние 2, строка 1

Предварительная проверка системных таблиц: объект с идентификатором 5. Не удалось

прочитать страницу (1:25392) и заблокировать ее кратковременной блокировкой типа SH.

Инструкция проверки прервана из-за неустранимой ошибки.

_____________________========================________________________

Ничего это не дало вообщем…  на соседнем форуме: https://www.sql.ru/forum/1330120/pomogite-podnyat-bazu

Всыпали конечно пинка, местами даже правильный маршрут дали.

Что сосбна я сделал: Создал пустую БД и с помощью встроенной утилиты: «Мастер импорта и экспорта данных» я перетащил живые таблицы в чистую базу.

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

Перечень повреждённых таблиц:

_1SCONNECT

_1SCONST

_1SCRDOC

_1SSTREAM

DH1731

DH2051

DH2695

DH3504

DH4389

DH9054

DH9125

DT1611

DT1774

DT2051

DT3614

DT4389

DT5292

DT9054

DT9125

RA2351

RA2964

RA351

RA4314

RA4335

RA438

RA4480

RG2351

RG2964

RG351

RG4314

RG4335

RG438

RG4480

SC131

SC84

SC9246

SC9249

___===__

Регистры я так понял фиг бы с ними, их можно будет через Тестирование и исправление восстановить…

Перейдём к делу: Все повреждённые базы, я так понял входят в диапазон повреждённой страницы данных: (1:25392), однако не малый…

Я пытаюсь сделать выборку в одной из повреждённых таблиц:

select * from skladsql.._1sconnect

На что получаю:

Сообщение 829, уровень 21, состояние 1, строка 1

Страница (1:25392) в базе данных с идентификатором 5 помечена RestorePending, что может означать повреждение диска. Чтобы вернуться к обычному состоянию, выполните операцию восстановления.

Возможно ли как-то снять пометку с этой страницы и аккуратно построчно выдернуть данные из повреждённых таблиц?

ps. На удивление диск живее все живых, SMART в идеале, также прогонял Victoria, всё гуд…

   Djelf

11 — 22.10.20 — 17:57

(0) Диск то какой? ssd? У них бывает такое (из-за ошибок в прошивке) что и смарт в порядке, и любое тестирование проходит, а сектора сыпятся.

Если ssd — либо гугли бывает ли на нем проблема и на какой прошивке, либо меняй от греха подальше.

И то что РАНЬШЕ в dbf база не падала тоже не показатель.

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

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

Прошил на новую версию, но не сильно удивился, когда он однажды обнунлился целиком…

   DimonNT

17 — 10.11.20 — 05:44

(4) Полная

(5) Читал, не помогло, база окончательно рухнула в «восстановление»…

(10) У меня 2 машины работают в этой базе, и когда вторая начинает работать с документами, или делает какую-нибудь реализацию, операции выполняются крайне долго, каждая форма висит по 1-2 минуты перед тем как открыться…

(11) Диск HDD, комп ровестник этой базы)))

(3) в БД есть остатки за прошлые годы, а сколько и чего и почём было неведомо.. в бамажных доках нет инфы…

(15) Я не могу такую производительность объяснить никак, разве что если вы под терминалом народ загоняете…

ДРУЗЬЯ.

Решил всё же отчитаться, а то есть куча тем безо всяких решений.

Я решил это кривовато, но более-менее со временем всё устаканилось.

Развернул файловую версию полугодовой давности, выгрузил её в SQ и с помощью операции: ЭКСПОРТ, которая в SMSS, каждую таблицу экспортировал и какие таблицы не давал скопировать, те я выдернул из старой базы.

По остаткам всё красиво, потерялся десяток строк номенклатуры, но это мелочи….

Ну и по регистрам остатков тоже немного были расхождения… но более-менее удалось выровнялось черед дополнительный ввод остатков и замена карточек на…. благо с июня доки надо было поднять, а не 10 летней давности…

Как проверить базу данных на наличие ошибок?

  • 5,8K Просмотров
  • Последнее сообщение 28 октября 2019

berivan

berivan
написал
28 октября 2019

День добрый.

В общем-то вопрос в названии темы. В РМК как-то странно начали считаться деньги в кассе. Сформировал в Журнале событий ошибки, там были предупреждения, о необходимости проверить базу данных.

Danil


Админ

Danil
написал
28 октября 2019

Здравствуйте!

Подозреваете, что база физически имеет ошибки? У вас вроде MSSQL он достаточно надежен в этом плане, хотя и на старуху бывает проруха. Давайте сначала попробуем понять, что у вас пошло не так.

В РМК как-то странно начали считаться деньги в кассе.

Можно подробнее? Что смущает?

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

Текст события скиньте пожалуйста.

berivan

berivan
написал
28 октября 2019

Можно подробнее? Что смущает?

Отработали день, а z-отчет прошел с 0 суммой, нет информации ни о продажах, ни о деньгах — все по 0. На следующий день, деньги в кассе совсем не сходились с тем, что должно быть. 

Текст события скиньте пожалуйста.

SQL Server обнаружил логическую ошибку ввода-вывода, связанную с согласованностью: неправильная контрольная сумма (ожидаемая: 0xd4ced154; фактическая: 0xee2564a6). Она произошла при прочитать страницы (1:2152) в базе данных с идентификатором 4 по смещению 0x000000010d0000 файла «D:SanSanDATAMSSQL12.SQLEXPRESSMSSQLDATAMSDBData.mdf». Дополнительные сведения см. в журнале ошибок SQL Server и журнале системных событий. Это серьезная ошибка, которая угрожает целостности базы данных и должна быть немедленно исправлена. Выполните полную проверку базы данных на согласованность (DBCC CHECKDB). Эта ошибка может быть вызвана многими причинами; дополнительные сведения см. в электронной документации по SQL Server.

Невозможно вставить запись журнала, подробную запись резервного копирования или восстановления в базу данных msdb. Это может указывать на неполадки с базой данных msdb. Операция резервного копирования или восстановления завершилась успешно.

Обработано 1608 страниц для базы данных «SanSan_log», файл «SanSan3_log» для файла 1.

Обработано 2 страниц для базы данных «SanSan_log», файл «SanSan3_log_log» для файла 1.

BACKUP DATABASE успешно обработал 1610 страниц за 0.826 секунд (15.225 MБ/сек).

Выполнение данной инструкции было прервано.

Mihail


Админ

Mihail
написал
28 октября 2019

Здравствуйте. Судя по сообщению «неполадки с базой данных msdb«, проблема у вас с системной базой данных самого SQL сервера. Проверить MS SQL базу можно выполнив запрос DBCC CHECKDB(‘имя_базы’) через приложение SQL Server Management Studio, где в имя_базы подставить msdb. Этот запрос только диагностический, он не исправляет обнаруженные ошибки. Обычно в конце результата запроса выводится количество найденных ошибок. Для восстановления можно попробовать запрос DBCC CHECKDB(‘имя_базы’, REPAIR_ALLOW_DATA_LOSS), но предварительно сохраните все ваши рабочие базы, т.к. из-за поломки системной базы возможно придется переустанавливать MS SQL Server. После исправления нужно еще раз будет запустить диагностический запрос и проверить, что количество ошибок стало ноль.

berivan

berivan
написал
28 октября 2019

CHECKDB обнаружил 0 ошибок размещения и 9 ошибок согласованности в базе данных «msdb».

repair_allow_data_loss — это минимальный уровень исправления для ошибок, найденных DBCC CHECKDB (msdb).

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

Вот такое выдало при проверке. 

 Вбиваю эту команду — DBCC CHECKDB(msdb, REPAIR_ALLOW_DATA_LOSS)

И получаю такой ответ:

Сообщение 7919, уровень 16, состояние 3, строка 1

Инструкция восстановления не обработана. База данных должна находиться в однопользовательском режиме.

Как перевести в однопользовательский режим?

Danil


Админ

Danil
написал
28 октября 2019

ALTER DATABASE [имя базы] SET SINGLE_USER WITH ROLLBACK IMMEDIATE

потом 

ALTER DATABASE [имя базы] SET MULTI_USER WITH ROLLBACK IMMEDIATE

что бы вернуть в многопользовательский режим, соответственно все программы кроме SQL Server Management Studio должны быть закрыты

кроме того, я бы проверил ваш диск на наличие ошибок, если у вас не было внезапного отключения света (или чего-то подобного) то такая история обычно предвестник того что винт выходит из строя

berivan

berivan
написал
28 октября 2019

Проблемы со светом были. Винт проверяли, ничего критичного (BAD нет). Наша база проходит проверку без ошибок. А вот системная msdb — выдает ошибки…

Danil


Админ

Danil
написал
28 октября 2019

Как вариант, делаете бэкап вашей базы, удаляете MSSQL. Ставите его заново. Системная база будет новая и целая. Потом восстанавливаете вашу базу.

berivan

berivan
написал
28 октября 2019

— Отредактировано 28 октября 2019

Все прошло хорошо. Перевел в однопользовательский режим, исправил ошибки, проверил — ошибок нет. Перевел обратно в многопользовательский. Посмотрим, как будет работать дальше. Спасибо за помощь!

Понравилась статья? Поделить с друзьями:
  • Sql server код ошибки 3417
  • Sql server native client ошибка выделения памяти
  • Sql server management studio ошибка при установке
  • Sql server management studio журнал ошибок
  • Sql server agent ошибка 1067