SIECIOWY SYSTEM ARCHIWIZACJI I BACKUPU DANYCH
Program do backupu - Ferro Backup System
       
Identyfikator artykułu : FS-FBS-20080218-I01
Ostatnia weryfikacja : 9 lipiec 2016
Wersja : 1.2

Backup bazy danych i plików poczty

Artykuł omawia problemy związane z archiwizacją dużych plików. Zawiera praktyczne wskazówki dotyczące backupu baz danych: Oracle, MySQL, Microsoft SQL Server, Microsoft Exchange Server, InterBase, Firebird, PostgreSql, IBM DB2, Microsoft Access, dBase, Paradox, FoxPro oraz plików programów pocztowych: Microsoft Outlook, Outlook Express, Mozilla Thunderbird, Eudora, The Bat!.



Duży plik, duży problem ?

Pliki baz danych i pliki programów pocztowych mają przynajmniej dwie wspólne cechy: są duże i nie można ich łatwo zarchiwizować. Duże pliki można podzielić na dwie kategorie: wg miejsca przechowywania i zakresu dostępności. Pliki zlokalizowane na dysku komputera typu: desktop, workstation lub laptop to pliki lokalne. Mogą to być małe, lokalne bazy danych takie jak: Microsoft Access, dBase, Paradox, FoxPro oraz pliki programów pocztowych: Microsoft Outlook, Outlook Express, Mozilla Thunderbird, Eudora, The Bat!. Pliki przechowywane na serwerach to przeważnie pliki współdzielone, udostępniane przez serwer dla innych komputerów działających w sieci. Najpopularniejsze z nich to: Oracle, MySQL, Microsoft SQL Server, InterBase, Firebird, PostgreSql, IBM DB2.

Duże pliki, tak jak i inne pliki, mogą być zablokowane, jeśli są używane. W przypadku plików baz danych i plików pocztowych taka sytuacja występuje jednak znacznie częściej. Serwery danych udostępniają bazy przeważnie 24 godziny na dobę, przez 7 dni w tygodniu. Pliki pocztowe (lokalne) co prawda rzadko są używane nonstop z tego względu, że korzysta z nich zazwyczaj tylko jeden użytkownik, ale za to okno czasowe, w którym może być wykonany backup jest ograniczone do ok. 8 godzin na dobę.

Tego typu wykorzystanie i ograniczona dostępność plików komplikuje możliwość ich backupu. Wstrzymywanie pracy serwera bazodanowego na czas archiwizacji jest w wielu środowiskach utrudniony a czasem nawet niemożliwy do wykonania. Backup plików pocztowych, kiedy są one dostępne tyko w ograniczonym przedziale czasowym (w trakcie pracy użytkownika na komputerze) i są ciągle zablokowane, także może sprawiać trudność, jeżeli nie zastosujemy odpowiednich narzędzi.


Archiwizacja zablokowanych plików

Problem backupu baz danych i plików pocztowych można rozwiązać przy użyciu wbudowanej w Ferro Backup System opcji Open File Manager. OFM pozwala na archiwizację plików otwartych i zablokowanych prze inne procesy. Odczytuje pliki poprzez bezpośrednie odwołania do dysku, pomijając przy tym funkcje systemu operacyjnego. Więcej informacji na temat backupu plików otwartych i zablokowanych znajduje sie w artykule Archiwizacja otwartych i zablokowanych plików.

Pomimo możliwości otwarcia i skopiowania (backupu) otwartego i zablokowanego pliku lokalnej bazy danych lub pliku pocztowego, pozostaje problem z uzyskaniem stanu koherentnego. Plik znajdujący się w stanie koherentnym jest spójny z punktu widzenia programu wykorzystującego ten plik do przechowywania informacji. W przypadku plików baz danych jest to stan po zakończeniu wszystkich transakcji zapisu. Jeżeli plik bazodanowy jest stosunkowo duży, to backup takiego pliku może trwać nawet kilkadziesiąt minut. W tak długim okresie czasu serwer bazodanowy lub program pocztowy najprawdopodobniej wykona operację zapisu do pliku. Jeśli taka sytuacja nastąpi, zarchiwizowana baza nie będzie spójna. Próba późniejszego użycia takiego pliku skończy się zgłoszeniem przez serwer bazodanowy lub program pocztowy, błędu o uszkodzonej strukturze pliku. Dlatego, kiedy program backupujący wykryje, że nastąpiła operacja zapisu, musi rozpocząć cały proces backupu od początku. W zależności więc od rodzaju aplikacji, jej obciążenia i wielkości pliku, próba przeprowadzenia klasycznego backupu może zakończyć się niepowodzeniem lub uzyskaniem kopii zapasowej typu "crash-consistent".


