Ustawiać:
- Windows Server 2008 R2
- SQL Server 2008 R2 z dodatkiem SP1
- 240 GB pamięci RAM
- TempDB to pliki danych 8 x 16 GB bez automatycznego wzrostu (łącznie 128 GB)
- Serwer fizyczny / autonomiczny
Ten serwer służy do przetwarzania ETL. Właśnie zainstalowaliśmy więcej pamięci RAM na tym serwerze, co daje w sumie 240 GB pamięci RAM. Usługi SQL Server to jedyne działające rzeczy.
Pamięć pokazuje się dobrze w BIOS, OpenManage i Windows.
Jeśli skonfiguruję program SQL Server do korzystania z pamięci min./maks. 70/100 GB, nie będziemy mieć problemów. Jednak gdy zwiększę to do 120/150 GB, po uruchomieniu jednego z naszych procesów ETL pojawia się następujący błąd:
Nie można przydzielić miejsca dla obiektu „<tymczasowy obiekt systemowy: 422234507706368>” w bazie danych „tempdb”, ponieważ grupa plików „PODSTAWOWA” jest pełna. Utwórz miejsce na dysku, usuwając niepotrzebne pliki, upuszczając obiekty w grupie plików, dodając dodatkowe pliki do grupy plików lub ustawiając autogrowth dla istniejących plików w grupie plików. (Msg 1105, stan 2, procedura nieznana, wiersz 1)
Nigdy nie napotkaliśmy tego problemu przed zmianą konfiguracji pamięci. Po ponownej konfiguracji z powrotem do pierwotnej pojemności 70/100 GB nie pojawia się ten błąd.
Rzeczy, których próbowałem:
- Ustaw pliki danych TempDB na automatyczne powiększanie. Powoduje to po prostu automatyczne powiększanie plików do momentu osiągnięcia pojemności dyskowej, a następnie awarii.
- Dodaj więcej plików danych TempDB. Taki sam błąd, jak pokazano.
- Zwiększ rozmiar TempDB do 8 x 32 GB (łącznie 256 GB)
Nie wiem, co może być przyczyną tego problemu.