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

Откуда: Київ
Сообщений: 10428
На одной таблице дает такую фигню, куда смотреть и что предпринять?


--Msg 8976, Level 16, State 1, Line 4
--Table error: Object ID 1125579048, index ID 1, partition ID 72057594213171200, alloc unit ID 72057594228047872 (type In-row data).
--Page (1:278370) was not seen in the scan although its parent (1:252260) and previous (1:278369) refer to it. Check any previous errors.

--Msg 8939, Level 16, State 98, Line 4
--Table error: Object ID 1125579048, index ID 1, partition ID 72057594213171200, alloc unit ID 72057594228047872 (type In-row data), page (1:278370). Test (IS_OFF (BUF_IOERR, pBUF->bstat)) failed. Values are 133129 and -4.

--Msg 8928, Level 16, State 1, Line 4
--Object ID 1125579048, index ID 1, partition ID 72057594213171200, alloc unit ID 72057594228047872 (type In-row data): Page (1:278370) could not be processed. See other errors for details.

--Msg 8978, Level 16, State 1, Line 4
--Table error: Object ID 1125579048, index ID 1, partition ID 72057594213171200, alloc unit ID 72057594228047872 (type In-row data). Page (1:278371) is missing a reference from previous page (1:278370). Possible chain linkage problem.
5 мар 15, 17:26    [17348612]     Ответить | Цитировать Сообщить модератору
 Re: DBCC CHECKTABLE - куда смотреть и что можно сделать?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Отресторить данные из бэкапа, перелить. Указанное скорее всего чиничтся через repair_allow_data_loss.
5 мар 15, 17:39    [17348699]     Ответить | Цитировать Сообщить модератору
 Re: DBCC CHECKTABLE - куда смотреть и что можно сделать?  [new]
o-o
Guest
это же кластерный индекс.
или восстанавливать из бэкапа, или DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS, но оно
will repair by deleting pages at the leaf-level – essentially deleting a bunch of records.
CHECKDB From Every Angle: Using DBCC PAGE to find what repair will delete

ну и тут то же самое:
Error 8976
5 мар 15, 17:44    [17348723]     Ответить | Цитировать Сообщить модератору
 Re: DBCC CHECKTABLE - куда смотреть и что можно сделать?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
да, REBUILD пишет такое

Msg 8928, Level 16, State 1, Line 55
Object ID 1125579048, index ID 1, partition ID 72057594213171200, alloc unit ID 72057594228047872 (type In-row data): Page (1:278370) could not be processed. See other errors for details.
The repair level on the DBCC statement caused this repair to be bypassed.
Msg 8939, Level 16, State 98, Line 55
Table error: Object ID 1125579048, index ID 1, partition ID 72057594213171200, alloc unit ID 72057594228047872 (type In-row data), page (1:278370). Test (IS_OFF (BUF_IOERR, pBUF->bstat)) failed. Values are 2057 and -4.
Repairing this error requires other errors to be corrected first.
Msg 8976, Level 16, State 1, Line 55
Table error: Object ID 1125579048, index ID 1, partition ID 72057594213171200, alloc unit ID 72057594228047872 (type In-row data). Page (1:278370) was not seen in the scan although its parent (1:252260) and previous (1:278369) refer to it. Check any previous errors.
Repairing this error requires other errors to be corrected first.
Msg 8978, Level 16, State 1, Line 55
Table error: Object ID 1125579048, index ID 1, partition ID 72057594213171200, alloc unit ID 72057594228047872 (type In-row data). Page (1:278371) is missing a reference from previous page (1:278370). Possible chain linkage problem.
Repairing this error requires other errors to be corrected first.
5 мар 15, 17:46    [17348730]     Ответить | Цитировать Сообщить модератору
 Re: DBCC CHECKTABLE - куда смотреть и что можно сделать?  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
+

если бэкапов нет. но колонки всех некластерных индексов покрывают все колонки таблицы:

с помощью dbcc page поглядеть:

максимальное значение ключа в странице 1:278369 @min_key
минимальное значение ключа в странице 1:278371 @max_key

затем для всех некластерных индексов выдергиваем с помощью with(index(my_index)) и предиката where @min_key < clustered_key and clustered_key < @max_key вытаскиваем из некластерных индексов значения колонок и сохраняем все в отдельные таблицы в отдельной базе.

потом dbcc checkdb(..., repair_allow_data_loss) with... оно выпилит битую страницу скорее всего.

затем сохраненные ранее данные джойним ко clustered_key (потому что были сохранены куски строк из некластерных индексов) и тем самим формируем строки.

insert into my_repaired_table(...)
select
from
part1 inner join part2 on...
...

