Utrzymywanie baz danych 24x7 to dość duży temat z wieloma opcjami do rozważenia. Ten szeroki temat ma wiele kwestii do rozważenia, ale możemy spróbować dotknąć niektórych z najważniejszych punktów.
To, co najpierw chcesz zidentyfikować, to fakt, że podczas gdy wiele operacji trwa 24 godziny na dobę, 7 dni w tygodniu, zwykle zdarza się, że mało się dzieje. Możesz wykorzystać te czasy do przeprowadzenia konserwacji, aby zmniejszyć ingerencję w bazę danych. Po drugie, musisz zarezerwować trochę czasu na całkowite przestoje (np. Dodatki Service Pack lub migracje baz danych), więc będziesz musiał negocjować pełne okna konserwacji z kierownictwem. W przypadku poszczególnych elementów należy rozważyć i zaplanować każdy z nich, a także odpowiednio wykorzystać swoje narzędzia. Ważne jest, abyś PLANował każdy z nich, a wszelkie podane przeze mnie przykłady są bardzo „twoje mile mogą się różnić”.
Kopie zapasowe
Kopie zapasowe zwykle nie będą miały dużego wpływu na obciążenia, ale należy je uwzględnić, ponieważ mogą zużywać dużo operacji we / wy. Będziesz chciał odpowiednio je zaplanować i monitorować czas potrzebny do ukończenia. Największą przeszkodą jest to, że podczas operacji 24x7 prawdopodobnie nie będziesz w stanie wykonywać pełnych kopii zapasowych w nocy każdej nocy w tygodniu. Będziesz chciał zaplanować, kiedy możesz zrobić pełne, kiedy bierzesz różnice i okresy przechowywania dla obu z nich w połączeniu z kopiami zapasowymi dziennika.
Jako przykład wykonuję pełne kopie zapasowe wszystkich moich baz danych w niedzielę wieczorem (najniższa aktywność), różnice we wszystkich pozostałych nocach (od poniedziałku do soboty). Trzymam ostatnie dwa tygodnie pełnych i różnic na dysku, logi z ostatnich dwóch dni. Daje mi to wystarczającą elastyczność do odzyskiwania, ale w razie potrzeby może być konieczne odzyskanie kopii zapasowych z taśmy.
Utrzymanie indeksu / statystyki
Jest to najczęstszy rodzaj aktywnej konserwacji, z którą będziesz musiał sobie poradzić. Nie możesz tego uniknąć, ale możesz złagodzić wpływ. Początkowa zasada jest taka, że należy wykonywać czynności konserwacyjne tylko na obiektach, które tego potrzebują. Ogólne wytyczne dotyczą tylko odbudowywania indeksów, które są podzielone na ponad 30% i zawierają więcej niż 1000 stron . Jeśli masz statystyki automatycznych aktualizacji , poradzisz sobie z większością statystyk, ale codzienne zadanie synchronizacji nie jest złym pomysłem.
Jeśli masz wersję Enterprise, masz również dostęp do niektórych innych opcji zarządzania konserwacją. Przede wszystkim są to Online Index Rebuilds , które pozwolą ci odbudowywać indeksy, gdy są one nadal w użyciu (w zasadzie buduje indeks obok siebie, a następnie zamienia go). Można także wykorzystać partycjonowanie dla „dużych” tabel, aby skrócić niezbędny czas odbudowy.
Najlepszym rozwiązaniem dla tego rodzaju konserwacji, jeśli nie masz niestandardowych skryptów obsługujących te najlepsze praktyki, jest użycie skryptów konserwacji Ola Hallengren . Są one dość łatwe w konfiguracji i konfiguracji oraz mają wbudowane wiele z tych wytycznych.
Sprawdzanie spójności DBCC
W zależności od ogólnego obciążenia pracą może okazać się, że kontrole DBCC mogą zakłócać działanie. Istnieją dwa typowe sposoby zminimalizowania wpływu DBCC na bazy danych:
PHYSICAL_ONLY
- Uruchomienie tej opcji sprawdzi bazy danych na poziomie strony fizycznej i pozwoli uniknąć bardziej inwazyjnego pełnego sprawdzania. Obejmuje to identyfikację najbardziej prawdopodobnych rodzajów korupcji.
- Sprawdzanie przywróconej kopii - jeśli masz miejsce, możesz przywrócić bazę danych do innej instancji i uruchomić sprawdzenie DBCC względem przywróconej kopii. To opowie tę samą historię o twojej bazie danych na żywo, ale oczywiście nie będziesz ingerował w aktywność. Niektóre inne alternatywy tutaj działają na DBCC dla kopii dostarczonej z logiem lub kopii lustrzanej db.
Ten post na blogu zawiera więcej szczegółów na temat twoich opcji.
Zadania wsadowe / ETL
To naprawdę sprowadza się do sposobu projektowania procesów. Twój ETL zawsze może zakłócać bieżące tabele OLTP (podobnie jak każda inna aplikacja), więc pamiętaj o kilku kluczach:
- Zaplanuj taką pracę wokół innych czynności konserwacyjnych i w okresach niskiej aktywności.
- Odpowiedni rozmiar pracy, aby był dopasowany zarówno pod kątem wydajności, jak i aby partia nie była tak duża, że blokuje stół na wiele godzin. Przykłady końców spektrum: wiersz po agonizującym wierszu (RBAR) w porównaniu do usunięcia pojedynczego miliona wierszy.
- Skorzystaj z tabel etapów i w razie potrzeby przetwarzaj dane offline. Dotykaj na żywo tylko wtedy, gdy jest to absolutnie konieczne.
Wniosek
Znowu jest tu wiele do omówienia. Nie jest to wyczerpujący przewodnik, ale ogólny przegląd niektórych podejść. Nie omawiałem nawet opcji wysokiej dostępności (takich jak Grupy dostępności i Klaster pracy awaryjnej). Będziesz musiał przejrzeć każdy przedmiot i opracować plan jego obsługi. Pod wieloma względami będziesz musiał także iterować i udoskonalać swoją pracę w miarę postępów.
Dodatkowe zasoby:
Najlepsze praktyki obsługi VLDB umiejętności SQL