Esta manhã, meu banco de dados entrou em modo suspeito. Voltei ao backup completo da noite passada para colocá-lo online novamente. Examinei o log de erros e encontrei o último comando que parecia causar o modo suspeito MERGE
em uma tabela específica. Corri DBCC CHECKTABLE
em cima da mesa e voltei o seguinte
Msg 2511, Level 16, State 1, Line 1
Table error: Object ID 1253579504, index ID 7, partition ID 72057594230341632, alloc unit ID 72057594364887040 (type In-row data). Keys out of order on page (1:14254237), slots 184 and 185.
There are 366539002 rows in 3425599 pages for object "PJM_Prices".
CHECKTABLE found 0 allocation errors and 1 consistency errors in table 'PJM_Prices' (object ID 1253579504).
repair_rebuild is the minimum repair level for the errors found by DBCC CHECKTABLE (CaisoAnalyzer.dbo.PJM_Prices).
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
dentroERRORLOG
Internal database snapshot has split point LSN = 001935ad:00001bf6:0001 and first LSN = 001935ad:00001bf5:0001
Existe possivelmente uma maneira de colocar apenas essa tabela no modo de usuário único ou algum outro truque em que não preciso entrar no modo de usuário único para todo o banco de dados?
Uma sugestão seria identificar o índice que está causando o problema.
e depois solte-o. Se você acredita que vai precisar desse índice, eu criaria o script DDL antes de descartá-lo, descartá-lo, recriá-lo e, em seguida, executar novamente seu DBCC. Como
index_id
é 7, vou assumir que esta tabela está potencialmente superindexada, de modo que o YMMV realmente a recriou.Se descartar o índice não funcionar, eu sempre recomendaria um último backup válido para o qual você pode restaurar. Além disso, se isso estiver ocorrendo por um tempo, o backup também terá o índice corrompido, pois um backup completo é uma cópia página por página do banco de dados (+ algum log de transações) .