Przywróć plik Bak do mniejszych plików bazy danych mdf i ldf


11

Mam starszą bazę danych, której koszmarnego braku projektu nie będę tu wchodził, ale pliki na serwerze są (względnie) ogromne. Mam:

MyDatabase.mdf: 24,8
GB MyDatabase.ldf: 114,6 GB

Ta baza danych jest tworzona co noc w pliku .bak i wysyłana na nasz serwer raportowania, gdzie jest przywracana. Plik .bak jest znacznie mniejszy i ma zaledwie 1,8 GB.

Jednak gdy próbuję przywrócić go na serwerze raportowania, kończy się niepowodzeniem z powodu niewystarczającej ilości miejsca. Na serwerze jest około 100 GB wolnego miejsca i stara się pochłonąć całe 139,4 GB, które pliki zużyły na oryginalnym serwerze. O ile moja wiedza na temat kompresji nie jest strasznie nieprawidłowa, jestem całkiem pewien, że plik 1,8 GB tak naprawdę nie rozszerza się o 7400%.

Moje pytanie: Czy jest jakiś sposób, aby powiedzieć SQL Serverowi, aby przywrócił ten plik kopii zapasowej bez rezerwowania tego miejsca z góry? Nie dbam o żadne dzienniki; Potrzebuję tylko danych, żeby tam być. Rozumiem bazy danych z perspektywy programowania i schematu, ale w żadnym wypadku nie jestem DBA.

To jest na SQL Server 2008 R2. Dziękuję za wszelką pomoc lub sugestie.

Odpowiedzi:


11

Kopia zapasowa zawiera dwie informacje:

Rzeczywiste dane w kopii zapasowej to 1,8 GB. Ale metadane opisują układ plików jak na oryginalnym serwerze produkcyjnym. Chociaż wygląda na kompresję, nie jest faktyczną kompresją. To tylko metadane vs. treść. problem polega na tym, że podczas PRZYWRACANIA maszyna raportująca tworzy układ zgodnie z opisem w metadanych, a zatem 114,6 GB + 24,8 GB. Teraz prawdziwe pytanie: czy możesz go przywrócić bez odtwarzania oryginalnego układu plików DB? Nie. Istnieją jednak inne rozwiązania Twojego problemu: przywróć oryginalną bazę danych. Zmniejszanie dziennika transakcji obejmuje kroki, które należy wykonać, ponieważ dziennik jest twoim głównym bolącym punktem. Następnie wdrożyłbym wysyłanie dziennika zamiast tworzenia kopii zapasowych / przywracania.


Dziękuję Ci; zmniejszenie dziennika transakcji sprawdziło się doskonale.
eouw0o83hf

1
Wysyłanie dziennika zamiast kopii zapasowych dziennika ??
Thomas Stringer

4
@Shark: przesyłanie dziennika zamiast pełnych kopii zapasowych, jako sposób na dostarczenie bazy danych do komputera raportującego.
Remus Rusanu,

No dobrze, zupełnie przegapiłem tę część pytania. Dziękuję za wyjaśnienie!!
Thomas Stringer

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.