Szybki i pewny backup online


Ferro Backup System w wersji 3.5 lub nowszej zawiera rozszerzenie mechanizmu Open File Manager, które pozwala backup zablokowanego pliku bez wstrzymania procesu zapisującego. FBS Worker posiada wbudowane sterowniki systemu plików w wersjach x86 i x64, które w razie potrzeby są dynamicznie instalowane w systemie operacyjnym. Sterownik taki jest odpowiedzialny za odczyt zablokowanego pliku i przechwytywanie operacji zapisu. Przechwytuje on operacje zapisu odwołujące się do pliku pocztowego lub bazodanowego, odczytuje do bufora stare dane z dysku i przepuszcza operacje zapisu. W ten sposób program ma zawsze dostęp do koherentnego obrazu bazy danych, bez blokowania programu i bez tworzenia migawek.

Dzięki temu rozszerzeniu OFM można łatwo i szybko przeprowadzić backup plików programów pocztowych Microsoft Office Outlook, Outlook Express, Mozilla Thunderbird, Eudora, The Bat! oraz małych baz danych Microsoft Access, dBase, Paradox, FoxPro, itp.

Program pocztowy / lokalna baza danychRozszerzenie pliku
Microsoft Office OutlookPST, OST, PAB, OAB
Microsoft Outlook ExpressDBX, WAB
Mozilla Thunderbirdbrak
EudoraMBX, TOC, FOL
Microsoft AccessMDB, ACCDB, ADP
dBASE / ClipperDBF
ParadoxDB, PX, Xnn, XGn, YGn
FoxPro / Visual FoxProDBF

Tabela 1. Rozszerzenia nazw plików popularnych programów pocztowych i małych baz danych


Pliki programów pocztowych są przeważnie przechowywane w katalogu użytkownika. Dla systemu Windows 2000, WIndows XP, Windows, 2003 będzie to:
C:\Documents and Settings\nazwa_uzytkownika\
     Application Data\producent\nazwa_programu\


Dla systemów Windows Vista, Windows Server 2008:
C:\Users\nazwa_uzytkownika\Application Data\producent\nazwa_programu\



Kopie w tle

Jeśli wykorzystujemy bazę danych zgodną z Volume Shadow Copy Service (usługą kopiowania woluminów w tle), to do archiwizacji możemy wykorzystać skrypt kopiujący wybrany plik przy użyciu tej usługi. Skrypt ten można wykonać przed archiwizacją, przy użyciu, wbudowanych w Ferro Backup System, Poleceń zdalnych. Polecenia zdalne umożliwiają, m.in. wykonanie określonych skryptów lub poleceń przed lub po archiwizacji. Archiwizacja powinna obejmować kopię pliku wykonanego przez VSS. Po archiwizacji kopię bazy danych można (również z wykorzystaniem polecenia zdalnego) usunąć z dysku.

Usługa VSS daje możliwość wykonania kopii pliku, który jest w użyciu, pomimo wykonywanych operacji zapisu, bez wstrzymywania procesu zapisującego.

Trzeba jednak pamiętać o występujących ograniczeniach usługi VSS:
  • Usługa dostępna tylko w systemach Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008
  • Baza danych musi być zgodna z VSS
  • Wymagane jest dodatkowe miejsce na dysku

Jeżeli serwer bazy danych nie jest zgodny z VSS, kopia bazy będzie tylko kopią typu "crash consistent" - nie będzie koherentna więc pojawią się problemy przy próbie jej użycia. Więcej na temat VSS znajduje się na stronie How Volume Shadow Copy Service Works.


Można prościej - "Hot Backup" (online - sposób drugi)

