Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ошибки в базе  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1213
Я ни разу не спец по администрированию БД, более того база у клиента оччень далеко.
Результат выполнения DBCC CHECKDB что-то типа

Сообщение 8939, уровень 16, состояние 5, строка 2
Ошибка таблицы: идентификатор объекта 0, идентификатор индекса -1, идентификатор секции 0, идентификатор единицы размещения 0 (тип Unknown), страница (1:365824). Тест (m_headerVersion == HEADER_7_0) не прошел. Значения - 0 и 1.
.....
Сообщение 8978, уровень 16, состояние 1, строка 2
Ошибка таблицы: идентификатор объекта 210099789, идентификатор индекса 1, идентификатор секции 72057594051362816, идентификатор единицы размещения 72057594052935680 (тип In-row data). Отсутствует ссылка на страницу (1:243964) с предыдущей страницы (1:365848). Возможна ошибка связывания цепочек.
.....
Сообщение 8955, уровень 16, состояние 1, строка 2
Строка данных (1:365832:61), определенная (WareCode = 222231 and RID = 10913792 and PaymentID = 0) со значениями индекса "WareCode = 222231 and RID = 10913792 and PaymentID = 0".


Всего 11 ошибок
попытались согласно рекомендациям из BOL сделать, сначала восстановить из бекапа, потом Repair. Сначала количество ошибок уменьшилось до 5, сегодня клиент прислал лог, уже 14.
Какие действия предпринять для лечения. Клиент уверяет, что с диском все нормально, я лично проверить это не могу
22 ноя 16, 09:55    [19919138]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в базе  [new]
o-o
Guest
ошибки надо приводить полностью, а не типа того.
а то лечить по "*что-то где-то* болит" надо ответом
"ну выпейте *какое-нибудь* лекарство"

из показанного: вторая ошибка в кластерном,
делать REPAIR_REBUILD просто не из чего, т.е. минимальный уровень REPAIR_ALLOW_DATA_LOSS,
т.е. с потерей данных, и чекдб это явно писало.
вы какое repair делали, обычный REPAIR_REBUILD?

про восстановление из бэкапа тоже ничего непонятно.
хотите сказать, что и в бэкапе битая база?
ищите более ранний бэкап,
найти дату, когда база еще не была битой, можно, выполнив в проблемной базе
dbcc dbinfo with tableresults

смотрите dbi_dbccLastKnownGood.
вот на эту дату и ищите бэкап.
если вас не устраивает откат на ту дату, остается только REPAIR_ALLOW_DATA_LOSS,
разумеется тоже с потерей данных
22 ноя 16, 11:21    [19919580]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в базе  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
minva
Какие действия предпринять для лечения. Клиент уверяет, что с диском все нормально, я лично проверить это не могу
Ошибки от чекдб показывают проблемы с базой, а не с программным кодом.
Они, соответственно, решаются администратором СУБД, а не программистом, пишущим запросы, или не оператором, вбивающим данные.
Т.е. действия, которые нужно предпринять для лечения - это нанять DBA и дать ему доступ к серверу. По другому никак.
22 ноя 16, 11:23    [19919598]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в базе  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
o-o
делать REPAIR_REBUILD просто не из чего, т.е. минимальный уровень REPAIR_ALLOW_DATA_LOSS,
Так наверное они и делали с REPAIR_ALLOW_DATA_LOSS, иначе это вообще бессмысленно...
22 ноя 16, 11:25    [19919611]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в базе  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1213
alexeyvg, увы..в маленьких конторках бухгалтера рулят. Только в крайнем случае кого-то наймут.

>хотите сказать, что и в бэкапе битая база?
Вообще без понятия, что там у них.

>dbcc dbinfo with tableresults
Вот за это спасибо, попробую выяснить
22 ноя 16, 11:30    [19919666]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в базе  [new]
o-o
Guest
alexeyvg
o-o
делать REPAIR_REBUILD просто не из чего, т.е. минимальный уровень REPAIR_ALLOW_DATA_LOSS,
Так наверное они и делали с REPAIR_ALLOW_DATA_LOSS, иначе это вообще бессмысленно...

