Ошибка при попытки выборки логической единицы

Ошибка: #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, процедура procedure имя, номер строкине удалось продолжить просмотр с NOLOCK вследствие перемещения данных.

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

insert #table1select s.col1, s.col2from #table2 s inner loop join #table1 t on s.col3 = t.col3 


Решение

Исправление этой уязвимости первого выпуска накопительного обновления 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 во временной таблице. Например выполните следующую инструкцию, чтобы изменить временной таблицы:

ALTER TABLE #TempTableADD id integer IDENTITY(1,1) CONSTRAINT id PRIMARY KEY CLUSTERED


Статус

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

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

Несмотря на то, что возникнет сообщение об ошибке 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 или отсутствует флаг трассировки

RID3808

Примечание. Можно включить флаг трассировки 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 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт

Добрый день,

в общем проблема возникала после остановки виртуального хоста из за нехватки места (Hyper-V).

Возникли проблемы с двумя базами — одна SharePoint 2013 (контента), вторая 1С — бухгалтерия (в общем то, что надо не какая нибудь база поиска)… SQL 2015

Базы в статусе — «ожидание восстановление»

По базе 1С — администратор настраивал резервное копирование ежедневное и ежемесячное. Однако удалил часть файлов старых из за того, что они занимали место. Остались 4 BAK файла, за последние 4 дня и один за месяц.

Копирование производилось полное (установлено опция). При попытке восстановить, выдает ошибку «Не может проверить хранилище».

Когда я выбираю — восстановить из файла, указываю файл и нажимаю просмотреть содержимое возникает ошибка:

ЗАГОЛОВОК: Microsoft.SqlServer.Smo
System.Data.SqlClient.SqlError: RESTORE HEADERONLY прервано с ошибкой.
Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=11.0.3000.0+((SQL11_PCU_Main).121019-1325+)&LinkId=20476

И ТАК НА ВСЕХ файла BAK 5 шт … кстати их объем достаточно велик, база 5 Гб — BAK файлы по 9 Гб

По базе SharePoint — бэкапа никакого и не было.

Прогонял через DBCC CHECKDB (‘DB’, repair_allow_data_loss) — выдает ошибки

Пробовали способ:

Создание чистой базы

и подмена старой (кроме журналов (остаются новые)), затем выполнение проверки повторной. Не принесло результатов.

Сообщение 7984, уровень 16, состояние 1, строка 2
Предварительная проверка системных таблиц: объект с идентификатором 3. Страница (1:740808) имеет непредвиденный тип 2. Инструкция проверки прервана из-за неустранимой ошибки.

В журнале приложений:

«Ошибка при попытке выборки логической страницы (1:741667) в базе данных 5. Она принадлежит единице распределения 72057663922765824, а не 562949956960256.»

Прошу помогите, что можно придумать еще с бэкапами и что посоветуете сделать в такой ситуации если их вовсе нет.

Спасибо

  • Изменено

    10 марта 2016 г. 21:18

  • Изменен тип
    Иван ПродановMicrosoft contingent staff, Moderator
    25 марта 2016 г. 6:10

1C
 
Кто встречался с такой ошибкой «Ошибка при попытке выборки логической страницы»?
0

na1kk

20.03.23

11:23

Ошибка СУБД:

Microsoft SQL Server Native Client 11.0: Ошибка при попытке выборки логической страницы (1:45144933) в базе данных 5. Она принадлежит единице распределения -8247038129288511488, а не 72057636358520832.

HRESULT=80004005, SQLSrvr: SQLSTATE=HY000, state=3, Severity=15, native=605, line=1

1

na1kk

20.03.23

11:30

Проверка целостности рабочей база со стороны SQL ошибок в структуре не выявила.

2

АгентБезопасной Нацио

20.03.23

11:36

(1) как проверяли?

3

na1kk

20.03.23

11:50

(2) DBCC CHECKDB (‘ERP_WORK’) WITH  MAXDOP = 32;

4

АгентБезопасной Нацио

20.03.23

12:15

(3) а если все-таки явно указать ALL_ERRORMSGS ?

5

vis_tmp

20.03.23

12:36

(0) Гуглил?

Много выдаётся таких же случаев.

6

na1kk

20.03.23

12:55

(5) угу. кроме CHECKDB не особо нашел.

7

na1kk

20.03.23

13:25

(4) ошибок нет

8

АгентБезопасной Нацио

20.03.23

14:44

(7) странно. а точно ту базу проверяете? а если ограничить проверки «только физикой», но таблоком заставить их выполняться не над снимками, а над таблицами?

но вообще, лучше на более специальный форум сходить…

9

na1kk

20.03.23

15:08

https://prnt.sc/hvsIHt2MLPdw

10

na1kk

20.03.23

15:08

(9) вместо вывода информации он возвращает пусто

11

АгентБезопасной Нацио

20.03.23

18:02

(10) «По умолчанию выходные данные отправляются в журнал ошибок. Если вы хотите, чтобы выходные данные возвращались к вашему текущему соединению, включите флаг трассировки 3604.»©

Главная
> Uncategorized > [Решено] 1С ошибка при попытке выборки логической страницы

Что и почему сломалось неизвестно. База MSSQL соответственно
Бэкап средствами mssql

ALTER DATABASE Buh
--монопольный режим
SET SINGLE_USER 
WITH ROLLBACK IMMEDIATE; 
GO 
--проверка базы с потерей данных, по справке можно и без нее, но тут уже не 
--легкий случай
DBCC CHECKDB (N'BUH', repair_allow_data_loss) WITH NO_INFOMSGS 
GO 
--возвращаем базы в многопользовательский режим
ALTER DATABASE buh
SET MULTI_USER;

Инфостат натолкнул на решение

Started to get following error when executing certain SP. Code related to this error is pretty simple, joining #temp table to real table

Full text of error:

Msg 605, Level 21, State 3, Procedure spSSRSRPTIncorrectRevenue, Line 123
Attempt to fetch logical page (1:558552) in database 2 failed. It belongs to allocation unit 2089673263876079616 not to 4179358581172469760.

Here is what I found:
https://support.microsoft.com/en-us/kb/2015739

This suggests some kind of issue with database. I run DBCC CHECKDB on user database and on temp database — all passes.

Second thing I’m doing — trying to find which table those allocation units belong

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 in(2089673263876079616, 4179358581172469760)
ORDER BY au.allocation_unit_id

This returns 2 objects in tempdb, not in user db. So, it makes me think it’s some kind of data corruption in tempdb? I’m developer, not DBA. Any suggestions on what I should check next?

Also, when I run query above, how can I tell REAL object name that I understand? Like #myTempTable______... instead of #07C650CE

Понравилась статья? Поделить с друзьями:
  • Ошибка при попытке установить виндовс с флешки
  • Ошибка при попытке установит стим
  • Ошибка при попытке создать папку epic games
  • Ошибка при попытке создать папку c users
  • Ошибка при попытке соединиться с сервером