Добрый день,
в общем проблема возникала после остановки виртуального хоста из за нехватки места (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
|
|||
| fantomask
21.11.15 — 08:41 |
РИБ. При обмене данными выходит следующая ошибка:
Ошибка СУБД: Подскажите как лечить? |
||
| ДенисЧ
1 — 21.11.15 — 08:47 |
dbcc checjdb |
||
| ДенисЧ
2 — 21.11.15 — 08:47 |
*checkdb |
||
| fantomask
3 — 21.11.15 — 09:06 |
(2)Через Тестирование и Исправление выкидывает. а как по другому сделать? База на MS SQL 2008 |
||
|
ДенисЧ 4 — 21.11.15 — 09:09 |
(3) Я не говорил про ТИИ |
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
I am getting the following SqlException on calling a stored procedure:
Attempt to fetch logical page (5:65424) in database 2 failed. It belongs to allocation unit 7349876362857938944 not to 4899918190390149120.
System.Data.SqlClient.SqlException occurred
Message=»Attempt to fetch logical page (5:65424) in database 2 failed. It belongs to allocation unit 7349876362857938944 not to 4899918190390149120.Source=».Net SqlClient Data Provider»
ErrorCode=-2146232060
Class=21
LineNumber=257
Number=605
Procedure=»ispDisplayCount»
Server=»10.10.1.1″
State=3
What does this exception mean? Is there any resolution to the above issue?
Although the database referenced in the error above indicates tempdb, similar errors referencing Message 605, may be fixed using the answers below.
Msg 605, Level 21, State 3, Line 1
Attempt to fetch logical page (1:8687634) in database 7 failed. It belongs to allocation unit 72057594364821504 not to 72057594052476928.
Hannah Vernon♦
68.3k22 gold badges164 silver badges303 bronze badges
asked Oct 23, 2012 at 6:50
![]()
0
If the database ID indicated by the error message is 2, the database affected is tempdb. One method for fixing this type of corruption in tempdb is to simply restart the SQL Server instance. For database ID’s other than 2, follow the recommendations below.
You may need to restore from backup, however try this:
As a member of the sysadmin role, execute DBCC PAGE (2, 5, 65424, 3); and look for the Metadata: IndexId value.
- If it is
0(heap) or1(clustered index) you need to restore from backup. - If it is not
0or1, you can just rebuild the non-clustered index.
Run the DBCC command, and let us know what you find. Check https://www.mssqltips.com/sqlservertip/1578/using-dbcc-page-to-examine-sql-server-table-and-index-data/ for details about the DBCC PAGE command
Hannah Vernon♦
68.3k22 gold badges164 silver badges303 bronze badges
answered Oct 23, 2012 at 12:16
Matt MMatt M
3,41218 silver badges23 bronze badges
0
Your database is corrupted. Time to restore from a good backup. If you have no backups, is time to learn about The Importance of Testing your Recovery Plan. An investigation into the reliability of your hardware is also warranted, watch for warning and errors in the system logs.
answered Oct 23, 2012 at 7:29
Remus RusanuRemus Rusanu
51.3k3 gold badges93 silver badges171 bronze badges
The error indicates your database is corrupt. The good news is that database ID 2 indicates this is the tempdb database, so fixing this is easy — just restart the database instance.
Once you restart the instance, you should figure out why the corruption happened. Start by running chkdsk on the drive that the problem file is on. Next you’ll need to look at the storage itself and see if there’s any problems there. Could be a physical disk issue, could be HBA or RAID card drivers, etc.
Hannah Vernon♦
68.3k22 gold badges164 silver badges303 bronze badges
answered Oct 25, 2012 at 18:13
mrdennymrdenny
26.9k2 gold badges41 silver badges79 bronze badges
2
What you would hear from a lot of people is «the database is corrupt, you need to restore» without even recommending that you take some few mins to do some of the following;
review your logs, find out when the issue first occured, the error that preceeded that line, check out the database/table the page belongs to
In my case this error was preceeded by;
Unable to find index entry in index ID 9, of table 629577281, in
database ‘XYZ’. The indicated index is corrupt or there is a problem
with the current update plan
A workaround was to trace the index referred to and temporarily delete it.
i later found a this Microsoft link that describes my exact issue and offers a solution link
hope this helps someone else in future
answered May 16, 2018 at 7:38
![]()
daffyjejedaffyjeje
1111 silver badge10 bronze badges
2
I was able to resolve this by clearing the SQL caches:
DBCC FREEPROCCACHE
GO
DBCC DROPCLEANBUFFERS
GO
Apparently restarting the SQL service would have had the same affect.
(via Made By SQL, reproduced here to help others!)
answered Oct 26, 2016 at 13:57
81288128
1214 bronze badges
In my case, truncating and re-populating data in the concerned tables was the solution.
Most probably the data inside tables was corrupted.
answered Jul 21, 2016 at 11:35
Zameer AnsariZameer Ansari
9011 gold badge12 silver badges19 bronze badges
I am getting the following SqlException on calling a stored procedure:
Attempt to fetch logical page (5:65424) in database 2 failed. It belongs to allocation unit 7349876362857938944 not to 4899918190390149120.
System.Data.SqlClient.SqlException occurred
Message=»Attempt to fetch logical page (5:65424) in database 2 failed. It belongs to allocation unit 7349876362857938944 not to 4899918190390149120.Source=».Net SqlClient Data Provider»
ErrorCode=-2146232060
Class=21
LineNumber=257
Number=605
Procedure=»ispDisplayCount»
Server=»10.10.1.1″
State=3
What does this exception mean? Is there any resolution to the above issue?
Although the database referenced in the error above indicates tempdb, similar errors referencing Message 605, may be fixed using the answers below.
Msg 605, Level 21, State 3, Line 1
Attempt to fetch logical page (1:8687634) in database 7 failed. It belongs to allocation unit 72057594364821504 not to 72057594052476928.
Hannah Vernon♦
68.3k22 gold badges164 silver badges303 bronze badges
asked Oct 23, 2012 at 6:50
![]()
0
If the database ID indicated by the error message is 2, the database affected is tempdb. One method for fixing this type of corruption in tempdb is to simply restart the SQL Server instance. For database ID’s other than 2, follow the recommendations below.
You may need to restore from backup, however try this:
As a member of the sysadmin role, execute DBCC PAGE (2, 5, 65424, 3); and look for the Metadata: IndexId value.
- If it is
0(heap) or1(clustered index) you need to restore from backup. - If it is not
0or1, you can just rebuild the non-clustered index.
Run the DBCC command, and let us know what you find. Check https://www.mssqltips.com/sqlservertip/1578/using-dbcc-page-to-examine-sql-server-table-and-index-data/ for details about the DBCC PAGE command
Hannah Vernon♦
68.3k22 gold badges164 silver badges303 bronze badges
answered Oct 23, 2012 at 12:16
Matt MMatt M
3,41218 silver badges23 bronze badges
0
Your database is corrupted. Time to restore from a good backup. If you have no backups, is time to learn about The Importance of Testing your Recovery Plan. An investigation into the reliability of your hardware is also warranted, watch for warning and errors in the system logs.
answered Oct 23, 2012 at 7:29
Remus RusanuRemus Rusanu
51.3k3 gold badges93 silver badges171 bronze badges
The error indicates your database is corrupt. The good news is that database ID 2 indicates this is the tempdb database, so fixing this is easy — just restart the database instance.
Once you restart the instance, you should figure out why the corruption happened. Start by running chkdsk on the drive that the problem file is on. Next you’ll need to look at the storage itself and see if there’s any problems there. Could be a physical disk issue, could be HBA or RAID card drivers, etc.
Hannah Vernon♦
68.3k22 gold badges164 silver badges303 bronze badges
answered Oct 25, 2012 at 18:13
mrdennymrdenny
26.9k2 gold badges41 silver badges79 bronze badges
2
What you would hear from a lot of people is «the database is corrupt, you need to restore» without even recommending that you take some few mins to do some of the following;
review your logs, find out when the issue first occured, the error that preceeded that line, check out the database/table the page belongs to
In my case this error was preceeded by;
Unable to find index entry in index ID 9, of table 629577281, in
database ‘XYZ’. The indicated index is corrupt or there is a problem
with the current update plan
A workaround was to trace the index referred to and temporarily delete it.
i later found a this Microsoft link that describes my exact issue and offers a solution link
hope this helps someone else in future
answered May 16, 2018 at 7:38
![]()
daffyjejedaffyjeje
1111 silver badge10 bronze badges
2
I was able to resolve this by clearing the SQL caches:
DBCC FREEPROCCACHE
GO
DBCC DROPCLEANBUFFERS
GO
Apparently restarting the SQL service would have had the same affect.
(via Made By SQL, reproduced here to help others!)
answered Oct 26, 2016 at 13:57
81288128
1214 bronze badges
In my case, truncating and re-populating data in the concerned tables was the solution.
Most probably the data inside tables was corrupted.
answered Jul 21, 2016 at 11:35
Zameer AnsariZameer Ansari
9011 gold badge12 silver badges19 bronze badges
Ошибка: #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 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт
Нужна дополнительная помощь?
Я получаю следующее SqlExceptionпри вызове хранимой процедуры:
Попытка получить логическую страницу (5: 65424) в базе данных 2 не удалась. Он принадлежит единице распределения 7349876362857938944, а не 4899918190390149120.
System.Data.SqlClient.SqlException произошла ошибка
Message = «Попытка извлечь логическую страницу (5: 65424) в базе данных 2. Она принадлежит блоку выделения 7349876362857938944, а не 4899918190390149120.Источник = «. Поставщик данных Net SqlClient»
ErrorCode = -2146232060
Класс = 21
LineNumber = 257
Номер = 605
Процедура = «ispDisplayCount»
Сервер = «10.10.1.1»
Состояние = 3
Что означает это исключение? Есть ли решение по вышеуказанному вопросу?
Хотя база данных, на которую ссылается вышеупомянутая ошибка, указывает на базу данных tempdb, аналогичные ошибки, ссылающиеся на Сообщение 605, могут быть исправлены с помощью ответов ниже.
Сообщение 605, уровень 21, состояние 3, строка 1
Попытка извлечь логическую страницу (1: 8687634) в базе данных 7 не удалась. Он принадлежит блоку распределения 72057594364821504, а не 72057594052476928.
Ответы:
Если идентификатор базы данных, указанный в сообщении об ошибке, имеет 2значение база данных tempdb. Один из способов исправить этот тип повреждения в базе данных tempdb — просто перезапустить экземпляр SQL Server. Для идентификаторов базы данных, отличных от 2, следуйте приведенным ниже рекомендациям.
Возможно, вам придется восстановить из резервной копии, однако попробуйте это:
Как член роли sysadmin, выполните DBCC PAGE (2, 5, 65424, 3);и найдите Metadata: IndexIdзначение.
- Если это
0(куча) или1(кластерный индекс), вам нужно восстановить из резервной копии. - Если это не так
0или1вы можете просто перестроить некластеризованный индекс.
Запустите команду DBCC и дайте нам знать, что вы найдете. Проверьте https://www.mssqltips.com/sqlservertip/1578/using-dbcc-page-to-examine-sql-server-table-and-index-data/ для получения подробной информации о DBCC PAGEкоманде
Ваша база данных повреждена. Время восстанавливать из хорошей резервной копии. Если у вас нет резервных копий, самое время узнать о важности тестирования вашего плана восстановления . Также необходимо провести проверку надежности вашего оборудования, следите за предупреждениями и ошибками в системных журналах.
Ошибка указывает на то, что ваша база данных повреждена. Хорошая новость заключается в том, что идентификатор базы данных 2 указывает, что это база данных tempdb, поэтому исправить это легко — просто перезапустите экземпляр базы данных.
После перезапуска экземпляра вы должны выяснить, почему произошло повреждение. Начните с запуска chkdskна диске, на котором находится файл проблемы. Далее вам нужно посмотреть на само хранилище и посмотреть, есть ли там проблемы. Это может быть проблема с физическим диском, драйверы HBA или карты RAID и т. Д.
Я смог решить эту проблему путем очистки кэшей SQL:
DBCC FREEPROCCACHE
GO
DBCC DROPCLEANBUFFERS
GO
Очевидно, перезапуск службы SQL имел бы такой же эффект.
(через Made By SQL , воспроизведенный здесь, чтобы помочь другим!)
В моем случае решением было усечение и повторное заполнение данных в соответствующих таблицах .
Скорее всего, данные внутри таблиц были повреждены.
Многие люди слышат, что « база данных повреждена, вам нужно восстановить », даже не рекомендуя потратить несколько минут на выполнение некоторых из следующих действий; просмотрите ваши журналы, выясните, когда проблема возникла впервые, ошибка, которая предшествовала этой строке, проверьте базу данных / таблицу, к которой принадлежит страница.
В моем случае этой ошибке предшествовал;
Не удалось найти запись индекса в индексе ID 9 таблицы 629577281 в базе данных ‘XYZ’. Указанный индекс поврежден или существует проблема с текущим планом обновления
Обходной путь должен был отследить упомянутый индекс и временно удалить его.
позже я нашел эту ссылку Microsoft, которая описывает мою точную проблему и предлагает ссылку для решения
надеюсь, что это поможет кому-то еще в будущем