вот пускай и напишет конкретно, что делали, какие ошибки после этого остались.
последняя приведенная ошибка приведена неполностью,
но ведь она явно про некластерный.
это исправляется как обычным ребилдом, так и минимальным уровнем REPAIR_REBUILD.
так что слабо верится, что это ошибки после попытки REPAIR_REBUILD
22 ноя 16, 11:35    [19919690]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в базе  [new]
o-o
Guest
minva
alexeyvg, увы..в маленьких конторках бухгалтера рулят. Только в крайнем случае кого-то наймут.

вы им так и скажите: скриншот на каждо ваше действие,
и такой же скриншот на то, что после него выдало чекдб.
иначе разговор ни о чем и рулите сами
22 ноя 16, 11:38    [19919713]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в базе  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1213
o-o, Перечень ошибок, на текущий момент. Делали REPAIR_REBUILD (REPAIR_ALLOW_DATA_LOSS я вообще что-то просмотрел :(, мой косяк, каюсь ), после него был прислан лог, в котором было только 4 ошибки.
А сегодня прислали этот лог после простого чека. Т.е. за ночь их стало 14. все-таки с диском у них траблы?

Сообщение 9675 компонента Service Broker, состояние 1: Проанализировано типов сообщений: 14.
Сообщение 9676 компонента Service Broker, состояние 1: Проанализировано контрактов службы: 6.
Сообщение 9667 компонента Service Broker, состояние 1: Проанализировано служб: 3.
Сообщение 9668 компонента Service Broker, состояние 1: Проанализировано очередей служб: 3.
Сообщение 9669 компонента Service Broker, состояние 1: Проанализировано конечных точек диалога: 0.
Сообщение 9674 компонента Service Broker, состояние 1: Проанализировано групп сообщений: 0.
Сообщение 9670 компонента Service Broker, состояние 1: Проанализировано привязок удаленной службы: 0.
Сообщение 9605 компонента Service Broker, состояние 1: Проанализировано приоритетов диалога: 0.
Сообщение 8939, уровень 16, состояние 5, строка 2
Ошибка таблицы: идентификатор объекта 0, идентификатор индекса -1, идентификатор секции 0, идентификатор единицы размещения 0 (тип Unknown), страница (1:365824). Тест (m_headerVersion == HEADER_7_0) не прошел. Значения - 0 и 1.
Сообщение 8939, уровень 16, состояние 6, строка 2
Ошибка таблицы: идентификатор объекта 0, идентификатор индекса -1, идентификатор секции 0, идентификатор единицы размещения 0 (тип Unknown), страница (1:365824). Тест ((m_type >= DATA_PAGE && m_type <= UNDOFILE_HEADER_PAGE) || (m_type == UNKNOWN_PAGE && level == BASIC_HEADER)) не прошел. Значения - 0 и 0.
Сообщение 8939, уровень 16, состояние 7, строка 2
Ошибка таблицы: идентификатор объекта 0, идентификатор индекса -1, идентификатор секции 0, идентификатор единицы размещения 0 (тип Unknown), страница (1:365824). Тест (m_freeData >= PageHeaderOverhead () && m_freeData <= (UINT)PAGESIZE - m_slotCnt * sizeof (Slot)) не прошел. Значения - 0 и 8192.
Сообщение 8905, уровень 16, состояние 1, строка 2
Экстент (1:365848) в базе данных с идентификатором 6 отмечен как размещенный в GAM, но ни один SGAM или IAM не разместил его.
CHECKDB обнаружил 1 ошибок размещения и 3 ошибок согласованности, не связанных ни с одним объектом.

Результаты DBCC для "Realization".
Сообщение 8978, уровень 16, состояние 1, строка 2
Ошибка таблицы: идентификатор объекта 210099789, идентификатор индекса 1, идентификатор секции 72057594051362816, идентификатор единицы размещения 72057594052935680 (тип In-row data). Отсутствует ссылка на страницу (1:243964) с предыдущей страницы (1:365848). Возможна ошибка связывания цепочек.
Сообщение 8976, уровень 16, состояние 1, строка 2
Ошибка таблицы: идентификатор объекта 210099789, идентификатор индекса 1, идентификатор секции 72057594051362816, идентификатор единицы размещения 72057594052935680 (тип In-row data). Страница (1:365848) не была обнаружена при просмотре, хотя ее родитель (1:242470) и предыдущая страница (1:243962) ссылаются на нее. Проверьте предыдущие ошибки.
Имеется 143989 строк на 1466 страницах для объекта "Realization".
CHECKDB обнаружил 0 ошибок размещения и 2 ошибок согласованности в таблице "Realization" (идентификатор объекта 210099789).
...
Результаты DBCC для "TankMeasurements".
Сообщение 8977, уровень 16, состояние 1, строка 2
Ошибка таблицы: идентификатор объекта 274100017, идентификатор индекса 1, идентификатор секции 72057594050969600, идентификатор единицы размещения 72057594052542464 (тип In-row data). Родительский узел для страницы (1:365856) не был обнаружен.
Сообщение 8934, уровень 16, состояние 1, строка 2
Ошибка таблицы: идентификатор объекта 274100017, идентификатор индекса 1, идентификатор секции 72057594050969600, идентификатор единицы размещения 72057594052542464 (тип In-row data). Верхнее значение ключа на странице (1:387147) (уровень 0) не меньше, чем нижнее значение ключа в родительском (0:1), область памяти 0 следующей страницы (1:365856).
Имеется 97666 строк на 1763 страницах для объекта "TankMeasurements".
CHECKDB обнаружил 0 ошибок размещения и 2 ошибок согласованности в таблице "TankMeasurements" (идентификатор объекта 274100017).
...
Результаты DBCC для "single_ware_sells".
Сообщение 8936, уровень 16, состояние 1, строка 2
Ошибка таблицы: идентификатор объекта 517576882, идентификатор индекса 3, идентификатор секции 72057594058309632, идентификатор единицы размещения 72057594059882496 (тип In-row data). Несоответствие связывания цепочек сбалансированного дерева. (1:365402)->следующая = (1:158396), но (1:158396)->предыдущая = (1:365824).
Сообщение 8928, уровень 16, состояние 1, строка 2
Идентификатор объекта 517576882, идентификатор индекса 3, идентификатор секции 72057594058309632, идентификатор единицы размещения 72057594059882496 (тип In-row data): не удалось обработать страницу (1:365824). Для получения подробных сведений просмотрите сообщения о других ошибках.
Сообщение 8980, уровень 16, состояние 1, строка 2
Ошибка таблицы: идентификатор объекта 517576882, идентификатор индекса 3, идентификатор секции 72057594058309632, идентификатор единицы размещения 72057594059882496 (тип In-row data). Узел индекса на странице (1:219278), область памяти 276 ссылается на дочернюю страницу (1:365824) и предыдущий дочерний элемент (1:365402), но они не были найдены.
Имеется 9032735 строк на 89034 страницах для объекта "single_ware_sells".
CHECKDB обнаружил 0 ошибок размещения и 3 ошибок согласованности в таблице "single_ware_sells" (идентификатор объекта 517576882).
Результаты DBCC для "QtyDiscounts".
...
Результаты DBCC для "WareSellEx".
Сообщение 8951, уровень 16, состояние 1, строка 2
Ошибка в таблице: таблица "WareSellEx" (идентификатор 562101043). Для строки данных отсутствует совпадающая строка в индексе "IX_WareSellExByWare" (идентификатор 3). Возможно, ключи для сопоставления строк индекса отсутствуют или недопустимы:
Сообщение 8955, уровень 16, состояние 1, строка 2
Строка данных (1:365832:58), определенная (WareCode = 222227 and RID = 10913792 and PaymentID = 65538) со значениями индекса "WareCode = 222227 and RID = 10913792 and PaymentID = 65538".
Сообщение 8951, уровень 16, состояние 1, строка 2
Ошибка в таблице: таблица "WareSellEx" (идентификатор 562101043). Для строки данных отсутствует совпадающая строка в индексе "IX_WareSellExByWare" (идентификатор 3). Возможно, ключи для сопоставления строк индекса отсутствуют или недопустимы:
Сообщение 8955, уровень 16, состояние 1, строка 2
Строка данных (1:365832:61), определенная (WareCode = 222231 and RID = 10913792 and PaymentID = 0) со значениями индекса "WareCode = 222231 and RID = 10913792 and PaymentID = 0".
Имеется 2412930 строк на 18770 страницах для объекта "WareSellEx".
CHECKDB обнаружил 0 ошибок размещения и 2 ошибок согласованности в таблице "WareSellEx" (идентификатор объекта 562101043).
Результаты DBCC для "RequiredTradeObjFlags".
...
CHECKDB обнаружил 1 ошибок размещения и 12 ошибок согласованности в базе данных "afs".

22 ноя 16, 11:46    [19919771]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в базе  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1213
minva
Т.е. за ночь их стало 14.

Пардон, 13 :) 12+ 1
22 ноя 16, 11:48    [19919788]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в базе  [new]
o-o
Guest
Realization, TankMeasurements -- кластерные, им поможет только REPAIR_ALLOW_DATA_LOSS.
single_ware_sells, WareSellEx -- некластерные, они починятся без потерь.
где GAM/SGAM/IAM не поможет ничего,
ищитe валидный бэкап.
думаю, диск все же у них сыпется,
если добавились ошибки про некластерные, которых не было вчера
22 ноя 16, 12:03    [19919896]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в базе  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8805
o-o,

