Mamy plik BAK od klienta, który przesłaliśmy do naszych biur programistów w celu zbadania problemu. Kopia zapasowa ma obecnie 25 GB, a przywrócona baza danych ma mniej więcej taki sam rozmiar, jednak do przywrócenia potrzebuje 100 GB. Uważam, że dzieje się tak, ponieważ baza danych jest skonfigurowana tak, aby mieć dziennik transakcji o wielkości 75 GB. Po przywróceniu bazy danych możemy zmniejszyć plik dziennika, ale czy można to zrobić w trakcie przywracania?
sql-server
sql-server-2005
backup
restore
Adam Butler
źródło
źródło
Odpowiedzi:
Nie ma możliwości zmniejszenia kopii zapasowej w ramach procesu przywracania. Przywrócona baza danych musi wyglądać dokładnie tak jak źródłowa baza danych, z jedynym wyjątkiem, że można zmieniać litery dysków i foldery.
źródło
Istnieje hack typu „nie-nigdy-nie-rób-to-w-na-życie”, którego można użyć tam, gdzie jest mało miejsca, przywracając plik dziennika do skompresowanego folderu. Spróbuj to, kompresując istniejący folder i przywracając go, spowoduje błąd, więc musisz oszukiwać za pomocą dowiązania symbolicznego.
D:\LogCompressed\
Utwórz symboliczne łącze do skompresowanego folderu
mklink /D /J D:\Log\ D:\LogCompressed\
Przywróć bazę danych z plikiem ldf wskazującym na
D:\Log\
Zmniejsz plik dziennika do odpowiedniego rozmiaru
Odłącz bazę danych, przenieś plik dziennika do nieskompresowanego folderu, dołącz
Jest brudny, oszukuje, nigdy nie rób tego na żywo , ale działa. Szybki test nowo utworzonej bazy danych z plikiem dziennika o wielkości 32 MB pokazuje, że po skompresowaniu zajmuje 330 KB na dysku, dekompresuje folder, a rozmiar dysku powraca do 32 MB.
źródło
Uważam, że powodem, dla którego twoja kopia zapasowa jest 25 GB, a przywrócona baza danych ma 100 GB, nie wynika z dziennika transakcji. Domyślam się, że twoje pliki bazy danych mają 100 GB przydzielonego miejsca i 25 GB rzeczywistych danych w bazie danych.
Istnieje różnica między przydzielonym obszarem plików bazy danych a wykorzystanym obszarem danych . W tym przypadku pierwszy z nich ma pojemność 100 GB, a drugi 25 GB.
źródło