Innym sposobem archiwizacji baz danych jest wykorzystanie dedykowanych narzędzi do backupu danej bazy danych. Backup do przeprowadzenia którego nie jest konieczne uprzednie wyłączanie serwera bazy danych, to tzw. Hot Backup, On-line Backup lub Dynamic Backup. Producenci wszystkich najpopularniejszych systemów bazodanowych dostarczają takie narzędzia w formie programów, które można wywoływać z linii poleceń. W przypadku archiwizacji przy użyciu Ferro Backup System, program taki można uruchomić na serwerze bazodanowym za pomocą, wspomnianych już wcześniej, Poleceń zdalnych.

W przypadku wszystkich baz danych, sposób postępowania będzie taki sam. Najpierw wywoływane jest polecenie wykonujące kopię bazy, następnie przeprowadzana jest archiwizacja właściwa, a na końcu kopia bazy jest usuwana.

Polecenie zdalne, zdefiniowane w programie FBS Server, będzie wyglądało następująco:

BEFOREBACKUP TRUE POLECENIE PARAMETRY
AFTERBACKUP FALSE CMD "/C DELETE PLIK_Z_KOPIA_BAZY"


Poniższa tabela zawiera listę dedykowanych poleceń do wykonywania kopii bazy danych dla najpopularniejszych systemów bazodanowych.

Microsoft SQL Server (MsSql)
PolecenieSQLDUMP
SkładniaSQLDUMP KatalogDocelowy
PrzykładSQLDUMP c:\kopie
ŹródłoSQL Dump utility

Oracle
PolecenieExp (Export utility)
Składniaexp UZYTKOWNIK/HASLO FILE=kopia.dmp
Przykładexp SYSTEM/password FULL=y FILE=kopia.dmp GRANTS=y ROWS=y
ŹródłoOracle9i Database Utilities - Export

IBM DB2
PolecenieDB2 BACKUP
SkładniaDB2 BACKUP DATABASE db_name TO device_or_directory
PrzykładDB2 BACKUP DATABASE ZAMOWIENIA to c:\kopie\
ŹródłoDB2 9.5 for Linux, UNIX, and Windows - Compatibility of online backup

MySql
Poleceniemysqldump
Składniamysqldump -u [username] -p [password] [databasename] > [backupfile.sql]
Przykładmysqldump -u sadmin -p pass21 zamowienia > c:\kopie\zamowienia.sql
ŹródłoA Database Backup Program - mysqldump

PostgreSQL (Postgres)
Poleceniepg_dump
Składniapg_dump [option...] [dbname]
Przykładpg_dump mydb > kopia.out
ŹródłoPostgreSQL 8.1.11 Documentation - pg_dump

InterBase SQL
PolecenieGBAK
Składniagbak [options] -user [username] -password [password] [source] [destination]
Przykładgbak -v -t -user SYSDBA -password "masterkey" dbserver:/db/zamowienia.fdb c:\kopie\zamowienia.fbk
ŹródłoCodeGear/Borland InterBase Command Line Tools - gbak

Firebird
Polecenienbackup
Składnianbackup [-U user -P password] -B 0 database [backupfile]
Przykładnbackup -B 0 zamowienia.fdb c:\kopie\zamowienia.nbk
ŹródłoFirebird Documentation - Making and restoring backups - nbackup

Tabela 2. Polecenia do wykonywania kopii zapasowych popularnych baz danych



Można pewniej - "Cold Backup" (offilne)

Jeżeli serwer bazodanowy nie dysponuje dedykowanymi narzędziami do wykonywania kopii zapasowych lub z innej przyczyny nie chcemy wykonywać archiwizacji działającej bazy danych, można wykonać archiwizację po uprzednim zatrzymaniu usługi serwera bazy danych. Backup tego typu, do przeprowadzenia którego konieczne jest uprzednie zatrzymanie bazy danych, to tzw. Cold Backup lub Offline Backup.

Tak jak w poprzednim przypadku, operacja może być wykonana automatycznie przy pomocy Poleceń zdalnych. Przed archiwizacją należy wykonać polecenie zatrzymujące serwer, a po zakończeniu archiwizacji polecenie uruchamiające serwer z powrotem.

Do zatrzymania usługi serwera bazy danych można wykorzystać komendę NET STOP nazwa_usługi. Analogicznie, aby uruchomić usługę serwera, należy wywołać komędę NET START nazwa_usługi.

