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

Откуда:
Сообщений: 11
Здравствуйте, пожалуйста помогите новичку.

Есть база (на sql 2005). После выключения энергии база встала в статус Suspect. Поиск в гугле дал следующую инструкцию:


How to repair a SQL Server 2005 Suspect database
Posted by Manoj Garg on July 17, 2008
Sometimes when you connect to your database server, you may find it in suspect mode. Your database server won’t allow you to perform any operation on that database until the database is repaired.
A database can go in suspect mode for many reasons like improper shutdown of the database server, corruption of the database files etc.

To get the exact reason of a database going into suspect mode can be found using the following query,
DBCC CHECKDB (’base’) WITH NO_INFOMSGS, ALL_ERRORMSGS
Output of the above query will give the errors in the database.
To repair the database, run the following queries in Query Analyzer,
EXEC sp_resetstatus ‘base’;
ALTER DATABASE base SET EMERGENCY
DBCC checkdb(’ base’)
ALTER DATABASE base SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DBCC CheckDB (’ base’, REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE base SET MULTI_USER

После выполнения инструкции база встала в статус Emergency. Подскажите как восстановить работоспособность базы?

Далее логи по запросу:


DBCC CHECKDB (’base’) WITH NO_INFOMSGS, ALL_ERRORMSGS


Msg 2537, Level 16, State 24, Line 1
Table error: object ID 425104605, index ID 1, partition ID 309334632103936, alloc unit ID 27859655393280 (type In-row data), page (1:10561), row 37. The record check (valid record length) failed. The values are 142 and 141.
Msg 2537, Level 16, State 24, Line 1
Table error: object ID 425104605, index ID 1, partition ID 309334632103936, alloc unit ID 27859655393280 (type In-row data), page (1:10561), row 63. The record check (valid record length) failed. The values are 145 and 141.
Msg 2537, Level 16, State 24, Line 1
Table error: object ID 425104605, index ID 1, partition ID 309334632103936, alloc unit ID 27859655393280 (type In-row data), page (1:10561), row 70. The record check (valid record length) failed. The values are 145 and 141.
CHECKDB found 0 allocation errors and 3 consistency errors in table 'SPECIALIST' (object ID 425104605).
Msg 8928, Level 16, State 1, Line 1
Object ID 661629450, index ID 0, partition ID 43360547635200, alloc unit ID 43360547635200 (type In-row data): Page (1:89509) could not be processed.  See other errors for details.
Msg 8944, Level 16, State 17, Line 1
Table error: Object ID 661629450, index ID 0, partition ID 43360547635200, alloc unit ID 43360547635200 (type In-row data), page (1:89509), row 34. Test (columnOffsets->offTbl [varColumnNumber] <= (nextRec - pRec)) failed. Values are 178 and 177.
Msg 8944, Level 16, State 17, Line 1
Table error: Object ID 661629450, index ID 0, partition ID 43360547635200, alloc unit ID 43360547635200 (type In-row data), page (1:89509), row 34. Test (columnOffsets->offTbl [varColumnNumber] <= (nextRec - pRec)) failed. Values are 178 and 177.
CHECKDB found 0 allocation errors and 3 consistency errors in table 'REGISTR' (object ID 661629450).
CHECKDB found 0 allocation errors and 6 consistency errors in database 'base'.
repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB (base).

11 май 10, 23:06    [8757303]     Ответить | Цитировать Сообщить модератору
 Re: Suspect в sql 2005  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB (base).
12 май 10, 00:17    [8757560]     Ответить | Цитировать Сообщить модератору
 Re: Suspect в sql 2005  [new]
shaura83
Member

Откуда:
Сообщений: 11
после этого запроса вот такая ошибка
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'is'.
12 май 10, 08:11    [8757856]     Ответить | Цитировать Сообщить модератору
 Re: Suspect в sql 2005  [new]
shaura83
Member

Откуда:
Сообщений: 11
пожалуйста помогите восстановить базу, я заплачу WebMoney/ Это срочно...
12 май 10, 08:23    [8757880]     Ответить | Цитировать Сообщить модератору
 Re: Suspect в sql 2005  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32167
shaura83
после этого запроса вот такая ошибка
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'is'.
Какого ещё "этого"?
12 май 10, 08:57    [8757946]     Ответить | Цитировать Сообщить модератору
 Re: Suspect в sql 2005  [new]
mike909
Member

Откуда:
Сообщений: 662
alexeyvg
shaura83
после этого запроса вот такая ошибка
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'is'.
Какого ещё "этого"?

А чего тут непонятно ?
После этого:
repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB (base).

To shaura83.
См. BOL-> DBCC CHECKDB
12 май 10, 09:09    [8757992]     Ответить | Цитировать Сообщить модератору
 Re: Suspect в sql 2005  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32167
mike909
А чего тут непонятно ?
После этого:
repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB (base).
:-)
12 май 10, 09:15    [8758014]     Ответить | Цитировать Сообщить модератору
 Re: Suspect в sql 2005  [new]
