Jak mogę wykonać kopię zapasową bazy danych SQL Server za pomocą narzędzia Kopia zapasowa systemu Windows Server?

11

Najwyraźniej Windows Server Backup ma pewne wsparcie dla tworzenia kopii zapasowych baz danych SQL Server:

Możliwość odzyskiwania aplikacji. Windows Server Backup korzysta z funkcji VSS wbudowanej w aplikacje takie jak Microsoft® SQL Server® w celu ochrony danych aplikacji. [Źródło: TechNet ]

Ponadto ludzie zgłaszają, że Kopia zapasowa systemu Windows Server wydaje się uruchamiać jakąś operację tworzenia kopii zapasowej w programie SQL Server .

Jednak nie udało mi się znaleźć (oficjalnej) dokumentacji dotyczącej tego, jak dokładnie wykonać kopię zapasową baz danych SQL Server przy użyciu Kopii zapasowej systemu Windows Server.

  • Czy muszę tylko wykonać kopię zapasową .mdf? The .mdfand the .ldf?
  • Online czy offline?
  • Jaka jest oficjalna procedura przywracania kopii zapasowych baz danych SQL Server w ten sposób?
  • Czy jest coś specjalnego do rozważenia podczas tworzenia przyrostowych / różnicowych kopii zapasowych?
  • Gdzie to wszystko jest udokumentowane?

(Wiem, jak robić kopie zapasowe z planami konserwacji SQL Server sqlmaint.exe, T-SQL BACKUP i SQL Server Agent. Po prostu interesuje mnie alternatywa, którą oferuje Windows Server Backup (najwyraźniej?).)

Heinzi
źródło
Jaka wersja systemu Windows Server i jaka wersja serwera SQL?
pauska
@pauska: Osobiście byłbym zainteresowany Windows Server 2012 R2 i SQL Server 2012. (Celowo zachowuję pytanie bardziej ogólne, aby było bardziej przydatne dla innych).
Heinzi
1
Mam system Windows Server 2008, który wykonuje pełną kopię zapasową. O ile mogę powiedzieć, to pobiera bazy danych z SQL Server Express w ramach pełnej kopii zapasowej, ponieważ każda baza danych mówi, że ostatnia kopia zapasowa została utworzona w momencie jej uruchomienia. Zaskoczyło mnie to, ponieważ próbuję dowiedzieć się, w jaki sposób udało mi się wykonać kopię zapasową tych baz danych, ponieważ nie mogę znaleźć skryptu, który by to robił w dowolnym miejscu. Myślę, że i tak napiszę skrypt, aby wiedzieć, że działa i dokładnie wiedzieć, co mam.
Dave Cousineau,

Odpowiedzi:

5

Kopia zapasowa systemu Windows Server nie jest przeznaczona do tworzenia kopii zapasowych programu SQL Server.

... Jednak konstrukcja sprawia, że ​​jest szczególnie odpowiedni dla mniejszych organizacji lub osób niebędących specjalistami IT ...

Cytat z Przewodnika krok po kroku dotyczącego kopii zapasowej systemu Windows Server dla systemu Windows Server 2008 : „Kto powinien korzystać z kopii zapasowej systemu Windows Server?”

Część, którą zacytowałeś, zasadniczo mówi, że kiedy uruchomi się Kopia zapasowa systemu Windows Server, uruchomi funkcję VSS w systemie Windows. SQL Server będzie wiedział, że ma miejsce kopia woluminu w tle, a przy pomocy usługi SQL Server Writer zapewni możliwość wykonania kopii plików bazy danych (* .mdf, * .ndf, * .ldf).

Cel usługi SQL Server Writer definiuje się w następujący sposób:

Podczas działania Aparat baz danych blokuje się i ma wyłączny dostęp do plików danych. Gdy usługa SQL Writer Service nie jest uruchomiona, programy do tworzenia kopii zapasowych działające w systemie Windows nie mają dostępu do plików danych, a kopie zapasowe należy wykonywać przy użyciu kopii zapasowej programu SQL Server.

Użyj usługi SQL Writer Service, aby zezwolić programom do tworzenia kopii zapasowych systemu Windows na kopiowanie plików danych programu SQL Server podczas działania programu SQL Server.

Cytat z sekcji SQL Writer Service : „Cel”

To w zasadzie wszystko, co dzieje się z Kopią zapasową systemu Windows Server.

