Witam, nazywam się Curt. Jestem starszym inżynierem głównym w zespole GSE.
Ten film wideo pokazuje, jak zmniejszyć plik dziennika transakcji bazy danych Microsoft SQL Server. Przyjrzymy się różnym sposobom zmniejszania dziennika transakcji i co zrobić, jeśli operacja zmniejszania dziennika nie powiedzie się zgodnie z oczekiwaniami.
Mamy więc kilka różnych sposobów zmniejszania pliku dziennika. Możemy przejść do SQL Server Management Studio. Przejdź do właściwości bazy danych i wykonaj tam operację zmniejszania, a my najpierw to zademonstrujemy.
Następnie mamy również operację wykonania polecenia TSQL ShrinkFile. Inną rzeczą, którą chcemy omówić w tym konkretnym filmie, jest to, co się stanie, jeśli operacja zmniejszania pliku nie powiedzie się zgodnie z oczekiwaniami, i omówimy opcje, które warto zastosować w takim przypadku Przejdźmy dalej i przejdźmy do Zarządzanie Studio.
Będziemy pracować z bazą danych "AdventureWorks2017" i jeśli przejdziemy do "Tasks" w menu bazy danych i przejdziemy do "Shrink", mamy dwie różne opcje.
Możemy pracować na poziomie bazy danych, zajmując się wszystkimi plikami w bazie danych lub zajmując się konkretnymi plikami, a w tym przypadku zdecydowanie chcemy przejść do konkretnych plików. Domyślnie widać, że jeśli spojrzycie na naszą paletę, mamy "Dane", które pojawiają się w sekcji "Typ pliku".
Nie zamierzamy nic robić z plikiem bazy danych, zamiast tego chcemy zmniejszyć dziennik transakcji, więc dziennik transakcji to dosłownie "Dziennik" w obszarze "Typ pliku". Mamy teraz kilka informacji o bazie danych.
Dziennik bazy danych jest dość mały. Jest to nowa baza danych i widzimy rozmiar przydzielony do tego dziennika transakcji oraz widzimy wolne miejsce. Wolne miejsce może być ważne, ponieważ bez wolnego miejsca nie możemy wykonać operacji zmniejszania pliku w bazie danych.
Istnieje kilka różnych opcji. Nie będziemy tutaj wchodzić w szczegóły, ale mamy możliwość zwolnienia nieużywanego miejsca, co w zasadzie obcina dziennik transakcji. Możemy to uruchomić klikając OK, co spowoduje zmniejszenie lub próbę zmniejszenia tej bazy danych. Zamiast tego przyjrzymy się opcji TSQL do zmniejszania bazy danych.
Jestem dziś trochę leniwy, więc przejdę do "Script Action to Clipboard", który spowoduje pobranie transakcji, polecenia TSQL, które zostałoby uruchomione, gdybyśmy kliknęli OK tutaj.
Kliknę przycisk Anuluj, a następnie wkleję polecenie TSQL, aby zmniejszyć bazę danych AdventureWorks2017. Aby jeszcze raz przejść przez polecenie, jest to polecenie zmniejszania pliku. Mamy do czynienia z dziennikiem AdventureWorks2017 i możemy określić, jak mały ma być ten dziennik.
W tym przypadku przywrócimy wartość domyślną wynoszącą zero. Jeśli nic tutaj nie zdefiniujesz lub pozostawisz wartość zerową, spróbuje zmniejszyć plik do oryginalnego rozmiaru pliku. Mamy opcję "truncateonly", która zwalnia miejsce w dzienniku transakcji z powrotem do systemu operacyjnego.
Po uruchomieniu mamy raport o tym, co zrobił i jaki jest jego aktualny rozmiar. Więc poszedł dalej i zredukował go do około megabajta, co jest dla nas świetne. Dużo więcej dodatkowego miejsca na dysku, które zostało nam zwrócone. Jedną z rzeczy, które chcemy również omówić w tym filmie, jest to, co się stanie, jeśli uruchomimy shrink file, ale nie uda się go pomyślnie uruchomić.
Najważniejszym powodem, dla którego operacja zmniejszania pliku kończy się niepowodzeniem, jest to, że w bazie danych nie ma wystarczającej ilości wolnego miejsca, aby wykonać polecenie zmniejszania pliku. Pierwszą rzeczą, którą będziemy chcieli zrobić, jest ustalenie ilości wolnego miejsca w pliku.
Widzieliśmy to w menu GUI, można również uruchomić to konkretne polecenie — teraz zmieniliśmy punkt ciężkości, zamiast tego pracujemy z bazą danych AdventureWorks2019. Uruchomienie tego konkretnego polecenia, polecenia select, zwróci nam ilość wolnego miejsca, która jest widoczna w tej bazie danych.
Obecnie widzimy trzy megabajty wolnego miejsca w bazie danych. Istnieją dwie różne opcje, których możemy użyć, aby spróbować zmniejszyć bazę danych w przypadku, gdy zabraknie nam wolnego miejsca w tej konkretnej bazie danych. Możemy zmienić opcję, opcję odzyskiwania, dla bazy danych Adventure Works 2019.
Jeśli zmienimy opcję odzyskiwania na "prostą" i uruchomimy polecenie dbcc shrink file, plik powinien zostać zmniejszony do rozmiaru znacznie mniejszego niż rozmiar oryginalny. Za każdym razem, gdy wprowadzamy naszą bazę danych w tryb prosty, dziennik transakcji ma do czynienia z aktywnymi transakcjami, a wszystko, co nie jest aktywne, jest wypłukiwane z dziennika.
Możemy uruchomić te konkretne polecenia. Większość produkcyjnych baz danych będzie w pełni odzyskiwana, więc przejście do simple pozwala nam, a przynajmniej daje nam szansę, na pomyślne uruchomienie polecenia shrink file. Jesteśmy w trybie prostym. Nasz scenariusz zakłada, że nie udało nam się tego pomyślnie uruchomić.
Po przejściu do trybu prostego pomyślnie uruchamiamy operację zmniejszania pliku synchronizacji, daje nam to informacje o nowym rozmiarze pliku, a ostatnią rzeczą, którą chcielibyśmy zrobić w tym konkretnym przypadku, jest przywrócenie go w trybie pełnego odzyskiwania.
Na tym etapie wzięliśmy niemożliwy do zarządzania plik dziennika transakcyjnego za pomocą polecenia shrink file i doprowadziliśmy go do stanu, w którym jesteśmy w stanie zmniejszyć ten plik i umieściliśmy go z powrotem w trybie, w którym można teraz utworzyć kopię zapasową, aby uzyskać najnowsze informacje o transakcji.
Na tym kończy się nasza prezentacja zmniejszania dziennika transakcji bazy danych Microsoft SQL Server.
Dziękuję za uwagę.