И должно быть все хорошо.
5 мар 15, 18:06    [17348820]     Ответить | Цитировать Сообщить модератору
 Re: DBCC CHECKTABLE - куда смотреть и что можно сделать?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Сделал копию, пустил
DBCC CHECKTABLE ('znodes', REPAIR_ALLOW_DATA_LOSS)


Repair: The Clustered index successfully rebuilt for the object "dbo.znodes" in database "bad".
Repair: The page (1:278370) has been deallocated from object ID 1125579048, index ID 1, partition ID 72057594213171200, alloc unit ID 72057594228047872 (type In-row data).
Repair: The Nonclustered index successfully rebuilt for the object "dbo.znodes, IX_znodes" in database "bad136".
...

Msg 8945, Level 16, State 1, Line 55
Table error: Object ID 1125579048, index ID 1 will be rebuilt.
        The error has been repaired.
Msg 8928, Level 16, State 1, Line 55
Object ID 1125579048, index ID 1, partition ID 72057594213171200, alloc unit ID 72057594228047872 (type In-row data): Page (1:278370) could not be processed.  See other errors for details.
        The error has been repaired.
Msg 8939, Level 16, State 98, Line 55
Table error: Object ID 1125579048, index ID 1, partition ID 72057594213171200, alloc unit ID 72057594228047872 (type In-row data), page (1:278370). Test (IS_OFF (BUF_IOERR, pBUF->bstat)) failed. Values are 2057 and -4.
        The error has been repaired.
Msg 8976, Level 16, State 1, Line 55
Table error: Object ID 1125579048, index ID 1, partition ID 72057594213171200, alloc unit ID 72057594228047872 (type In-row data). Page (1:278370) was not seen in the scan although its parent (1:252260) and previous (1:278369) refer to it. Check any previous errors.
        The error has been repaired.
Msg 8978, Level 16, State 1, Line 55
Table error: Object ID 1125579048, index ID 1, partition ID 72057594213171200, alloc unit ID 72057594228047872 (type In-row data). Page (1:278371) is missing a reference from previous page (1:278370). Possible chain linkage problem.
        The error has been repaired.
Msg 8945, Level 16, State 1, Line 55
Table error: Object ID 1125579048, index ID 2 will be rebuilt.
        The error has been repaired.
Msg 8945, Level 16, State 1, Line 55
Table error: Object ID 1125579048, index ID 3 will be rebuilt.
        The error has been repaired.
Msg 8945, Level 16, State 1, Line 55
Table error: Object ID 1125579048, index ID 4 will be rebuilt.
        The error has been repaired.
Msg 8945, Level 16, State 1, Line 55
Table error: Object ID 1125579048, index ID 5 will be rebuilt.
        The error has been repaired.
Msg 8945, Level 16, State 1, Line 55
Table error: Object ID 1125579048, index ID 6 will be rebuilt.
        The error has been repaired.
Msg 8945, Level 16, State 1, Line 55
Table error: Object ID 1125579048, index ID 7 will be rebuilt.
        The error has been repaired.
Msg 8945, Level 16, State 1, Line 55
Table error: Object ID 1125579048, index ID 8 will be rebuilt.
        The error has been repaired.
Msg 8945, Level 16, State 1, Line 55
Table error: Object ID 1125579048, index ID 9 will be rebuilt.
        The error has been repaired.
There are 1508521 rows in 34610 pages for object "znodes".
CHECKTABLE found 0 allocation errors and 4 consistency errors in table 'znodes' (object ID 1125579048).
CHECKTABLE fixed 0 allocation errors and 4 consistency errors in table 'znodes' (object ID 1125579048).
DBCC execution completed. If DBCC printed error messages, contact your system administrator.



Можно ли утверждать, что данные восстановлены и не потерялись?
5 мар 15, 18:59    [17348996]     Ответить | Цитировать Сообщить модератору
 Re: DBCC CHECKTABLE - куда смотреть и что можно сделать?  [new]
o-o
Guest
да конечно же потерялись.
и churupaha сказал, как можно было посмотреть мин. и макс. значения, к-ые были в страницах, к-ые удалит,
и по моей первой ссылке это было
5 мар 15, 19:14    [17349035]     Ответить | Цитировать Сообщить модератору
 Re: DBCC CHECKTABLE - куда смотреть и что можно сделать?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
o-o
да конечно же потерялись.
и churupaha сказал, как можно было посмотреть мин. и макс. значения, к-ые были в страницах, к-ые удалит,
и по моей первой ссылке это было


у меня копия есть , в смысле битой базы, буду пробовать
5 мар 15, 19:27    [17349082]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить