Listy kontrolne programu SQL Server

14

Kontynuując moje inne pytanie , chciałbym zacząć myśleć o tym, na co powinienem spojrzeć w codziennych / tygodniowych / miesięcznych bazach pod względem alertów. Mam nadzieję, że będę w stanie zobaczyć problemy, zanim się pojawią (taki jest plan) ...

Do tej pory zacząłem zbierać skrypty dla następujących (bez kolejności):

Codziennie

  • Sprawdź dostępność systemu (na wypadek, gdybym musiał sprawdzić cokolwiek jako DBA)
  • Sprawdź ostatnią kopię zapasową
  • Sprawdź kopie zapasowe dziennika transakcji
  • Sprawdź status zadań SQL
  • Sprawdź średnie zużycie procesora w ciągu ostatnich 24 godzin (lub 1140 minut)

Co tydzień

  • Sprawdź historię kopii zapasowych MSDB
  • Sprawdź, kiedy ostatnio uruchomiono CheckDB
  • Sprawdź fragmentację indeksu
  • Sprawdź statystyki indeksu (odczyty vs zapisy itp.)
  • Sprawdź, czy nie ma wąskich gardeł we / wy

Miesięczny

  • Sprawdź brakujące indeksy
  • Sprawdź indeksy, które nie są już używane

Jakieś inne sugestie? (Jestem nowy w DBA, więc wszelka pomoc / porady są zawsze mile widziane)

Stuart Blackler
źródło

Odpowiedzi:

3
  1. Kopie zapasowe

    • Sprawdź zapasowe wiadomości e-mail
    • Jak długo trwało tworzenie kopii zapasowej (czas trwania kopii zapasowej bazy danych)
    • Sprawdź, czy kopia zapasowa wszystkich baz danych jest wykonywana zgodnie z planem konserwacji
  2. Wolne miejsce na dysku. Zwróć uwagę na znaczne różnice w stosunku do poprzedniej kontroli. Na pliki dziennika mogą mieć dramatyczny wpływ miesięczne zadania

  3. Awarie pracy Filtruj aktywność zadania pod kątem awarii

  4. Kontrola systemu. Sprawdź dzienniki SQL w poszukiwaniu błędów krytycznych.

    • Dzienniki aplikacji
  5. Występ

    • Sprawdź statystyki wydajności na wszystkich serwerach
    • Sprawdź, czy liczniki znajdują się w normalnym zakresie na wszystkich serwerach produkcyjnych
  6. Łączność

    • Sprawdź, czy aplikacja klienta może uzyskać dane z bazy danych
    • Sprawdź akceptowalną prędkość dostępu do danych
  7. Replikacja Sprawdź, czy każda publikacja i dystrybutor są uruchomione dla każdej subskrypcji

Lista kontrolna DBA programu SQL Server

Lista kontrolna Sure DBA Brada

Lista kontrolna Oracle DBA (może być przydatna)

Lista kontrolna zarządzania bazą danych DBA programu SQL Server

DBA Poranna lista kontrolna

Lista kontrolna DBA MS SQL Server (wiele list kontrolnych)

Lista kontrolna DBA programu SQL Server

garik
źródło
4

Jedyną odmianą, którą sugeruję na twojej liście kontrolnej, jest zastąpienie słowa BACKUP słowem PRZYWRÓĆ. Sprawdzenie, czy tworzenie kopii zapasowych jest kompletne, to dobry początek, naprawdę ważne jest to, czy można je przywrócić. Ostrzegaj o niepowodzeniu tworzenia kopii zapasowej, zautomatyzuj losowe próbkowanie przywracania, abyś wiedział, że kopie zapasowe są dobre.

Kolejnym krokiem na liście kontrolnej dziennej / tygodniowej / miesięcznej jest historia. Sprawdzanie liczników wydajności x / y / z jest bez znaczenia bez linii bazowej do porównania dziś z wczoraj. Bez zrozumienia dnia dzisiejszego i wczorajszego nie da się przewidzieć w przyszłym miesiącu.

Mark Storey-Smith
źródło
2

ZASTRZEŻENIE: To nie jest SQL Server DBA

Jeśli to możliwe, warto sprawdzać co miesiąc indeksy, które nie są używane przez żadne zapytania. To na pewno chcesz zrobić

  • bardzo duże stoły
  • tabele z wieloma indeksami
  • indeksy z wieloma kolumnami (3 lub więcej)
RolandoMySQLDBA
źródło
4
Tylko upewnij się, że „nieużywanie” odzwierciedla cały cykl biznesowy. Słyszałem o wielu przypadkach, w których DBA zdecydowało się upuścić indeks, który nie był używany od kilku miesięcy, a następnego dnia kwartalny raport dyrektora finansowego zajmuje godziny zamiast sekund ... nie można polegać na indeksie_usage_stats DMV, szczególnie jeśli twój serwer jest okresowo restartowany, więc zrobiłbym to tylko wtedy, gdy będziesz utrzymywał własne statystyki użytkowania w czasie ...
Aaron Bertrand
2

Często sprawdzaj długość kolejki we / wy pod kątem wąskiego gardła.

Thomas Stringer
źródło
2

Coś, co może pomóc w osiągnięciu tego ... Idera wypuściła darmowe narzędzie do przeglądu zadań SQL Server, z których korzystałem kilka razy. Jest bardzo dobry, aby uzyskać dobry przegląd, chociaż ma kilka ograniczeń, ponieważ jest bezpłatny. Warto sprawdzić: http://www.idera.com/Products/Free-Tools/SQL-job-manager/

Coś, co dodałbym po stronie bezpieczeństwa domu ... Plik śledzenia specjalnie do przechwytywania aktywności logowania dla kont użytkowników. Umożliwi to łatwe znalezienie nieaktywnych kont. Następnie skrypt, który monitoruje, kiedy ktoś jest dodawany do stałych ról serwera / bazy danych. Zwłaszcza sysadmin, jeśli nie jesteś jedynym zarządzającym serwerem / instancją.


źródło
Czy plik śledzenia jest najlepszym sposobem na to?
Thomas Stringer,
to najłatwiejszy sposób na uzyskanie informacji. Chyba że użyjesz wyzwalacza, aby przechwycić informacje do tabeli lub dziennika. Jeśli korzystasz z SQL 2008, w tym celu można użyć zarządzania zasadami.
Śledzenie może być najlepszym sposobem, @ShawnMelton. Istnieje sposób na zmodyfikowanie rejestru ( sqlservercentral.com/articles/security/sqlserverauditingpart1/... ), aby SQL Server kontrolował wszystkie logowania (udane i niepowodzenia). Nie jestem pewien, co oznacza najlepszy sposób, ale zawsze obawiałem się, że ślad będzie działał w nieskończoność. Twoje myśli?
Thomas Stringer,
Nigdy nie miałem problemu z uruchomieniem plików śledzenia, w których tak bardzo wpływały one na wydajność. Mimo że mam włączoną kontrolę C2, nie podoba mi się to. Rozszerzone zdarzenia stanowią alternatywę i powinny być preferowaną metodą korzystania z plików śledzenia, zwiększając ich moc. Możesz sprawdzić, czy istnieje opcja logowania, jestem pewien, że tak. Z tego, co o nich rozumiem, są oni w jakiś sposób wykluczeni z powodowania uderzenia w wydajność.
ładny. Jestem skłonny się z tobą zgodzić. I tak, C2 jest zdecydowanie jedną z tych sytuacji, w których wystarczy użyć, jeśli potrzebujesz.
Thomas Stringer,
0
  • sprawdź dziennik błędów SQL Server i SQL Server Agent
  • sprawdź status serwerów lustrzanych (główny i lustrzany)
  • sprawdź zmiany czasu wykonania zadań
  • sprawdź aktywny węzeł w klastrowanym serwerze SQL
  • sprawdź miejsce na dysku
Alex_L
źródło