| Opis zagadnienia | |
| Rozszerzanie bazy danych tempdb |
Domyślnie program SQL Server 2005 automatycznie rozszerza bazę danych zgodnie z parametrami podanymi podczas jej tworzenia. Można także powiększyć bazę danych ręcznie, alokując dodatkowe miejsce istniejącemu plikowi bazy danych lub tworząc nowy plik. Niekiedy konieczne jest zwiększenie dostępnej przestrzeni danych lub dziennika transakcji, jeśli istniejące pliki się zapełniają. Jeśli baza danych wyczerpała już alokowane jej miejsce i nie może rozszerzyć się automatycznie, zgłaszany jest błąd 1105. Może się to zdarzyć, jeśli w ustawieniach nie skonfigurowano automatycznego rozszerzania lub na dysku brakuje miejsca.
Podczas rozszerzania bazy danych należy zwiększyć jej rozmiar o co najmniej 1 MB. Rozszerzenie bazy danych powoduje, że nowa przestrzeń jest natychmiast udostępniana dla pliku danych lub dziennika transakcji – w zależności od tego, który z nich rozszerzono. Należy określić także maksymalną wielkość, do jakiej może urosnąć plik. Pozwala to zapobiec wykorzystaniu przez plik całej dostępnej przestrzeni na dysku. Aby określić maksymalną wielkość pliku, należy użyć parametru MAXSIZE instrukcji ALTER DATABASE (j.ang.), lub opcji Restrict filegrowth (MB) w przypadku użycia okna dialogowego Properties w SQL Server Management Studio do rozszerzenia bazy danych. Rozszerzanie bazy danych w celu zwiększenia miejsca dla dziennika transakcji przebiega w analogiczny sposób.
Jeśli ustawienia dziennika transakcji nie uwzględniają automatycznego rozszerzania, niektóre działania w bazie danych mogą spowodować wyczerpanie miejscem które jest dla niego dostępne. Jeśli np. włączony jest pełny model odzyskiwania bazy danych, wykonanie dużej operacji masowej, np. masowego importu lub indeksacja, może spowodować błyskawiczne wypełnienie dziennika transakcji. Oprócz rozszerzania, dziennik transakcji można także obciąć. Obcięcie dziennika transakcji oczyszcza plik z nieaktywnych i zarezerwowanych transakcji, umożliwiając aparatowi bazodanowemu SQL Server ponowne wykorzystanie zwolnionego w ten sposób miejsca. Sposób i czas obcinania dziennika zależy od modelu odzyskiwania bazy danych. Dodatkowe informacje można znaleźć w dokumencie Transaction Log Truncation (j.ang.).
Domyślnie baza danych tempdb rozszerza się automatycznie zgodnie z wymaganiami, ponieważ właściwość MAXSIZE plików jest ustawiona na UNLIMITED (bez ograniczeń). Dlatego też baza tempdb może się rozrastać aż do wyczerpania miejsca na dysku.
Można zapobiec nieograniczonemu rozszerzaniu bazy tempdb, ustawiając inną wartość MAXSIZE, jednak nie jest to zalecane. Ograniczenie wielkości bazy tempdb może spowodować, że baza danych wyczerpie dostępne miejsce. Taka sytuacja może doprowadzić do poważnej przerwy w działaniu środowiska produkcyjnego i uniemożliwić zakończenie akcji wykonywanych przez uruchomione aplikacje. Jeśli ustawiony został maksymalny rozmiar bazy tempdb, w celu jego zwiększenia należy wykonać jedną z poniższych czynności:
| • | Zwiększyć wielkość plików w domyślnej grupie plików używanej przez bazę tempdb. |
| • | Dodać nowy plik do domyślnej grupy plików. |
| • | Umożliwić automatyczne rozszerzanie plików używanych przez bazę tempdb. |
| Ważne: |
Baza tempdb nie może używać grup plików zdefiniowanych przez użytkownika. |