да они могут питание сервера рубильником отключать.
22 ноя 16, 12:10    [19919955]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в базе  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1213
o-o, Спасибо большое!
22 ноя 16, 12:13    [19919971]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в базе  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
minva
alexeyvg, увы..в маленьких конторках бухгалтера рулят. Только в крайнем случае кого-то наймут.

>хотите сказать, что и в бэкапе битая база?
Вообще без понятия, что там у них.
Да, наверное, ещё и бакапа нет? :-)

"Крайний случай" может быть такой, что нужно будет всю базу перебивать руками из первичных бумажных документов.

По моему, это можно даже бухгалтерам объяснить, что для решения проблемы нужен человек, умеющий это делать, и доступ к "проблеме".
Если у них вода начнёт в сортире хлестать, или груз нужно будет на фуре отвезти, бухгалтеры тоже будут писать знакомому юристу, а тот будет посты в форуме строчить? Или вызовут сантехника/водителя?

И заключение, что "диски в порядке", им кто делал, тоже бухгалтер?

Вы им напишите, что такие ошибки являются возможным признаком, "звоночком" к рискам потери данных, и что им нужен специалист, который посмотрит.
minva
А сегодня прислали этот лог после простого чека. Т.е. за ночь их стало 14. все-таки с диском у них траблы?
Ну да, не просто так же. Диск или контроллер. Пусть бухгалтер ещё раз проверит логи сервера на наличие аппаратных ошибок :-)
22 ноя 16, 13:10    [19920316]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в базе  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
minva
Только в крайнем случае кого-то наймут.
Обычно нанимают же какого то сисадмина, какую то поддержку (типа фрилансеров, без постоянного нахождения в офисе). Как для транспорта, электрики, сантехники, 1С и т.д. Вот айтишник тоже нужен - соответственно используемым ИТ-системам (то есть если есть сиквел, то со знаниями MSSQL DBA). Не особый эксперт, но что бы бакапы были, а ошибок чекдб не было.
22 ноя 16, 13:13    [19920334]     Ответить | Цитировать Сообщить модератору
 Re: Ошибки в базе  [new]
minva
Member

Откуда: г. Калуга
Сообщений: 1213
alexeyvg,
Вы правы, за исключением одного НО. Если сломается унитаз, позовут сантехника. А когда ломается компьютер, то зовут компьютерщика(или, по-другому, программиста), ибо для них что программер(в нормальном понимании слова), что админ, что железячник - это все едино, разницу люди плохо понимают. А т.к. мы еще и производители ПО, то вообще попадос
Ну да ладно, к проблеме это отношения не имеет. Примерно все понятно, спасибо всем за помощь
22 ноя 16, 14:16    [19920748]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить