Podstawowa grupa plików to pełny SQL Server 2008

15

Mam dużą tabelę (~ 50 milionów wierszy) Próbuję zbiorczo wstawić do programu SQL Server i pojawia się błąd:

Nie można przydzielić miejsca dla obiektu „myDB” w bazie danych „I 3 Stroke”, ponieważ grupa plików „PRIMARY” 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.

W bazie danych znajduje się kolejna tabela z około 25 milionami wierszy. Ta baza danych będzie używana tylko na jednej maszynie i zostanie zaprojektowana do wydobywania danych, które już istnieją i pod żadnym pozorem nigdy nie wzrośnie powyżej obecnej wielkości.

W takiej sytuacji jak najlepiej rozwiązać ten problem, aby SQL Server nie narzekał? Czy rozwiązanie będzie miało znaczenie, że ta baza danych nie zostanie udostępniona wielu użytkownikom?

wootscootinboogie
źródło
2
Musisz dodać więcej miejsca do bazy danych lub usunąć nieużywane obiekty. Jakie jest Twoje pytanie?
Gordon Linoff,
@GordonLinoff, kiedy baza danych została utworzona, grupa plików została zaprojektowana tak, aby mieć nieograniczony wzrost, a jednak napotykam ten problem. Mam nadzieję, że znajdę sposób, aby temu zapobiec.
wootscootinboogie
1
Czy masz więcej dostępnego miejsca na dysku fizycznym? Jeśli tak, sprawdź dzienniki błędów programu SQL Server i sprawdź, czy są dodatkowe informacje o tym, dlaczego nie powiodło się automatyczne tworzenie.
Kevin
Czy mógłby Pan potwierdzić, że dostępna jest wystarczająca ilość miejsca na dysku? Jest to jedyna możliwa przyczyna, z wyjątkiem ograniczonego wzrostu plików (o którym mówiłeś, że tak nie jest).
usr
1
Być może osiągasz limit rozmiaru bazy danych SQL Express Edition.
Bruno Martinez,

Odpowiedzi:

17

Wykonaj następujące kroki:

  1. Określ, ile miejsca chcesz dodać do przydziału pamięci bazy danych:
    1. Otwórz Eksploratora Windows
    2. Kliknij prawym przyciskiem myszy dysk, na którym istnieją pliki bazy danych
    3. Wybierz właściwości
    4. Sprawdź, ile miejsca na dysku jest dostępne i zdecyduj, ile z tego chcesz przeznaczyć na bazę danych
      ( Sugestia: Pozostaw co najmniej 20% wolnego miejsca na dysku, jeśli umieścisz pliki bazy danych na tym samym dysku co system operacyjny { Sub-sugestia : Don odradzaj / migruj dane na własny dysk; wkręcasz się we / wy.} i zostawiasz co najmniej 8% na czysty dysk z danymi; liczby te są szacunkami tego, co moim zdaniem rzeczywiste sugestie procentowe są. )
  2. Zaktualizuj przydział pamięci dla bazy danych.
    1. Otwórz SSMS
    2. Kliknij kartę „Widok”
    3. Wybierz „Object Explorer”
    4. Rozwiń folder „Bazy danych”
    5. Kliknij prawym przyciskiem myszy bazę danych, do której próbujesz wstawić zbiorczo
    6. Wybierz „Właściwości”
    7. Kliknij opcję listy „Pliki” w obszarze „Wybierz stronę” po lewej stronie okna właściwości
    8. Znajdź wiersz „Pliki bazy danych” za pomocą „Grupy plików” jako „PODSTAWOWE”
    9. Dodaj dowolną liczbę megabajtów, którą chcesz dodać do przydziału bazy danych, do liczby „Rozmiar początkowy (MB)”
    10. Naciśnij „OK”
      ( możesz również wziąć pod uwagę swoje wartości „Autogrowth”, gdy jesteś tutaj ).

Chcesz zapewnić swojej bazie danych tyle alokacji pamięci, ile możesz sobie na to pozwolić. Jeśli zabraknie miejsca, pojawi się ten błąd bez automatycznego powiększania, a jeśli automatyczne powiększanie jest włączone, za każdym razem, gdy będzie musiał się automatycznie powiększać, uzyskasz wydajność. Jeśli po prostu brakuje Ci miejsca na dysku, to jest twoja odpowiedź i potrzebujesz większego dysku.

Eric J. Price
źródło
1
Czy nie wszyscy chcemy większych DIsK? : P
Santa
12

Wersja Express Edition 2014 ma limit 10 GB na bazę danych. Jeśli automatyczne powiększanie bazy danych osiągnie ten punkt, SQL Server zgłasza komunikat o błędzie (niejasny?), Nie wspominając o limicie licencji. Być może jest dużo miejsca na dysku, ale nadal pojawia się ten komunikat.

Rozwiązanie, jeśli projekt pozwala: używać wielu baz danych na podstawie tej licencji.

RickC
źródło
1

W bazach danych często brakuje miejsca, gdy są w trybie pełnego odzyskiwania. Jeśli nie wykonujesz transakcji, a ręczne kopie zapasowe są wystarczające, możesz zmienić tryb odzyskiwania na prosty.

Konieczne może być również odzyskanie miejsca z pliku dziennika. . . można go opróżnić, ale nadal używać miejsca.

Lepiej jednak zadać to pytanie DBA, które mogą zaoferować więcej rozwiązań.

Gordon Linoff
źródło
Nie jest to kwestia nieudanego wzrostu dziennika. Wzrost danych nie powiódł się.
usr
@usr. . . Prawdopodobnie zajmują to samo miejsce na dysku. Problemem jest brak miejsca na dysku.
Gordon Linoff,
Mówi, że miejsce na dysku jest dostępne. Zapytałem wprost, bo też byłem podejrzliwy.
usr
Ile miejsca na dysku jest dostępne / wolne? Jaki jest obecny rozmiar wszystkich plików w podstawowej grupie plików i jakie jest ich ustawienie wzrostu? Możliwe, że przyrost będzie większy niż dostępna wolna przestrzeń.
user9164,
1

Z mojego doświadczenia wynika, że ​​ten komunikat pojawia się, gdy w pliku podstawowym (.mdf) nie ma miejsca na zapisanie metadanych bazy danych. Ten plik zawiera tabele systemowe i zapisują w nim tylko swoje dane.

Zrób trochę miejsca w pliku, a polecenia znów będą działać. To wszystko, ciesz się

FcoJavier99
źródło
0

Aby rozwiązać Podstawowa grupa plików jest pełny błąd przejdź do właściwości bazy danych -> Pliki -> Pliki bazy danych -> Grupa plików „PODSTAWOWA” -> Autogrowth / Maxsize i zmień grupa plików nazwa_pliku w megabajtach na 1, maksymalna kontrola rozmiaru pliku nieograniczona, a następnie Ok.

Dimitilde
źródło