Wykonywanie kopii bazy danych
Każdy, kto choć raz utracił cenne dane, wie jak ważne jest wykonywanie kopii bezpieczeństwa. Dane systemu humansoft Corax, które są zapisywane w bazie MS SQL Server, też wymagają systematycznego archiwizowania. SQL Server posiada zaawansowane mechanizmy tworzenia backupu danych, ale nie każdy użytkownik musi uczyć się obsługi nowego narzędzia, żeby zapewnić sobie bezpieczeństwo danych.
System Corax posiada również możliwość wykonania kopii bezpieczeństwa i odtworzenia bazy z wcześniej wykonanej kopii.
Mechanizm ten udostępniony jest pod przyciskami „Archiwizacja wybranej firmy” i „Archiwizacja wszystkich firm” w opcjach administracyjnych dostępnych na formularzu logowania (rys. poniżej)
Obsługa archiwizacji bazy systemu Corax jest właściwie intuicyjna. Należy zwrócić jedynie uwagę na istotne elementy.
Przede wszystkim należy zauważyć, że kopia danych zawsze zapisze się na tym komputerze (serwerze), na którym jest zainstalowany serwer baz danych, bez względu na to, czy system Corax będzie uruchomiony na serwerze, czy na komputerze użytkownika (stacji roboczej).
Istotne jest zatem, żeby folder, który wpiszemy w polu „Folder kopii bezpieczeństwa” (na rysunku poniżej jest to folder C:\BACKUPY) istniał na serwerze, a nie na stacji roboczej.
Mechanizm archiwizacji automatycznie tworzy nazwę pliku backupu, składającą się z nazwy bazy oraz daty i godziny utworzenia kopii zapasowej. Przykładowa nazwa pliku archiwum:
firma_dem_Sep_26_2007_10_35AM.BAK
Użytkownik ma jedynie wpływ na podanie logicznej nazwy kopii (na poniższym rysunku jest to BACKUP_1)
ARCHIWIZACJA WSZYSTKICH FIRM
Przycisk „Archiwizacja wszyskich firm” pozwala zarchiwizować wszystkie firmy. Różnica pomiędzy archiwizacją jednej firmy i w szystkich firm polega na tym, iż nazwa backupów przy archiwizacji grupowej jest generowana automatycznie i składa się z nazwy firmy, bieżącej daty oraz przyrostka New.bak.
Dodatkowo ścieżka po wpisaniu przez użytkownika jest pamiętana. Po wciśnięciu przycisku „Archiwizuj” zapis backupów wykonuje się automatycznie, a o jego stanie wykonania informuje pasek postępu.
Odtwarzanie kopii bazy danych
Odtwarzanie danych z kopii wykonywane jest na tym samym formularzu archiwizacji, pod przyciskiem „Przywróć firmę z dostępnej kopii”. Istnieje możliwość odtworzenia kopii nie tylko do tej samej bazy danych, ale również pod inną nazwą. Przydaje się to na przykład wówczas, kiedy oprócz bazy, w której odbywa się bieżąca praca użytkowników, chcemy mieć bazę do ćwiczeń lub testów.
W przypadku odtwarzania należy wprowadzić symbol bazy, do której dane z kopii bezpieczeństwa mają być odtworzone.
Archiwizacja danych
Archiwizacja danych w programie a właściwie w MS SQL Server 2005 jest tematem przekraczającym zakres niniejszego podręcznika. Temat tworzenia kopii bezpieczeństwa jest szeroki i równie szeroko opisywany w literaturze fachowej dotyczącej produktu MS SQL Serwer 2005. Dalej zostaną skrótowo omówione najważniejsze aspekty archiwizowania baz danych w MS SQL Serwer 2005.
Wydaje się, że alternatywnym sposobem tworzenia kopii bezpieczeństwa SQL Serwera 2005 jest zatrzymanie usługi SQL Serwera, a następnie utworzenie kopii wszystkich plików, związanych z nim (w szczególności plików z folderu mssql1\mssql\data). Jednak sposób ten nie jest w pełni funkcjonalny, ponieważ może nie pozwolić na odtworzenie baz danych indywidualnie i nie zapewnia możliwości przeprowadzenia odtwarzania bazy od punktu w czasie. Dlatego zalecane jest stosowanie kopii bezpieczeństwa SQL Serwera 2005, a nie bezpośrednie tworzenie kopii plików (fizycznie baza danych SQL to plik(i) umieszczony w konkretnym miejscu na serwerze).
Można stworzyć kilka rodzajów kopii bezpieczeństwa w SQL Serwerze 2005.
- Kopia bezpieczeństwa bazy danych (FULL) – tworzy kopię całej bazy danych, włączając w to tabele, indeksy, tabele systemowe i obiekty bazy danych (które są otwarte w tych tabelach systemowych). Kopia bezpieczeństwa bazy danych tworzy również kopię wpisów do dziennika transakcji, ale nie przechowuje pustych stron ani nie usuwa z bazy danych żadnych wpisów w tym dzienniku. Ta forma wykonywania backupu jest zalecana.
- Różnicowa kopia bezpieczeństwa bazy danych (DIFFERENTIAL) – tworzy kopię wszystkich stron danych, które były modyfikowane od czasu tworzenia ostatniej kopii całej bazy danych. Odtwarzanie z kopii tego typu jest szybsze niż z kopii bezpieczeństwa dziennika transakcji.
- Kopia bezpieczeństwa pliku i(lub) grupy plików – zakłada tworzenie kopii bezpieczeństwa jedynie wybranych plików lub grupy plików, a nie całej bazy danych. Jeżeli jedna tabela albo więcej tabel lub indeksów ma zostać umieszczonych w odrębnych grupach plików zamiast pozostawienia wszystkich danych i indeksów domyślnej grupie plików, można niezależnie utworzyć kopię danych. Zaletą tego rozwiązania jest to, że jeśli pojedynczy dysk zostanie uszkodzony, a została zrobiona kopia plików z tego dysku, można odtworzyć uszkodzone pliki bez potrzeby odtwarzania całej bazy danych.
- Kopia bezpieczeństwa dziennika transakcji – zawiera kopię wpisów wszystkich zmian, jakie zostały wykonane w bazie danych w konkretnym czasie. Zawiera wyrażenia uruchamiane przez użytkowników, jak również działania drugoplanowe systemu. Dzięki transakcjom, które są zapisywane w dzienniku, można odtworzyć wszystkie działania (transakcje). Inną korzystną cechą dziennika transakcji jest to, że można uruchomić ponownie transakcje do określonego punktu w czasie.
Dużo pracy zajmuje poprawne skonfigurowanie tworzenia kopii bezpieczeństwa i jej regularne testowanie. Odpowiedzialność za tworzenie kopii bezpieczeństwa spada na ogół na administratora bazy danych lub administratora systemu sieciowego. Dobrze jest okresowo sprawdzać kopie poprzez odtworzenie danych jednej z nich, aby przetestować serwer i upewnić się, że wszystko działa zgodnie z oczekiwaniami.
Można tworzyć kopie na dysku, taśmie, dysku sieciowym. Taśma jest nośnikiem preferowanym przez większość choć wolniejszym od dysku. Powinno się archiwizować dyskowe kopie bezpieczeństwa na taśmie, nawet jeśli są to kopie na dysku lokalnym lub innym dysku serwera.
SQL Serwer Management Studio wchodzący w skład MS SQL Serwer 2005 jest w pełni funkcjonalnym narzędziem w zakresie tworzenia kopii bezpieczeństwa i można przy jego pomocy wykonać każdą z omówionych wyżej typów kopii. Tworzenie kopii bezpieczeństwa baz danych i dzienników transakcji za pomocą SQL Serwer Management Studio jest dość proste, choć wymaga zrozumienia jego poszczególnych opcji i zachodzących w czasie archiwizacji procesów.
Poniżej znajduje się opis wykonania pojedynczego backupu i harmonogramu archiwizacji. Pełny opis działania narzędzi MS SQL Serwera 2005, w tym narzędzi do archiwizacji, znaleźć można w szeroko dostępnych publikacjach na temat MS SQL Serwera 2005.
Wykonanie archiwum
Wykonanie pojedynczego Backupu w SQL Serwer Management Studio.
Aby wykonać pojedynczy backup bazy danych należy otworzyć SQL Server Menagement Studio. Następnie:
- Klikamy prawym przyciskiem myszy na nazwę bazy, której archiwum chcemy wykonać, rozwijamy menu Tasks i wybieramy Back Up…
- Następnie przy wykonywaniu archiwum możemy ustawić między innymi:
a. Backup type – rodzaj backupu (pełny lub częściowy).
b. Destination – miejsce wykonania backupu.
Wykonanie planu Backupów SQL Server Management Studio
Aby wykonać harmonogramy wykonywania backupów bazy danych należy otworzyć SQL Server Menagement Studio. Następnie:
- Rozwijamy zakładkę Menagement, klikamy prawym przyciskiem myszy na Maintance Plans i wybieramy Maintance Plans Wizard.
- Następnie pojawi się okno kreatora.
- W kolejnym oknie w oknie Name wpisujemy nazwę dla planu, ewentualny opis i parametry połączenia z serwerem SQL.
- Dalej wybieramy zadanie jakie ma być wykonane, czyli w tym przypadku wybieramy opcję Back Up Database. Użytkownik może wybrać rodzaj backupu Full lub Differential.
- Jeżeli wybraliśmy kilka zadań do wykonania to w kolejnym kroku można ustalić ich kolejność wykonania.
- Następnie na kolejnym ekranie ustalamy szczegóły dotyczące backupu. Na początek wybieramy, która baza ma być archiwizowana. W tym celu rozwijamy menu Databases i wskazujemy bazę danych.
- Po wybraniu firmy do archiwizacji należy ustalić jeszcze nośnik, na którym ma to być zapisywane (disk lub tape) oraz sposób tworzenia pliku archiwum. Jeżeli wybrana zostanie opcja Back up databases cross one or more files wówczas możliwe będzie aby program zapisywał wszystko w jednym pliku (zastępując poprzedni backup) lub do jednego pliku dodawał kolejne backupy. Natomiast jeżeli wybrana zostanie opcja create a backup for every database wówczas każdy backup będzie tworzony jako osobny plik i katalog (w przypadku osobnego katalogu należy dodatkowo zaznaczyć parametr create sub-directory for each database).
- Po ustaleniu parametrów zapisywania bazy przechodzimy dalej, gdzie ustalimy szczegóły dotyczące harmonogramu wykonywania backupu. W tym celu klikamy na przycisk change.
- W harmonogramie ustalamy parametry dotyczące przedziału czasowego w jakim ma być wykonany Backup. W parametrze occurs ustalamy czy archiwum ma być wykonywane raz dziennie, tygodniowo czy miesięcznie. Jeżeli zostanie wybrana opcja daily (dziennie) wówczas należy ustalić jeszcze ile razy dziennie ma być wykonywany backup. Dodatkowo w daily frequency ustalamy godzinę o której ma być wykonany backup lub seria backupów w określonych odstępach czasu.
- Po zatwierdzeniu i wyjściu z harmonogramu pojawi się podsumowanie.
- W kolejnym kroku ustalamy gdzie ma być zapisywany raport po wykonanym backupie i czy ewentualnie ma być wysłany emailem.
- Na końcu pojawi się okno z podsumowaniem