2008-11-17 12 views
7

Jako kontynuacja do this question Zastanawiam się, co twój plan tworzenia kopii zapasowych SQL Server/konserwacji i jak mogę zrobić moje lepsze.Jaki jest plan tworzenia kopii zapasowych/konserwacji serwera SQL?

Aktualnie używam dwóch planów konserwacji z poziomu kreatora planu.

pierwszych serii nocnych i robi prawie wszystko ...

  • Pełna baza danych i tworzenia kopii zapasowych dziennika transakcja
  • sprawdzania integralności, odbudować indeks, statystyka Recompute itp (Sprawdziłem wszystko oprócz przyrostowych kopii zapasowych)

Druga działa co trzy godziny i wykonuje przyrostową kopię zapasową (jestem paranoikiem, wiem, że to prawdopodobnie przesada).

Kopie zapasowe są na dysku, pełne kopie zapasowe są wysyłane do sieci SAN, przechowywane przez tydzień.

Jak myślisz, czy to rozsądny plan? Jakieś sugestie?

EDYCJA: To jest SQL Server 2005. DB ma 5 GB, rośnie około 1GB/miesiąc.

Odpowiedz

7

Brzmi całkiem nieźle. Jestem bardziej paranoidalny. Wykonuję dwie codzienne pełne kopie zapasowe i kopie dzienne transakcji. Zależy od wielkości bazy danych lub kursu. Kopie zapasowe są zapisywane bezpośrednio na dysku, a następnie kopiowane na taśmę co noc.

Prawdopodobnie nie trzeba wykonywać codziennych czynności konserwacyjnych. Robię je tylko w weekend, z wyjątkiem tego jednego stołu, który reindeksujemy każdej nocy. Znowu zależy to od wielkości i aktywności bazy danych.

Jeśli masz wystarczającą ilość procesora i miejsca na dysku, możesz spakować kopie zapasowe dysku, aby zaoszczędzić miejsce i przyspieszyć przesyłanie na taśmę lub do innej lokalizacji.

2

Nie sądzę, że jesteś paraniowem, uruchamiając kopie zapasowe co 3 godziny. Zasadniczo twój plan tworzenia kopii zapasowych musi zostać zmierzony zgodnie z wymaganiami dotyczącymi przywracania. Jak długo możesz stracić przytomność, gdy odzyskasz dane i ile danych chcesz stracić przed upadkiem. W przypadku programu SQL Server można znacznie zmniejszyć ilość danych, które chcesz utracić, dodając kopie zapasowe dzienników transakcji do planu tworzenia kopii zapasowych. Wiele osób robi to co kilka minut w zależności od ilości transakcji przechodzących przez system. Aby wykonać przywracanie, należy przywrócić ostatnią pełną, ostatnią inkrementację, a następnie wszystkie kopie zapasowe dziennika transakcji od przyrostowego. Może to spowodować minimalną utratę danych, ale może zająć trochę czasu, aby zastosować wszystkie kopie zapasowe dziennika transakcji. Widzę po dość regularnie: Pełne kopie zapasowe - Tygodnik przyrostowe kopie zapasowe - Nightly kopii zapasowych dziennika - co kilka minut, w zależności od wymagań (może być dobry raz na godzinę itp)

3

Powinieneś mówić ze swoimi użytkowników/klientów/opiekunowie danych - cokolwiek ich nazwiesz. Muszą mieć jasne zrozumienie, ile pracy mogą stracić. Napisz umowę SLA, jeśli jej nie posiadasz. Nie chcesz żadnych niespodzianek, jeśli chodzi o złe wieści.

Muszą również zrozumieć, że przywrócenie wymaga czasu. Musisz zaplanować swój plan naprawczy, aby utworzyć akceptowalny czas przywracania. Może to oznaczać codzienną pełną kopię zapasową, 4 mechanizmy różnicowe i kopie zapasowe dziennika co 5 minut. Nie jest to szaleństwo czy paranoja, jak powiedział Marcus Erickson - wszystko sprowadza się do twoich informacji i wartości dolara, jaką twoja organizacja na to stawia.

1

Należy pamiętać o wykonywaniu ćwiczeń z użyciem broni palnej, kiedy rzeczywiście próbuje się przywrócić z utworzonych kopii zapasowych (do systemu testowego). Powinno to nastąpić być może raz w miesiącu.

1

Minimalne zalecenie dla moich klientów polega na wykonywaniu nocnej pełnej kopii zapasowej bazy danych, a następnie kopii zapasowej transakcji co 3 godziny. Zawsze mnie zadziwia, jak wiele osób nigdy nie tworzy kopii zapasowej. To zawsze złe połączenia.

1

Moim zdaniem najlepszym sposobem jest:

Dokonaj pełnej kopii zapasowej bazy danych co 12 godzin

BACKUP DATABASE database TO DISK = 'd:/full.bak'

zapasowa różnica co pół godziny, w przypadku awarii to sprawia, że ​​łatwiej jest przywrócić proces

BACKUP DATABASE database TO DISK = 'd:/diff.bak' WITH DIFFERENTIAL

i, oczywiście, kopie zapasowe dziennika transakcji whic h lepiej robić co godzinę.

BACKUP LOG database TO DISK = 'log.bak'

Jeśli przypadku awarii proces odzyskiwania będzie następny:

  • ostatniej pełnej kopii zapasowej
  • Ostatnia różnica dziennika kopii zapasowych
  • Ostatnią transakcję

Należy przyznać, że lepiej jest użyć pełnego modelu odzyskiwania aby umożliwić odzyskanie danych w określonym momencie.

Powiązane problemy