Kopie zapasowe utworzone za pomocą Kopii zapasowej systemu Windows Server podczas działania programu SQL Server powinny być spójne, ale transakcje, które nie zostały jeszcze zapisane na dysku, nie znajdują się w kopii woluminu w tle. Migawka bazy danych została zrobiona w trybie ONLINE.

Jednak w artykule MSDN Kopie zapasowe migawek stwierdza:

Tylko następujące typy kopii zapasowych mogą być kopiami zapasowymi migawek:

  • Pełne kopie zapasowe
  • Częściowe kopie zapasowe
  • Kopie zapasowe plików
  • Różnicowe kopie zapasowe bazy danych. Są one obsługiwane tylko wtedy, gdy dostawca korzysta z interfejsu VSS.

i dodatkowo:

Z wyjątkiem przypadków wspomnianych wcześniej w tym temacie, kopie zapasowe migawek są funkcjonalnie równoważne z odpowiednimi konwencjonalnymi kopiami zapasowymi. Kopii zapasowych migawek można używać w sekwencjach przywracania z pełnymi kopiami zapasowymi migawek, różnicowymi kopiami zapasowymi i kopiami dzienników. Podobnie jak inne kopie zapasowe, kopie zapasowe migawek są śledzone w bazie danych msdb, gdzie kopie zapasowe migawek są identyfikowane przez backupset.is_snapshot = 1. Aby uzyskać więcej informacji o msdb, zobacz Baza danych msdb.

SQL Server nie obsługuje przywracania online z kopii zapasowej migawki. Przywrócenie kopii zapasowej migawki powoduje automatyczne przełączenie bazy danych w tryb offline. Częściowe przywracanie może obejmować kopie zapasowe migawek, ale wszystkie sekwencje przywracania są przywracane offline. Aby uzyskać więcej informacji na temat przywracania fragmentarycznego, zobacz Wykonywanie przywracania fragmentarycznego.

Aby odpowiedzieć na twoje pytania:

  • Czy muszę tylko wykonać kopię zapasową pliku .mdf? .Mdf i .ldf?
  • Online czy offline?
  • Jaka jest oficjalna procedura przywracania kopii zapasowych baz danych SQL Server w ten sposób?
  • Czy jest coś specjalnego do rozważenia podczas tworzenia przyrostowych / różnicowych kopii zapasowych?
  • Gdzie to wszystko jest udokumentowane?

Odpowiedzi:

  1. Tak, możesz wykonać kopię zapasową plików .mdf i .ldf systemu Windows Server Backup (VSS). Kopia zapasowa powinna być spójna, ale baza danych po przywróceniu będzie offline.
  2. Jeśli SQL Server zostanie zatrzymany / baza danych zostanie odłączona / baza danych jest w trybie offline, wówczas kopia VSS plików .mdf i .ldf jest w 100% spójna.
  3. Nie jestem pewien, jak przywrócić bazę danych (do punktu w czasie), która jest wykonywana za pomocą Kopii zapasowej systemu Windows Server, ponieważ baza danych jest przywracana w trybie offline. Bazy danych w trybie OFFLINE nie można już przywrócić / odzyskać, a przeniesienie bazy danych ONLINE powoduje, że baza danych jest uważana za w pełni odzyskaną. Poleciłbym osobne kopie zapasowe FULL, DIFF i TLOG programu SQL Server, aby zapewnić przywrócenie bazy danych do określonego momentu.
  4. Dzienniki transakcji nie są częścią migawek utworzonych za pomocą narzędzia Kopia zapasowa systemu Windows Server i powinny być wykonywane dodatkowo. Migawki różnicowe są obsługiwane przez dostawców zewnętrznych w ramach sekwencji tworzenia kopii zapasowych, ale kopia zapasowa systemu Windows Server nie wydaje się być w stanie wykonywać różnicowych kopii zapasowych. W takim przypadku należy również wykonać dodatkowe różnicowe kopie zapasowe. (patrz 3.)
  5. Różne referencje

Wyjaśnione w rzeczywistej implementacji

W naszym środowisku mamy podobną sytuację, w której VMware przeprowadza migawkę, a bazy danych wykonują zrzuty SQL Server z Commvault. Historia kopii zapasowych wygląda następująco:

DBNAME  TYPE BACKUPSET_NAME            IS_SNAPSHOT BACKUP_START_DATE        
------- ---- ------------------------- ----------- -----------------------  
DB_NAME  Full  NULL                    1           2016-12-10 18:23:59.000  
DB_NAME  Full  CommVault Galaxy Backup 0           2016-12-10 20:07:41.000  
DB_NAME  Log   CommVault Galaxy Backup 0           2016-12-11 06:00:40.000  
DB_NAME  Full  NULL                    1           2016-12-11 18:24:00.000  
DB_NAME  Diff  CommVault Galaxy Backup 0           2016-12-11 20:03:38.000  
DB_NAME  Log   CommVault Galaxy Backup 0           2016-12-12 06:02:29.000  
DB_NAME  Log   CommVault Galaxy Backup 0           2016-12-12 07:02:17.000  

Migawka VMware utworzy pozycję w tabelach historii bazy danych MSDB z IS_SNAPSHOT = 1i FULLdla każdej przeprowadzanej migawki VMware (codziennie). Natywne kopie zapasowe SQL Server (również Commvault przy użyciu natywnych) są wykonywane przy użyciu kopii FULL, DIFF i TLOG. Te kopie zapasowe nie są oznaczone jako IS_SNAPSHOT i istnieją jako dodatkowe FULL (raz w tygodniu), DIFF (co drugi dzień) i LOG (co godzinę) w tabelach kopii zapasowych w bazie danych msdb.

Dzięki tej konfiguracji możemy wykonać przywracanie migawki data-godzina, a następnie przenieść bazę danych do trybu ONLINE, lub możemy wykonać indywidualne przywracanie do dowolnego punktu w czasie przy użyciu „rodzimych” kopii zapasowych programu SQL Server.

John aka hot2use
źródło
1

Nie możesz A przynajmniej nie powinieneś. W przypadku baz danych SQL Server obsługiwaną metodą są rodzime kopie zapasowe.

Myślę, że możesz nie rozumieć, co mówi artykuł TechNet. Cytowany komentarz nie wskazuje, że można używać kopii zapasowej systemu Windows Server dla baz danych SQL Server. Podkreśla, że ​​kopia zapasowa systemu Windows Server korzysta z tej samej usługi kopiowania woluminów w tle, z której korzysta program SQL Server. Więcej informacji: TechNet: usługa SQL Writer

Shiitake
źródło
Wiem, że nie powinienem - nie powierzałbym moich danych tak źle udokumentowanej funkcji. Mimo to, jestem ciekaw, czy jest możliwe, teoretycznie: SQL Server ma zapewnić VSS oraz Windows Backup Server jest żądającemu VSS, więc będę zostawić otwarte pytanie teraz. Może to tylko kwestia dopasowania tych dwóch elementów (na przykład istnieją instrukcje online, jak to zrobić dla programu zapisującego VSS Hyper-V ).
Heinzi
1
Widocznie, Windows Backup Server ma wywołać jakieś kopii zapasowej serwera SQL, zobacz ten quesiton .
Heinzi
1

Kopia zapasowa SQL nie tylko kopiuje dane, ale także obciąża dziennik. Możesz znaleźć setki opcji na stronie podręcznika, które ci pomogą, na przykład kompresowanie pliku kopii zapasowej w locie.

Pamiętam, że kopia zapasowa vss została użyta do skopiowania zamrożonej maszyny wirtualnej lub wykonania migawki w sieci SAN w celu wykonania kopii zapasowej obrazu statycznego, ale kopia zapasowa będzie „spójna pod względem awarii”, podobnie jak przerwa w zasilaniu i niezbyt spójna.

Związane z

Massimiliano Piccinini
źródło
0

Myślę , że używa specjalnego typu kopii zapasowej o nazwie „Snapshot Backup”.

Z dokumentacji SQL Server 2008:

Kopia zapasowa migawki programu SQL Server jest również używana przez usługę kopiowania woluminów w tle (VSS) w systemie Microsoft Windows Server 2003 oraz przez całe oprogramowanie do tworzenia kopii zapasowych i oprogramowanie pamięci masowej korzystające z tej struktury. Aby uzyskać więcej informacji zobacz SQL Writer Service.

To wszystko jest dla mnie bardzo niejasne. Zwłaszcza jeśli powoduje to obcięcie dzienników transakcji, czy nie.

StackzOfZtuff
źródło