|
Как исправить ошибку БД MS SQL | ☑ | ||
---|---|---|---|---|
0
maxt
02.03.12
✎
10:50
|
после тестирования DBCC CHECKDB ('myDB', REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS
Вышла такая ошибка: Ошибка в таблице: таблица "sys.sysiscols" (идентификатор 55). Для строки данных отсутствует совпадающая строка в индексе "nc1" (идентификатор 2). Возможно, ключи для сопоставления строк индекса отсутствуют или недопустимы: Не удалось исправить эту ошибку. Сообщение 8955, уровень 16, состояние 1, строка 1 Строка данных (1:10616:51), определенная (idmajor = 59251366 and subid = 1 and idminor = 51) со значениями индекса "idmajor = 59251366 and intprop = 47 and subid = 1 and idminor = 51". Сообщение 8951, уровень 16, состояние 1, строка 1 Ошибка в таблице: таблица "sys.sysiscols" (идентификатор 55). Для строки данных отсутствует совпадающая строка в индексе "nc1" (идентификатор 2). Возможно, ключи для сопоставления строк индекса отсутствуют или недопустимы: Не удалось исправить эту ошибку. Сообщение 8955, уровень 16, состояние 1, строка 1 Строка данных (1:10616:52), определенная (idmajor = 59251366 and subid = 1 and idminor = 52) со значениями индекса "idmajor = 59251366 and intprop = 37 and subid = 1 and idminor = 52". Имеется 11466 строк на 81 страницах для объекта "sys.sysiscols". CHECKDB обнаружил 0 ошибок размещения и 2 ошибок согласованности в таблице "sys.sysiscols" (идентификатор объекта 55). Как ее можно исправить? Бд MS SQL 2008R2 |
|||
1
Жан Пердежон
02.03.12
✎
10:55
|
индекс перестроить
|
|||
2
maxt
02.03.12
✎
10:56
|
(1) подскажите, как? я не админ
|
|||
3
adron
02.03.12
✎
11:00
|
||||
4
Жан Пердежон
02.03.12
✎
11:01
|
||||
5
maxt
02.03.12
✎
11:24
|
(3,4) спасибо, буду пробовать!
|
|||
6
упс
02.03.12
✎
11:25
|
У этой таблицы индекс вы не перестроите. Или обращайтесь в MS за помощью, или выгружайте базу в dt и загружайте в новую. И делайте проверки CHECKDB регулярно, чтобы своевременно узнавать о повреждениях.
Ну или забейте вообще, если база в SUSPECT не упала. Правда неизвестно когда и как эта ошибка может выстрелить. |
|||
7
упс
02.03.12
✎
11:25
|
и зачем вы сразу выполняете checkdb с repair_allow_data_loss?
|
|||
8
maxt
02.03.12
✎
11:33
|
(7) я сначала делал с парметром repair_rebuild, он не все ошибки исправил
порекомендовали с параметром repair_allow_data_loss (6) выгрузку сделать не получается... точно нельзя исправить? |
|||
9
упс
02.03.12
✎
11:47
|
(8) если бы ошибка была в пользовательской таблице, ее было бы очень легко исправить, увы.
К это таблице обратиться-то можно, только подключившись по DAC. А индекс перестроить не дает - я попробовал. Если у вас полная модель восстановления, вы не делаете переходы в простую модель восстановления и обратно, регулярно делаете НОРМАЛЬНЫЕ бэкапы журнала транзакций - можно попробовать восстановить последний полный бэкап и протестировать его - если все ок, то сделать копию "хвоста" лога и перейти на копию без потери данных. Если хоть одно из перечисленных условий не выполняется - обращайтесь в поддержку MS. |
|||
10
maxt
02.03.12
✎
11:50
|
(9) нда... спасибо за пояснения.
бэкап полный вроде есть, надо будет его протестить. Не подскажите еще, из-за чего может возникать такая ошибка? у меня подозрение на HDD, т.к. в винде в журнале ошибок нет |
|||
11
упс
02.03.12
✎
11:54
|
(10) может быть из-за hdd, точно не скажу
Подумайте, все-таки, на счет dt. Данные-то у вас в порядке должны быть, т.е. должны выгрузиться нормально. Вот тут: http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=151460 при повреждении еще одной таблицы из списка "System base tables" (http://msdn.microsoft.com/en-us/library/ms179503.aspx ) пишут, что единственный выход - скриптовать все таблицы и выгружать данные. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |