Aby ustalić, czy baza danych musi zostać naprawiona używając SQL Server Management Studio (SSMS), uruchom polecenie:
dbcc checkdb ('DB-NAME') WITH NO_INFOMSGS, ALL_ERRORMSGS
zastępując DB-NAME nazwą bazy danych. Jeżeli otrzymasz komunikat o braku błędów, to baza danych nie musi być naprawiana. Natomiast w przypadku jeżeli zostaną wyświetlone informacje, które mówią:
...Run DBCC UPDATEUSAGE
baza danych nie musi być naprawiana, wystarczy uruchomić:
dbcc updateusage ('DB-NAME') with no_infomsgs
W przypadku kiedy baza danych wymaga jednak naprawy, wykonaj następujące czynności:
- Zajrzyj do dzienników zdarzeń aplikacji Windows i dzienników zdarzeń SQL, aby sprawdzić, czy zostały zarejestrowane jakiekolwiek problemy, które mogą wyjaśnić problem. Na przykład czy problem jest spowodowany awarią dysku lub awarią zasalania. Często nie będziesz w stanie zidentyfikować przyczyny ale najpierw rozwiąż problemy sprzętowe a następnie wykonuj następne czynności.
- Drugą metodą zamiast naprawy bazy danych jest przywrócić ją z ostatniej niezawodnej kopii zapasowej.
Aby naprawić bazę danych, baza danych musi najpierw zostać przełączona do trybu pojedynczego użytkownika:
alter database DB-NAME set SINGLE_USER
Gdy baza danych jest w trybie pojedynczego użytkownika, może zostać naprawiona. Istnieje wiele opcji naprawy, ale zazwyczaj używane są dwie "REPAIR_REBUILD" i "REPAIR_ALLOW_DATA_LOSS". Sugeruję w pierwszej kolejności użycie:
dbcc checkdb ('DB-NAME', REPAIR_REBUILD)
spowoduje to wszelkie naprawy, które SQL Server może wykonać bez utraty danych.
Jeżeli (i tylko jeżeli) SQL Server nie może naprawić bazy danych bez utraty danych, użyj:
dbcc checkdb ('DB-NAME', REPAIR_ALLOW_DATA_LOSS)
po naprawieniu bazy danych należy ją wyłączyć z trybu pojedynczego użytkownika i wrócić do trybu wielu użytkowników:
set database DB-NAME set MULTI_USER
W przypadku problemów z naprawą bazy danych prosimy o kontakt.