Co zrobić, jeśli moja baza danych jest pełna i nie mam zapasowego dysku twardego lub pamięci. Jaka powinna być moja strategia uwolnienia przestrzeni?
Co zrobić, jeśli moja baza danych jest pełna i nie mam zapasowego dysku twardego lub pamięci. Jaka powinna być moja strategia uwolnienia przestrzeni?
Odpowiedzi:
„Moja baza danych jest pełna” może oznaczać bardzo różne rzeczy w Oracle
1 Każdy bajt mojego dysku twardego jest wypełniony „użytecznymi” danymi.
Kompresja / zduplikowanie danych / normalizacja może pomóc, ale taniej jest kupić więcej dysków.
2 Mam miejsce w pliku dla obszaru tabel X, ale potrzebuję go dla tabel w obszarze tabel Y
Jeśli spacja znajduje się na końcu pliku, możesz zmniejszyć obszar tabel. Jeśli nie najlepiej, przenieś tabele z Y do X. Trudno jest odzyskać miejsce ze środka pliku obszaru tabel
3 Usunąłem wiele rekordów z TABELI A, ale nie odzyskał przestrzeni w obszarze tabel
ALTER TABLE ... MOVE; uporządkuje to, ale później będziesz musiał odbudować indeksy.
Prawdopodobnie istnieją inne scenariusze, więc odpowiem społeczności na wiki /
Dzienniki transakcji będą przechowywane rośnie w nieskończoność dopóki nie zużyją całej dostępnej przestrzeni. Prawdopodobnie jest to jedna z przyczyn wyczerpania się miejsca.
Możesz obetnij dzienniki transakcji aby zwolnić miejsce, ale należy pamiętać, że usunie to możliwość przywrócenia do punktu w czasie lub wycofania zmian w DB.
Aby skrócić dzienniki, uruchom
BACKUP LOG [DatabaseName] WITH TRUNCATE_ONLY
następnie zmniejsz plik dziennika, aby zwolnić miejsce na dysku. Uwaga: Przyjąłem MS SQL.
Będziesz potrzebował ciągłej strategii, aby zapobiec powtórzeniu się tego. W zależności od aplikacji i poziomu laissez-faire możesz: