Ошибка: #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
|
Кто встречался с такой ошибкой «Ошибка при попытке выборки логической страницы»? | ☑ | ||
---|---|---|---|---|
0
na1kk 20.03.23 ✎ 11:23 |
Ошибка СУБД: |
|||
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