Baza danych „podejrzanych” programu SQL Server?


40

Co robisz, gdy masz bazę danych oznaczoną jako Suspect?

Przywrócić z ostatniej kopii zapasowej?

Proszę doradź.

Odpowiedzi:


41

Pierwszą rzeczą jest upewnienie się, że NIE odłączasz tej bazy danych.

Przywracanie z ostatniej znanej dobrej kopii zapasowej jest w porządku. W przeciwnym razie będziesz musiał użyć trybu naprawy AWARYJNEJ (zakładam, że korzystasz z SQL 2005 lub nowszej wersji). Oto kilka postów od Paula Randala na ten temat. Przeczytaj je oba, zanim zaczniesz podejmować jakiekolwiek działania.

Tworzenie, odłączanie, ponowne dołączanie i naprawianie bazy danych SUSPECT

Naprawa w trybie AWARYJNYM: w ostateczności


5

Prawie tak.

Zasadniczo oznacza to, że pliki są zablokowane lub brakuje, albo występuje błąd dysku lub coś takiego (widziałem, że przyczyną tego jest zły sektor).

Moje kroki:

  • Upewnij się, że istnieją wszystkie kopie zapasowe
  • Zamknij SQL Server
  • chkdsk dyski używane przez SQL Server (mam nadzieję, że nie twoje C: oczywiście)

Edycja: wyjaśnię moją odpowiedź

  • jeśli dane są ważne, mam kopię zapasową
  • przestoje w pracy z naprawami i trybem awaryjnym są dla mnie za długie

5

Napisałem kilka wskazówek na ten temat dla 2 przypadków podejrzanej bazy danych: kiedy straciłeś plik danych lub plik dziennika. Proszę przeczytać następujące:


5
A więc oto rzecz: Stack Exchange nie działa, jeśli wszystko, co publikujesz, to linki. Musimy tylko podsumować treść linków, albo będę zmuszony usunąć twoją odpowiedź (a potem stracisz przedstawiciela i żadne z nas nie chce, aby tak się stało)
jcolebrand

4

Z twojego pytania wynika, że ​​masz kopię zapasową. Przywrócenie bazy danych z dobrej kopii zapasowej będzie najłatwiejszym i najszybszym sposobem na uruchomienie bazy danych i wyjście z podejrzanego stanu.


5
Ale stracisz dane, jeśli nie masz dzienników transakcji.
mrdenny

0

Moja pierwsza rada to; nigdy nie odłączaj podejrzanej bazy danych. Pomocne jest przywrócenie bazy danych ze zaktualizowanej kopii zapasowej. Jeśli kopia zapasowa jest niedostępna lub wystąpił problem, EMERGENCYtryb może być przydatny:

Ustaw bazę danych w tryb awaryjny:

ALTER DATABASE DB_NAME SET EMERGENCY

Teraz sprawdź niespójności bazy danych z tym:

DBCC CHECKDB (‘DB_NAME’)

DBCC CHECKDB Naprawa zezwala na utratę danych w ostateczności. Skutkiem może być utrata danych, więc nie sugeruję, aby go uruchomić.

Sprawdź także odniesienie 1 i odniesienie 2

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.