shaura83
Member

Откуда:
Сообщений: 11
mike909
смотри BOL-> DBCC CHECKDB


посмотрел, ничего не понял. может есть уже готовое решение на форуме. я немогу найти...
12 май 10, 10:32    [8758491]     Ответить | Цитировать Сообщить модератору
 Re: Suspect в sql 2005  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32167
shaura83
mike909
смотри BOL-> DBCC CHECKDB


посмотрел, ничего не понял.
А что конкретно непонятно?

Если проблемы с английским, есть BOL на русском.
12 май 10, 10:40    [8758545]     Ответить | Цитировать Сообщить модератору
 Re: Suspect в sql 2005  [new]
Glory
Member

Откуда:
Сообщений: 104751
shaura83


После выполнения инструкции база встала в статус Emergency. Подскажите как восстановить работоспособность базы?

Далее логи по запросу:



Важным из этих логов является лог команды
DBCC CheckDB (’ base’, REPAIR_ALLOW_DATA_LOSS)
12 май 10, 10:54    [8758686]     Ответить | Цитировать Сообщить модератору
 Re: Suspect в sql 2005  [new]
shaura83
Member

Откуда:
Сообщений: 11
Glory
Glory
shaura83


После выполнения инструкции база встала в статус Emergency. Подскажите как восстановить работоспособность базы?

Далее логи по запросу:


Важным из этих логов является лог команды
DBCC CheckDB (’ base’, REPAIR_ALLOW_DATA_LOSS)


вот он

Msg 2520, Level 16, State 5, Line 1
Could not find database ' POLMCTV'. Check sys.databases.
12 май 10, 11:30    [8759030]     Ответить | Цитировать Сообщить модератору
 Re: Suspect в sql 2005  [new]
Glory
Member

Откуда:
Сообщений: 104751
shaura83
Glory
Glory
shaura83


После выполнения инструкции база встала в статус Emergency. Подскажите как восстановить работоспособность базы?

Далее логи по запросу:


Важным из этих логов является лог команды
DBCC CheckDB (’ base’, REPAIR_ALLOW_DATA_LOSS)


вот он

Msg 2520, Level 16, State 5, Line 1
Could not find database ' POLMCTV'. Check sys.databases.

А начальный пробел в имени базы вы специально поставили или ошибка копирования сообщения в форум ?
12 май 10, 11:31    [8759053]     Ответить | Цитировать Сообщить модератору
 Re: Suspect в sql 2005  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32167
shaura83
вот он

Msg 2520, Level 16, State 5, Line 1
Could not find database ' POLMCTV'. Check sys.databases.
Надо же, какие у вас имена баз - с пробелами!
12 май 10, 11:32    [8759057]     Ответить | Цитировать Сообщить модератору
 Re: Suspect в sql 2005  [new]
shaura83
Member

Откуда:
Сообщений: 11
нет, не то. сори. щас заново проделаю всю процедуру и напишу...
12 май 10, 11:32    [8759063]     Ответить | Цитировать Сообщить модератору
 Re: Suspect в sql 2005  [new]
shaura83
Member

Откуда:
Сообщений: 11
Люди! База ожила. Ошибка была в пробеле в названии базы. Ураааааа.... Спасибо всем... дальше опубликую порядок выполнения и логи на будущее...

1. запрос: DBCC CHECKDB (’BASE’) WITH NO_INFOMSGS, ALL_ERRORMSGS

лог:
Msg 2537, Level 16, State 24, Line 1
Table error: object ID 425104605, index ID 1, partition ID 309334632103936, alloc unit ID 27859655393280 (type In-row data), page (1:10561), row 37. The record check (valid record length) failed. The values are 142 and 141.
Msg 2537, Level 16, State 24, Line 1
Table error: object ID 425104605, index ID 1, partition ID 309334632103936, alloc unit ID 27859655393280 (type In-row data), page (1:10561), row 63. The record check (valid record length) failed. The values are 145 and 141.
Msg 2537, Level 16, State 24, Line 1
Table error: object ID 425104605, index ID 1, partition ID 309334632103936, alloc unit ID 27859655393280 (type In-row data), page (1:10561), row 70. The record check (valid record length) failed. The values are 145 and 141.
CHECKDB found 0 allocation errors and 3 consistency errors in table 'SPECIALIST' (object ID 425104605).
Msg 8928, Level 16, State 1, Line 1
Object ID 661629450, index ID 0, partition ID 43360547635200, alloc unit ID 43360547635200 (type In-row data): Page (1:89509) could not be processed.  See other errors for details.
Msg 8944, Level 16, State 17, Line 1
Table error: Object ID 661629450, index ID 0, partition ID 43360547635200, alloc unit ID 43360547635200 (type In-row data), page (1:89509), row 34. Test (columnOffsets->offTbl [varColumnNumber] <= (nextRec - pRec)) failed. Values are 178 and 177.
Msg 8944, Level 16, State 17, Line 1
Table error: Object ID 661629450, index ID 0, partition ID 43360547635200, alloc unit ID 43360547635200 (type In-row data), page (1:89509), row 34. Test (columnOffsets->offTbl [varColumnNumber] <= (nextRec - pRec)) failed. Values are 178 and 177.
CHECKDB found 0 allocation errors and 3 consistency errors in table 'REGISTR' (object ID 661629450).
CHECKDB found 0 allocation errors and 6 consistency errors in database 'BASE'.
repair_allow_data_loss is the minimum repair level for the errors found by DBCC CHECKDB (BASE).

2. запрос: EXEC sp_resetstatus 'BASE'
лог:
The suspect flag on the database "BASE" is already reset.

3. запрос: ALTER DATABASE BASE SET EMERGENCY
лог:
Command(s) completed successfully.

4. запрос: DBCC checkdb(’BASE’)
лог:
DBCC results for 'BASE'.
Service Broker Msg 9675, State 1: Message Types analyzed: 14.
Service Broker Msg 9676, State 1: Service Contracts analyzed: 6.
Service Broker Msg 9667, State 1: Services analyzed: 3.
Service Broker Msg 9668, State 1: Service Queues analyzed: 3.
Service Broker Msg 9669, State 1: Conversation Endpoints analyzed: 0.
Service Broker Msg 9674, State 1: Conversation Groups analyzed: 0.
Service Broker Msg 9670, State 1: Remote Service Bindings analyzed: 0.
DBCC results for 'sys.sysrowsetcolumns'.
There are 5981 rows in 47 pages for object "sys.sysrowsetcolumns".
DBCC results for 'sys.sysrowsets'.
There are 1458 rows in 11 pages for object "sys.sysrowsets".
DBCC results for 'sysallocunits'.
There are 1498 rows in 20 pages for object "sysallocunits".
DBCC results for 'sys.sysfiles1'.
There are 2 rows in 1 pages for object "sys.sysfiles1".
DBCC results for 'sys.syshobtcolumns'.
There are 5981 rows in 55 pages for object "sys.syshobtcolumns".
DBCC results for 'sys.syshobts'.
There are 1458 rows in 11 pages for object "sys.syshobts".
DBCC results for 'sys.sysftinds'.
There are 0 rows in 0 pages for object "sys.sysftinds".
DBCC results for 'sys.sysserefs'.
There are 1498 rows in 7 pages for object "sys.sysserefs".
DBCC results for 'sys.sysowners'.
There are 15 rows in 1 pages for object "sys.sysowners".
DBCC results for 'sys.sysprivs'.
There are 317 rows in 2 pages for object "sys.sysprivs".
DBCC results for 'sys.sysschobjs'.
There are 2732 rows in 38 pages for object "sys.sysschobjs".
...итд

5. запрос: ALTER DATABASE BASE SET SINGLE_USER WITH ROLLBACK IMMEDIATE
лог:
Nonqualified transactions are being rolled back. Estimated rollback completion: 100%.

6. запрос: DBCC CheckDB ('BASE', REPAIR_ALLOW_DATA_LOSS)
лог:
Failed to restart the current database. The current database is switched to master.
Warning: The log for database 'BASE' has been rebuilt. Transactional consistency has been lost. The RESTORE chain was broken, and the server no longer has context on the previous log files, so you will need to know what they were. You should run DBCC CHECKDB to validate physical consistency. The database has been put in dbo-only mode. When you are ready to make the database available for use, you will need to reset database options and delete any extra log files. 
DBCC results for 'BASE'.
Service Broker Msg 9675, State 1: Message Types analyzed: 14.
Service Broker Msg 9676, State 1: Service Contracts analyzed: 6.
Service Broker Msg 9667, State 1: Services analyzed: 3.
Service Broker Msg 9668, State 1: Service Queues analyzed: 3.
Service Broker Msg 9669, State 1: Conversation Endpoints analyzed: 0.
Service Broker Msg 9674, State 1: Conversation Groups analyzed: 0.
Service Broker Msg 9670, State 1: Remote Service Bindings analyzed: 0.
DBCC results for 'sys.sysrowsetcolumns'.
There are 5981 rows in 47 pages for object "sys.sysrowsetcolumns".
DBCC results for 'sys.sysrowsets'.
There are 1458 rows in 11 pages for object "sys.sysrowsets".
DBCC results for 'sysallocunits'.
There are 1498 rows in 20 pages for object "sysallocunits".
DBCC results for 'sys.sysfiles1'.
There are 2 rows in 1 pages for object "sys.sysfiles1".
DBCC results for 'sys.syshobtcolumns'.
There are 5981 rows in 55 pages for object "sys.syshobtcolumns".
DBCC results for 'sys.syshobts'.
There are 1458 rows in 11 pages for object "sys.syshobts".
DBCC results for 'sys.sysftinds'.
There are 0 rows in 0 pages for object "sys.sysftinds".
DBCC results for 'sys.sysserefs'.
...итд
CHECKDB found 0 allocation errors and 6 consistency errors in database 'BASE'.
CHECKDB fixed 0 allocation errors and 6 consistency errors in database 'BASE'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

7. запрос: ALTER DATABASE BASE SET MULTI_USER
лог:
Command(s) completed successfully.
12 май 10, 11:55    [8759338]     Ответить | Цитировать Сообщить модератору
 Re: Suspect в sql 2005  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8910
База упала в Suspect
DBCC CHECKDB ругается на 1 consistency error на предмет:
System table pre-checks: Object ID 4. Couldn't read a latch page (1:10011) with latch type SH. Check stmnt terminated due unrepaireable error.
Object с ид=4 это, я так понимаю, это sys.sysrowsetcolumns ...
База померла, да? => И нужен перелив файлов, процедур и проч....
Или можно как-то вылечить эту ошибку?

Заранее спасибо.

PS С точки зрения NTFS, файлы базы живы.

PPS Бэкап делался последний раз недели три назад. Так что ситуация не совсем убийственна. Но с другой стороны, у меня канал "тонкий", а получить доступ к телу сервера (или к локальной сетке, что для мну почти монопенисуально) на выходные не удалось (ну, или почти не удалось). Ругаться на человека, что он проимел момент, когда перестал делаться автобэкап, я не стал - чо уж теперь ... - йа тоже моментами НЕангел... Йа ваще не ангел... Йа - блондинко!
9 апр 11, 19:56    [10496026]     Ответить | Цитировать Сообщить модератору
 Re: Suspect в sql 2005  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32167
SIMPLicity_
База упала в Suspect
DBCC CHECKDB ругается на 1 consistency error на предмет:
System table pre-checks: Object ID 4. Couldn't read a latch page (1:10011) with latch type SH. Check stmnt terminated due unrepaireable error.
Object с ид=4 это, я так понимаю, это sys.sysrowsetcolumns ...
База померла, да? => И нужен перелив файлов, процедур и проч....
Думаю, да.

SIMPLicity_
PPS Бэкап делался последний раз недели три назад. Так что ситуация не совсем убийственна.
Сделайте бакап лога, если база бывал в фулл-режиме.

SIMPLicity_
Ругаться на человека, что он проимел момент, когда перестал делаться автобэкап, я не стал - чо уж теперь
Правильно, не нужно ругаться - нужно просто уволить. Или пусть вводит инфу сам :-)
9 апр 11, 20:11    [10496061]     Ответить | Цитировать Сообщить модератору
 Re: Suspect в sql 2005  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8910
Про перелив базы - думаю, просто, что это будет очень долгий процесс. Я не совсем хорошо представляю себе структуру "упавшей" базы :( ... Ну, чтож - "будем подумать".

Злой ты, блин!.. И погода на улице кал - жидкое холодное грязеводоснеговое месиво.

Сисадмин - вполне адекватный нормальный парень. Учитывая минимизацию затрат со стороны начальства... Ну, не всем выпал нелимитируемый бюджет. :) "Кто не лажался, путь первым в немя бросит камень" (с) Иисус ХрIсTос (прости меня, Господи; надеюсь Ты не обидешься)
9 апр 11, 20:28    [10496101]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить