Systemy Zarządzania Bazami Danych Laboratorium 09 Tworzenie kopii bezpieczeństwa
Agenda laboratorium Wprowadzenie Proces tworzenia kopii Proces tworzenia kopii – Management Studio Proces tworzenia częściowej kopii Zadania
Wprowadzenie Bezpieczeństwo danych jest kluczowym zagadnieniem każdego administratora bazy danych. Jedną z głównych ról administratora oprócz zapewnienia dostępności, spójności i wierności danych jest ich archiwizacja i możliwość odtworzenia w sytuacji awaryjnej. Odzyskiwanie danych z kopii zapasowej często jest jedynym sposobem na przywrócenie utraconych informacji. Kopie bezpieczeństwa (ang. backup) powinny być wykonywanie regularnie na zewnętrznym nośniku i przechowywane w bezpiecznym miejscu (np. sejf). Zaleca się również aby taka kopia niebyła przetrzymywana w jednym pomieszczeniu a nawet budynku co serwer. Pozwoli to uchronić dane w przypadku kradzieży sprzętu czy pożaru serwerowni, w której znajduje się baza danych. Wszystkie duże firmy i korporacje posiadają system bazodanowy, który jest ściśle powiązany finansami. Co oznacza, że trwała utrata danych może wiązać stratami liczonymi w milionach. Tak więc na administratorze bazy danych spoczywa ogromna odpowiedzialność. Tworzenie kopii zapasowej można wykonać na dwa sposoby. Za pomocą kreatora w Management Studio lub komendą SQL w wierszu poleceń. Jako pierwszy został zaprezentowany kod SQL.
Proces tworzenia kopii Poniższy schematy zapytań BACKUP, pochodzi z dokumentacji MS SQL Server 2005. BACKUP DATABASE służy do wykonywania kopii zapasowej bazy danych w skład której wchodzą pliki danych i pliki logów. Nazwę kopiowanej bazy danych można podać jako tekst lub zmienną tekstową zwierającą nazwę bazy danych. Po słowie kluczowym TO należy podać się nazwę urządzenia lub urządzeń, na którym SQL Server ma zapisać kopię. Bardzo dobrym rozwiązaniem jest tworzenie kopii na kilu nośnikach danych i służy do tego MIRROR TO. Kopiowanie jest wykonywane równocześnie na urządzeniu wskazanym do zapisu i urządzeniu lustrzanym więc nie ma potrzeby kopiowania kopii jeżeli taka okoliczność zachodzi. Należy jednak pamiętać aby liczba urządzeń i ich właściwości były identyczne po słowie kluczowym TO i MIRROR TO. Po słowie WITH można określić szczegółowe parametry dotyczące kopii zapasowej i jej tworzenia. BLOCKSIZE pozwala na podanie wielkości bloków danych. Rozmiar ich podaje się w kilobajtach. Polecenie CHECKSUM służy do weryfikacji stron danych zapisanych w bazie oraz zapisania oddzielnej sumy kontrolnej dla strumienia danych zapisywanych w kopii. Jeżeli walidacja stron bazy danych nie przebiegnie poprawnie, to proces tworzenia kopii zostanie przerwany.
Proces tworzenia kopii Będzie to oznaczało, że dane w bazie są uszkodzone. NO_CHECKSUM jest wartością domyślną i oznacza, że dane nie są weryfikowane oraz sum kontrolna kopii nie będzie tworzona. STOP_ON_ERROR i COUNTINUE_AFTER_ERROR określa, czy w przypadku wystąpienia błędu podczas procesu kopiowania operacja ma zostać zaniechana lub kontynuowana pomimo nieprawidłowości (niepoprawnej sumy kontrolnej stron danych). Kopia danych może zostać opatrzona opisem administratora i można ją zapisać w parametrze DESCRIPTION. DIFFERENTIAL czyli różnica, powoduje, że w tworzonej kopii zawarte zostaną jedynie te dane, które zostały zmodyfikowane od czasu ostatniej pełnej kopii danych. Pozwala to zaoszczędzić miejsca na urządzeniu zawierającym kopię. EXPIREDATE i RETAINDAYS służą do specyfikacji ważności kopii danych. W EXPIREDATE podaje się dokładną datę wygaśnięcia, zaś w RETAINDAYS ilość dni ważności kopii. Opcje te używa się zamiennie. Kiedy data ważności wygaśnie, wtedy przy kolejnym procesie backup kopia danych będzie mogła być nadpisana przez kopię nowotworzoną. Dzięki temu administrator nie musi w znacznym stopniu kontrolować ilości miejsca na urządzeniu z kopią bazy danych.
Proces tworzenia kopii PASSWORD zakłada hasło na kopię i jakiekolwiek przywracanie z niej danych będzie wymagało podania tego hasła. Aczkolwiek hasło te nie chroni danych przed usunięciem lub nadpisaniem. Opcja FORMAT powoduje, że dane na urządzeniu, na którym znajdzie się kopia zostaną utracone. NO_FORMAT nie kasuje danych zawartych na nośniku w przeciwieństwie do poprzedniej opcji. INIT i NOINIT określa odpowiednio czy dane za urządzeniu do kopiowania mają być nadpisane czy nie. NOSKIP pozwala dla SQL Server’a na sprawdzenie czy na urządzeniu są kopie bazy danych, których data ważności wygasła. Jeśli tak to na ich miejscu zostanie zapisana nowa kopia bazy. Z kolei SKIP powoduje, że kopia danych będzie zapisana w wolnej przestrzeni urządzenia bez naruszania jakiejkolwiek znajdującej się tam kopii. MEDIADESCRIPTION jest miejscem na opis słowny urządzenia, w którym znajdzie się kopia bazy danych. W MEDIANAME można podać nazwę urządzenia, która ma być zweryfikowana podczas odtwarzania danych. Jeśli nazwa urządzenia będzie niezgodna z podaną w tym parametrze, to operacja nie powiedzie się. MEDIAPASSWORD pozwala na zabezpieczenie nośnika kopii danych hasłem. Podczas odtwarzania danych dostęp do nośnika będzie weryfikowany za pomocą tego hasła. Pole NAME służy do podania nazwy kopii bazy danych.
Proces tworzenia kopii Parametry NOUNLOAD/UNLOAD oraz NOREWIND/REWIND są przeznaczone tylko dla urządzeń taśmowych. UNLOAD pozwala na wyjęcie taśmy z urządzenia, która przed tym zostanie automatycznie przewinięta. NOUNLOAD wyłącza opcje UNLOAD. REWIND sprawia, że po zakończeniu tworzenia kopii bazy danych, taśma z archiwum będzie przewinięta, co pozwoli na szybkie przywrócenie danych w razie potrzeby. Na taśmie dane zapisywane są sekwencyjnie co oznacza, że odczyt danych również jest sekwencyjny więc aby uzyskać dane należy ją przewinąć. NOREWIND określa, że taśma nie będzie przewinięta automatycznie po procesie tworzenia backup’u. Opcja RESTART nie powoduje jakiejkolwiek akcji. Jest to pozostałość z poprzedniej wersji SQL Server. W wierszu poleceń nie ma graficznego paska postępu, więc aby administrator wiedział w jakim procencie proces tworzenia kopii jest wykonany, może określić wyświetlanie co jaki procent ma być ukazana informacja postępu procesu. Służy do tego parametr STATS. Domyślnie SQL Server powiadamia administratora za pomocą wiersza poleceń o procesie kopiowania co 10-ty procent postępu. Ostatnim parametrem jest COPY_ONLY, użycie go oznacza, że kopia danych będzie „zwykłą” kopią i nie można będzie jej użyć przy odtwarzaniu różnicowym. A co najważniejsze backup ten nie Zabuży harmonogramu tworzenia kopii bezpieczeństwa. COPY_ONLY używa się zazwyczaj kiedy zajdzie potrzeba wykonania jednorazowej kopii na potrzeby przeniesienia danych do bliźniaczej bazy testowej.
Proces tworzenia kopii BACKUP DATABASE { database_name | @database_name_var } TO < backup_device > [ ,...n ] [ [ MIRROR TO < backup_device > [ ,...n ] ] [ ...next-mirror ] ] [ WITH [ BLOCKSIZE = { blocksize | @blocksize_variable } ] [ [ , ] { CHECKSUM | NO_CHECKSUM } ] [ [ , ] { STOP_ON_ERROR | CONTINUE_AFTER_ERROR } ] [ [ , ] DESCRIPTION = { 'text' | @text_variable } ] [ [ , ] DIFFERENTIAL ] [ [ , ] EXPIREDATE = { date | @date_var } | RETAINDAYS = { days | @days_var } ] [ [ , ] PASSWORD = { password | @password_variable } ] [ [ , ] { FORMAT | NOFORMAT } ] [ [ , ] { INIT | NOINIT } ] [ [ , ] { NOSKIP | SKIP } ] [ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ]
Proces tworzenia kopii [ [ , ] MEDIANAME = { media_name | @media_name_variable } ] [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ] [ [ , ] NAME = { backup_set_name | @backup_set_name_var } ] [ [ , ] { NOREWIND | REWIND } ] [ [ , ] { NOUNLOAD | UNLOAD } ] [ [ , ] RESTART ] [ [ , ] STATS [ = percentage ] ] [ [ , ] COPY_ONLY ] ]
Proces tworzenia kopii Gałąź <backup_device> z powyższego schematu opisuje w jaki sposób można podać urządzenia zapisu kopii bezpieczeństwa. Do wyboru są dwie drogi. Podanie nazwy logicznej lub fizycznej urządzenia. Aczkolwiek, jeżeli podana zostanie nazwa fizyczna, należy określić czy dane urządzenie jest dyskiem twardym (DISK) czy taśmą (TAPE). <backup_device> ::= { { logical_backup_device_name | @logical_backup_device_name_var } | { DISK | TAPE } = { 'physical_backup_device_name' | @physical_backup_device_name_var }
Proces tworzenia częściowej kopii Kopia bezpieczeństwa nie musi dotyczyć całej bazy danych. Jeżeli dane niezbędne do pracy systemu znajdują się w kilku plikach lub należą do określonej grupy plików, to można wykonać backup tylko dla nich. W tym celu po nazwie bazy danych należy wymieć pliki lub grupę. Ciekawą opcją jest READ_WRITE_FILEGROUPS, dzięki której skopiowane zostaną tyle te grupy plików, które są dostępne zarówno do zapisu jak i odczytu. Grupy plików tylko do odczytu zostaną pominięte, ponieważ ich zwartość nie zmienia się. Pozostałe opcje tworzenia kopii są dokładnie takie jak w powyższym poleceniu BACKUP DATABASE. BACKUP DATABASE { database_name | @database_name_var } { FILE = { logical_file_name | @logical_file_name_var } | FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var } | READ_WRITE_FILEGROUPS } TO < backup_device > [ ,...n ] ...
Proces tworzenia – Management Studio Kolejną metodą stworzenia kopi bezpieczeństwa bazy danych jest posłużenie się kreatorem w Management Studio. Aby uruchomić kreator za pomocą Object Explorer należy kliknąć prawym przyciskiem myszy na wybranej bazie danych i wybrać polecenie Back Up z podmenu Tasks .
Proces tworzenia – Management Studio W oknie Back Up Database (Rys. na następnym slajdzie) znajdują się główne opcje tworzenia kopii zapasowej w Management Studio. Można w nim ustalić, której bazy danych ma dotyczyć proces oraz jakiego typu backup ma być wykonany. Do wyboru jest FULL (pełna kopia), Differential (kopia różnicowa) i Transacional Log (kopia logów transakcji). Poniżej określa się, czy pod uwagę ma być brana cała baza danych czy tylko wybrane pliki/grupy plików. W przestrzeni Backup set możliwe jest nadanie nazwy kopii, opisu i czasu wygaśnięcia ważności. Ustawienie na 0 tej opcji oznacza brak daty ważności kopii. N dole okna w Destination konieczne jest wybranie urządzenia, na które SQL Server ma zapisać kopię bezpieczeństwa.
Proces tworzenia – Management Studio
Proces tworzenia – Management Studio Szczegółowe opcje backup’u dostępne są na stronie Options w lewej części okna (poprzedni rysunek). Opcje te są zaprezentowane na rysunku w kolejnym slajdzie. Wszystkie opcje są pogrupowane. W Overwrite media można ustalić czy poprzednie kopie bezpieczeństwa mają być nadpisane, a jeśli tak to czy ma być sprawdzany termin ważności kopii. Można również wyczyścić urządzenie ze wszelkich kopii i nadać nową nazwę urządzenia. Reliability posiada opcje do sprawdzania poprawności danych w systemie i w nowotworzonej kopii. Kolejne parametry dotyczą tylko kopii logów transakcji i nie są dostępne przy tworzeniu kopii bezpieczeństwa całej bazy czy kopii różnicowej. Ostatnie opcje, czyli Tape driver, są dostępne jeżeli kopia danych będzie mieściła się na taśmie. A więc można ustalić, czy taśma ma zostać wysunięta po zakończeniu procesu i czy zostanie uprzednio przewinięta.
Proces tworzenia kopii – Management Studio
Zadania Zadania wykonaj za pomocą składni języka SQL. Po wykonaniu tego, spróbuj wykonać zadnia za pomocą Management Studio. Stwórz 2 urządzenia do backup’u (w object explorer: Server Objects > Backup Device > z menu kontekstowego New Backup Device), oba urządzenia wykonaj w katalogu C:\ProgramFiles\MSSQLBackupTest - urządzenie o nazwie: imie_nazwisko_grupa_BackupDevice - urządzenie o nazwie: imie_nazwisko_grupa_mirror 2. Stwórz kopię bezpieczeństwa bazy danych Restauracja. Kopia ta ma posiadać następujące parametry: - pierwsze urządzenie ma być głównym miejscem backup’u - drugie urządzenie ma być mirrorem backup’u - wielkość bloków ma wynosić 1024 kB - sumy kontrolne mają być sprawdzane - w przypadku problemu backup ma być przerwany - opis backup’u - ważność kopii ma wynosić: obecny czas - na backup ma być nałożone hasło: pwd123 - urządzenie ma nie być formatowane (jeśli wystąpi błąd, zastanów się czemu i zmień opcję) - nazwa backupu: kopia01 - informacje o zaawansowaniu procesu tworzenia kopii ma być wyświetlany co 1 procent 3. Kliknij prawym przyciskiem myszy na imie_nazwisko_grupa_BackupDevice, wybierz polecenie Properties i przejdź do strony Media Contents aby sprawdzić zawartość urządzenia 4. Stwórz podobną kopię jak w zadaniu nr 1 ale bez hasła, bez formatowania, bez wygaśnięcia kopii, z nadpisaniem poprzednich kopii pomijając sprawdzanie terminów ważności poprzednich backup’ów, nazwa backup’u: kopia02 5. Powtórz zadanie nr 3
Koniec laboratorium 09