Polecenie zdalne, zdefiniowane w programie FBS Server, będzie wyglądało następująco:

BEFOREBACKUP TRUE CMD "/C NET STOP NAZWA_USLUGI"
AFTERBACKUP FALSE CMD "/C NET START NAZWA_USLUGI"



Duże bazy, małe kopie zapasowe

Ograniczenia w dostępie do pliku i trudności w uzyskaniu stanu koherentnego nie są jedynymi problemami występującymi podczas backupu dużych plików. W przypadku plików pocztowych i bazodanowych, których rozmiar liczony jest w gigabajtach, dodatkowym problem będzie rozmiar archiwów i obciążenie sieci podczas archiwizacji.
Przechowywanie kopii zapasowych dużych plików w kilku wersjach (z kilku dni), z wielu komputerów szybko może zapełnić nawet największe dyski twarde jak i macierze dyskowe.

Pliki bazodanowe są zoptymalizowane pod kątem szybkości operacji zapisu i odczytu. Optymalizacja taka polega najczęściej na alokacji przez system bazodanowy dużo większej przestrzeni dyskowej niż wynikałoby to z ilości przechowywanych w bazie informacji. Ta dodatkowa przestrzeń jest sukcesywnie zapełniana w trakcie przyrostu danych w bazie. Dzięki temu dane nie muszą być przesuwane i kopiowane (w obrębie pliku) podczas kolejnych transakcji dodających do bazy nowe informacje lub usuwających istniejące.
Wolna, niezapisana przestrzeń pliku bazy danych zawiera najczęściej ciągi bajtów o wartości zero. Tego typu pliki mogą być zatem bardzo łatwo skompresowane.

Wbudowana w Ferro Backup System kompresja umożliwia przeważnie zmniejszyć rozmiar bazy danych w stosunku 9:1. Oznacza to szybszy transfer kopii zapasowej do serwera archiwizacji i mniejsze zapotrzebowanie na przestrzeń dyskową.

Dodatkowo, aby rozwiązać problem z dużą ilością danych i przyspieszyć proces archiwizacji, Ferro Backup System został wyposażony w opcję archiwizacji różnicowej na poziomie fragmentów plików. Opcja ta jest właśnie przeznaczona do backupu dużych plików, takich jak pliki baz danych i pliki programów pocztowych. Jeśli jest uaktywniona, Ferro Backup System archiwizuje tylko te części pliku, które zostały zmodyfikowane lub utworzone od czasu poprzedniej archiwizacji. Jeśli więc plik bazodanowy o rozmiarze 50 GB, od czasu poprzedniej archiwizacji, został zmodyfikowany tylko w zakresie 1% (500 MB), to tylko tyle danych zostanie zarchiwizowanych ponownie. 500 MB, przy zakładanej kompresji 9:1, to tylko 50 MB danych do przesłania przez sieć i zachowania na serwerze archiwizacji.

Przy odzyskiwaniu danych, kopie wykonane z aktywną opcją archiwizacji na poziomie fragmentów plików, odtwarza się tak samo jak kopie pełne. Procesem wypakowywania i scalania fragmentów plików zajmuje się Ferro Backup System - Server bez udziału administratora.


Podsumowanie

Backup bazy danych lub pliku pocztowego można wykonać stosunkowo łatwo stosując wbudowane w Ferro Backup System opcje. Open File Manager pozwala archiwizować pliki będące w użyciu. Rozszerzenie OFM, które nie blokuje procesu zapisującego dane do pliku, pozwala na bezproblemową archiwizację plików pocztowych i lokalnych baz danych (online). Duże bazy danych można archiwizować przy użyciu Poleceń zdalnych i dedykowanego narzędzia do wykonywania kopii zapasowej. W ostateczności można również przy pomocy Poleceń zdalnych wykonać backup plików zatrzymanego serwera bazodanowego (offline). W każdym wypadku opcja Archiwizacji na poziomie fragmentów plików w połączeniu z kompresją danych przyspieszy archiwizację i pozwoli na zaoszczędzenie miejsca na dyskach serwera archiwizacji.


Zobacz też


Backup bazy danych i plików poczty
Wszelkie prawa zastrzeżone. © 2000-2022 FERRO Software