9 2





Politechnika Warszawska - Bazy Danych








Ćwiczenia
> Mechanizmy bezpieczeństwa w MS SQL Server 2000 > Kopie zapasowe







9.2 Kopie zapasowe

Kopia zapasowa (ang. backup) to pojęcie związane nie tylko z bazami danych, ale ogólnie z przechowywaniem istotnych danych w kilku miejscach. Istotą kopii zapasowych jest to, by w przypadku utraty danych móc szybko i w nieskomplikowany sposób przywrócić dane sprzed awarii lub katastrofy (tak na ogół określamy wypadki losowe, które powodują utratę danych). Odpowiednia strategia kopii zapasowych (rodzaje i częstotliwość ich wykonywania) musi być zaprojektowana zanim baza danych rozpocznie pracę produkcyjną (czyli zanim zaczną z niej korzystać użytkownicy).
Krok 1 - Jak przechowywane powinny być dane?
Poniżej przedstawiamy kilka reguł, którymi powinni kierować się administratorzy serwerów baz danych (SQL Server) przy planowaniu przechowywania bazy danych. Stosowanie się do tych reguł może w znaczący sposób poprawić wydajność pracy serwera i pojedynczych baz danych.
1. Pliki baz danych dobrze jest przechowywać na innym dysku niż dysk systemowy.
2. Baza danych powinna składać się z kilku grup plików danych, z których każda grupa powinna być przechowywana na innym fizycznym dysku.
3. Pliki dziennika transakcji baz danych (.ldf) powinny znajdować się na innym dysku niż pliki danych (.mdf i .ndf).
4. Dla bezpieczeństwa pliki baz danych powinny być przechowywane na woluminie zapewniającym tolerancję błędów (np. RAID-1 lub RAID-5). Należy preferować w miarę możliwości (szczególnie finansowych) sprzętowe macierze RAID (tzn. gotowe do pracy fabrycznie sprzężone w tablicę dyski).
5. Do dysków z tolerancją błędów najlepiej używać kontrolerów SCSI (ang. small computer system interface) - takie kontrolery zapewniają najlepszą wydajność pracy (niestety jednocześnie są najdroższe).
6. Nośniki (taśmy czy płyty CD/DVD) zawierające kopie zapasowe powinny być przechowywane w innym miescu niż serwer przechowujący dane.
To tylko niektóre z reguł, ale już na ich podstawie można wywnioskować, że w praktyce na długo przed rozpoczęciem pracy produkcyjnej bazy danych czynione są odpowiednie przygotowania (część na papierze - czasem głównie w kosztorysach).
Krok 2- Poznaj typy kopii zapasowych
MS SQL Server oferuje wiele typów kopii zapasowych. Wybór odpowiednich typów (na ogół strategia zawiera dwa typy) zależy od tego, jaką porcję danych trzeba zapisać, jak szybko kopia powinna zostać wykonana oraz jak szybko dane muszą zostać przywrócone w przypadku ich utraty.
Poniższa tabela przedstawia listę typów kopii zapasowych w MS SQL Server.
Aby zachować nazewnictwo SQL Servera, nie będziemy tłumaczyć nazw typów
kopii na język polski.



Typ kopii zapasowej
Opis


full database backup
Pełna kopia bazy danych.


differential database backup
Kopia wszystkich stron danych zmodyfikowanych od
wykonania ostatniej pełnej kopii bazy danych.


filegroup backup
Pełna kopia wszystkich plików wchodzących w skład
określonej grupy plików.


differential filegroup backup
Kopia wszystkich stron danych zmodyfikowanych od
wykonania ostatniej pełnej kopii grupy plików.


file backup
Pełna kopia pliku danych.


differential file backup
Kopia wszystkich stron danych zmodyfikowanych od
wykonania ostatniej pełnej kopii pliku danych.


transaction log backup
Kopia aktywnej części dziennika transakcji (z jednoczesnym
wyczyszczeniem dziennika).


snapshot backup and restore
Pełna kopia bazy danych wykonywana w bardzo krótkim
czasie (sekundy) za pomocą dodatkowego sprzętu lub/oraz oprogramowania.






Zależnie od przyjętej strategii przechowywania danych i wykonywania kopii zapasowych wybrać należy, które rodzaje kopii zapasowych i z jaką częstotliwością będziesz wykonywać w swojej bazie danych. Najwolniej wykonuje się pełna kopia bazy danych, zaś najszybciej wykonywane są kopie różnicowe (differential). Dość często stosowaną strategią jest wykonywanie cotygodniowe (najlepiej w czasie zmniejszonej aktywności serwera - np. w nocy z niedzieli na poniedziałek) pełnej kopii bazy danych, zaś każdego dnia (w godzinach obniżonej aktywności - najczęściej nocą) kopii różnicowej.



Krok 3 - Poznaj metody przywracania danych
Oprócz różnych typów kopii zapasowych istnieje wiele mechanizmów przywracania danych zapisanych w tychże kopiach.
Poniższa tabela zawiera oferowane przez SQL Server metody przywracania danych (również podajemy angielskie nazwy).


Metoda przywracania
Opis


full database restore
Pełne przywrócenie całej bazy danych przy użyciu
następujących kopii zapasowych: pełnej kopii bazy danych, ostatnio
wykonanej kopii różnicowej (differential database backup) oraz wszystkich
kopii dziennika transakcji w kolejności wykonania od ostatniej pełnej
lub różnicowej kopii bazy danych.


file or filegroup restore with
full recovery
Pełne przywrócenie pliku lub grupy plików przy użyciu
kopii zapasowej pliku/grupy plików, ostatniej różnicowej kopii pliku/
grupy plików (differential file/filegroup backup) oraz wszystkoch
kopii dziennika transakcji w kolejności wykonania od ostatniej pełnej
lub różnicowej kopii pliku/grupy plików.


recovery to a point in time
Przywrócenie bazy danych do stanu w określonym punkcie
w czasie przy użyciu pełnego zapisu dziennika transakcji (tzn. dziennik
musi pracować w trybie bez czyszczenia zawartości) w kopiach zapasowych
transakcji oraz kopii zapasowych bazy danych, plików oraz grup plików.


recovery to a named
transaction
Przywrócenie całej bazy danych do nazwanej zakładki
(tuż przed lub po określoną transakcją) przy użyciu pełnego zapisu
dziennika transakcji w kopiach zapasowych transakcji oraz kopii zapasowych
bazy danych, plików oraz grup plików.







Musisz wiedzieć, że dziennik transakcji (ang. transaction log) może pracować w kilku trybach (zależnie od tego, jakie ma być jego obciążenie i jaką strategię kopii zapasowych i przywracania danych ustanowiono dla bazy danych) i nie zawsze informacje o wszystkich operacjach wykonywanych w bazie danych są w nim zapisywane. Nie będziemy omawiać tego zagadnienia (szukaj w Books Online pod hasłem log shipping lub recovery models), gdyż byłoby to poruszanie szczegółów administracji serwerem SQL.



Krok 4 - Wykonaj kopię zapasową bazy
Dla przykładu wykonamy pełną kopię zapasową bazy danych Biblioteka.
1. Uruchom program Enterprise Manager.
2. Rozwijaj drzewo po lewej stronie okna programu i wejdź do folderu Management.
3. W folderze Management kliknij prawym przyciskiem myszy na pozycji Backup i w menu kontekstowym wybierz opcję New Backup Device..., aby stworzyć nośnik dla kopii zapasowych (nie masz raczej taśmy, więc zapiszemy kopię do pliku na twardym dysku).
4. W oknie Backup Device Properties - New Device wpisz jako nazwę (pole name) nośnika Biblioteka_full_backup, zaś jako ścieżkę do pliku (ploe file name) podaj na przykład C:\Biblioteka_full_backup.BAK (lub ścieżkę na innym dysku, na którym masz trochę wolnej przestrzeni). Kliknij OK.

Rys. 9.2.1 Enterprise Manager - dodawanie nowego nośnika kopii zapasowych
5. W folderze Management kliknij prawym przyciskiem myszy na pozycji Backup i w menu kontekstowym wybierz opcję Backup a Database.
6. W oknie SQL Server Backup ustaw pola w zakładce General jak pokazano na rysunku poniżej (aby określić pole Destination kliknij przycisk Add... i wybierz z listy nośników utworzony przed chwilą plik Biblioteka_full_backup).

Rys. 9.2.2 Enterprise Manager - konfigurowanie kopii zapasowej
7. W oknie SQL Server Backup przejdź do zakładki Options, zaznacz opcję Verify backup upon completion (sprawdzenie integralności danych po zakończeniu wykonywania kopii zapasowej) i kliknij OK. Zostanie wykonana kopia zapasowa (operacja powinna zakończyć się po chwili informacją o udanym przebiegu i weryfikacji).
Krok 5 - Odtwórz dane w bazie danych z kopii zapasowej
Spróbujmy teraz odtworzyć dane z kopii zapasowej.
1. W programie Enterprise Manager kliknij prawym przyciskiem myszy na bazie danych Biblioteka i z menu kontekstowego wybierz Wszystkie zadania - Restore Database....
2. W oknie Restore database sprawdź, czy ustawienia są takie, jak na rysunku poniżej i kliknij OK. Zostanie przywrócona zawartość bazy z pełnej kopii zapasowej.

Rys. 9.2.3 Enterprise Manager - konfigurowanie przywracania danych




Pamiętaj, że podczas przywracania danych z kopii zapasowej nie można pracować z bazą danych (musisz zamknąć wszystkie programy i aplikacje klienckie używające bazy danych - między innymi program Query Analyzer).







Podczas pracy z projektem Prace dyplomowe poeksperymentuj z kopiami zapasowymi (jedną pełną kopię zachowaj, byś zawsze mógł wrócić do pierwotnego stanu bazy danych). Przed przywróceniem danych z kopii zapasowej dokonaj modyfikacji danych, żebyś mógł zaobserwować zmiany po wykonaniu operacji przywracania. Zaproponuj strategię wykonywania kopii zapasowych dla tego projektu i dołącz swoje przemyślenia do dokumentacji projektu.





Przejdź dalej




Ćwiczenia
> Mechanizmy bezpieczeństwa w MS SQL Server 2000 > Kopie zapasowe








Wyszukiwarka