MSSQLSERVER_605

Изменения: 12 декабря 2006 г.

Подробности

Название продукта

SQL Server

Номер версии продукта

9.0

Номер сборки продукта

9.00.1281.60

Идентификатор события

605

Источник события

MSSQLSERVER

Компонент

SQLEngine

Символическое имя

WRONGPAGE

Текст сообщения

Не удалось выбрать логическую страницу с идентификатором %S_PGID в базе данных %d. Она принадлежит единице размещения %I64d, а не %I64d.

Объяснение

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

Ошибки повреждения данных

Уровень серьезности 21 указывает на потенциальное повреждение данных. Его причиной может стать повреждение цепочки страниц, карты распределения индекса или неверная запись в представлении каталога sys.objects для данного объекта. Зачастую такие ошибки вызваны сбоем оборудования или драйвера дискового устройства.

Нерегулярные ошибки

Уровень серьезности 12 означает потенциальную нерегулярную ошибку. Такие ошибки возникают в кэше и не указывают на повреждение данных на диске. Нерегулярные ошибки 605 могут быть вызваны следующими причинами.

  • Операционная система преждевременно извещает SQL Server о завершении операции ввода-вывода. В таком случае будет выдано сообщение об ошибке, хотя реальное повреждение данных места не имело.
  • Запуск запроса с подсказкой оптимизатору NOLOCK или задание уровня изоляции транзакций READ UNCOMMITTED. Когда запрос с подсказкой NOLOCK или на уровне изоляции READ UNCOMMITTED пытается прочитать данные, которые перемещены или изменены другим пользователем, возникает ошибка 605. Чтобы убедиться, что имеет место нерегулярная ошибка 605, перезапустите запрос позже. Дополнительные сведения см. в статье базы знаний.

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

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

  1. Выясните, какие таблицы связаны с указанными в сообщении единицами размещения, запустив следующий запрос. Замените <allocation_unit_id> указанными в сообщении об ошибке единицами размещения.

    USE <database_name>;
    GO
    SELECT au.allocation_unit_id, OBJECT_NAME(p.object_id) AS table_name, fg.name AS filegroup_name,
        au.type_desc AS allocation_type, au.data_pages, partition_number
    FROM sys.allocation_units AS au
    JOIN sys.partitions AS p ON au.container_id = p.partition_id
    JOIN sys.filegroups AS fg ON fg.data_space_id = au.data_space_id
    WHERE au.allocation_unit_id = <allocation_unit_id> OR au.allocation_unit_id = <allocation_unit_id>
    ORDER BY au.allocation_unit_id;
    GO
    
  2. Выполните инструкцию DBCC CHECKTABLE без предложения REPAIR для таблицы, связанной со вторым идентификатором единицы размещения, указанным в сообщении об ошибке.

  3. Выполните инструкцию DBCC CHECKDB без предложения REPAIR как можно скорее, чтобы выявить весь поврежденный экстент в базе данных.

  4. Проверьте в журнале ошибок наличие других ошибок, которые обычно сопровождают ошибку 605 и выясните, не указывают ли они на какие-либо проблемы, связанные с системой или оборудованием. Устраните все неполадки оборудования, обнаруженные в журналах.

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

    1. Если неполадка не связана с оборудованием и есть резервная копия, не содержащая ошибок, восстановите базу данных из этой копии. Восстановление страниц позволяет эффективно восстанавливать из резервных копий только поврежденные страницы.
    2. Для исправления повреждения запустите инструкцию DBCC CHECKDB с предложением REPAIR согласно рекомендации операции DBCC CHECKDB, выполненной на шаге 2.
    Aa337419.Caution(ru-ru,SQL.90).gifВнимание!
    Если достоверно не известно, к каким последствиям приведет выполнение инструкции DBCC CHECKDB с выбранным предложением REPAIR, перед выполнением этой инструкции обратитесь к основному поставщику услуг технической поддержки.
    1. Если в результате выполнения инструкции DBCC CHECKDB с одним из предложений REPAIR неполадка устранена не была, обратитесь к основному поставщику услуг технической поддержки. Подготовьте к просмотру выходные данные инструкции DBCC CHECKDB.

Только для внутреннего использования

<xmrFileHeader><buildNo>9.00.1281.60</buildNo><component>SQLEngine</component><dsDbName></dsDbName><dsProjectName>SQLServer2005</dsProjectName><exportDate>2005-08-22T14:00:12</exportDate><importDate>2005-08-22T12:43:00</importDate><prodContact>pingwang</prodContact><prodName>SQL Server</prodName><prodVer>9.0</prodVer><sourceFileDepotPath></sourceFileDepotPath><sourceFileExt></sourceFileExt><sourceFileName></sourceFileName><userDefined></userDefined><xmrFilePath>.\sqlXMR.xml</xmrFilePath></xmrFileHeader><resourceString resourceStringGuid="d8d3a22e-1ff8-48a4-891f-4c8619437e24" resourceStringProxyID="MSSQL_ENG000605"><exportStatus>Do Not Export</exportStatus><importStatus>Unchanged</importStatus><inActive>No</inActive><inserts></inserts><message><cause>Может возникнуть для любой таблицы. Возникает, если идентификатор единицы размещения фактической страницы не совпадает с ожидаемым идентификатором единицы размещения. Обычно указывает на повреждение страницы или размещения.</cause><causeCorrectiveActionStatus>Dev Signed Off</causeCorrectiveActionStatus><correctiveAction>Сначала выполните DBCC CHECK для таблицы, затем для базы данных.</correctiveAction><error><exMsgBoxID></exMsgBoxID><exMsgBoxSource></exMsgBoxSource></error><event><eventCategory></eventCategory><eventFacility></eventFacility><eventLanguage></eventLanguage><eventSeverityType></eventSeverityType><eventType></eventType><momEvent>Yes</momEvent><momOwner>donv</momOwner><winRegEventID>605</winRegEventID><winRegEventSource>MSSQLSERVER</winRegEventSource></event><msuid></msuid></message><numericID>605</numericID><owner>srikumar</owner><pssReview><pssComments></pssComments><pssDebugger>No</pssDebugger><pssEngineer></pssEngineer><PSSSupportability>No</PSSSupportability></pssReview><suspect>No</suspect><symbolicName>WRONGPAGE</symbolicName><text>Ошибка при попытке выборки логической страницы %S_PGID в базе данных %d. Она принадлежит единице размещения %I64d, а не %I64d.</text><type></type><ueReview><assignedTo></assignedTo><bugID></bugID><bugRequired>No</bugRequired><comments></comments><docStudio><dsTopicId></dsTopicId><export>Yes</export></docStudio><editor></editor><revisedStringText></revisedStringText><workStatus>Not Reviewed</workStatus><writer></writer></ueReview><userDefined><eventLoggingLevel></eventLoggingLevel></userDefined></resourceString>

См. также

Другие ресурсы

DBCC CHECKDB (Transact-SQL)
DBCC CHECKTABLE (Transact-SQL)
sys.objects (Transact-SQL)
Страницы и экстенты
Восстановление страниц

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

12 декабря 2006 г.

Измененное содержимое
  • Добавлены подробные сведения о причинах возникновения нерегулярных ошибок 605.
  • Добавлены подробные сведения в раздел действий пользователя.