Recovery Pending

0

SQL

Witam wszystkich, piszę do Was z wielką prośbą. Zostałem poproszony do naprawy błędnie skompresowanej bazy danych. Nie wiem do końca co się wydarzyło - prawdopodobnie w eksploratorze windows oczyszczanie dysku z kompresją plików. Jest to baza danych do programu księgowego przy której pokazało się Recovery Pending. Google pokazało mi jako rozwiązanie:

ALTER DATABASE [My fantastic database] SET OFFLINE WITH ROLLBACK IMMEDIATE
ALTER DATABASE [My fantastic database] SET ONLINE WITH ROLLBACK IMMEDIATE

lub

ALTER DATABASE [baza] SET EMERGENCY;
GO
ALTER DATABASE [baza] set single_user
GO
DBCC CHECKDB ([baza], REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS;
GO
ALTER DATABASE [baza] set multi_user
GO

Uprzedzam pytanie - brak kopii zapasowej, a baza jest dość ważna (2 miesiące pracy)
Kolejna sprawa, nie mam kompletnie pojęcia na temat SQL, więc jak mógłby mnie ktoś poprowadzić za rękę, krok po kroku byłbym wdzięczny.

https://4programmers.net/Forum/Download/30375

0
Przemyslav Żurek napisał(a):

Uprzedzam pytanie - brak kopii zapasowej, a baza jest dość ważna (2 miesiące pracy)
Kolejna sprawa, nie mam kompletnie pojęcia na temat SQL, więc ...

więc może znajdź kogoś, kto kuma tę dziedzinę??

6

Uprzedzam pytanie - brak kopii zapasowej, a baza jest dość ważna (2 miesiące pracy)

to oksymoron, ale zostawmy to...

Zanim zaczniesz naprawiać to warto znać przyczynę kiedy baza jest w recovery pending, kilka przyczyn

  • Baza danych nie została poprawnie zamknięta i podczas zamykania jest aktywna co najmniej jedna niezatwierdzona transakcja.
  • uszkodzenie pliku dziennika
  • Nie można zainicjować odzyskiwania bazy danych z powodu niewystarczającej ilości pamięci lub miejsca na dysku.

Z tego co opisujesz to wariant 3 wydaje się najbardziej prawdopodobny, więc zanim w ogóle zaczniesz się bawić w puszczanie komend ktorych nie jesteś pewień:

  1. zrób kopie plikow mdf/ldf
  2. upewnij się, że masz miejsce na dysku
  3. Jeżeli pliki bazy są w folderze skompresowanym to trzeba to zmienić.

Patrząc na screen to prawdopodbne wydaje sie, że miejsce zostalo zajęte przez rosnące logi bazy (warto sprawdzić kiedy baza go ucina... aby uniknąć w przyszłości)

zanim puścisz DBCC CHECKDB to na początku bez opcji REPAIR_ALLOW_DATA_LOSS bo to bilet w jedna stronę.

0

@AnyKtokolwiek:
Było to brane pod uwagę ale jako, że interesuje się takimi rzeczami to chciałem sam spróbować.

@Panczo: wielkie dzięki za pomoc, wszystko się udało.

Może ktoś da rade teraz pomóc z automatycznym backupem?

1 użytkowników online, w tym zalogowanych: 0, gości: 1