Główna / Pomoc / Kopie zapasowe

Kopie zapasowe

Kopie zapasowe

Wykonywanie kopii zapasowych za pomocą gbak i nbackup

Poniżej podajemy przykładowe wywołania narzędzi gbak i nbackup, służących do tworzenia kopii zapasowych baz FirebirdSQL. Przykładowe skrypty mogą być uruchamiane ręcznie, lub automatycznie przez Harmonogram zadań (np. codziennie o północy).

Użytkownicy Windows mogą skorzystać z Harmonogramu zadań dostępnego w każdej dystrybucji Windows. Należy dodać nowe zadanie do Harmonogramu, ustawić częstość powtarzania zadania (np. codziennie, o 15.00), oraz wskazać plik bat, który będzie uruchamiany.

GBAK

Narzędzie gbak udostępniane wraz ze wszystkimi dystrybucjami FirebirdSQL umożliwia tworzenie kopii zapasowych baz danych. Za pomocą GBAK nie należy tworzyć kopii zapasowych w czasie, gdy użytkownicy pracują na bazie danych. Dlatego plik bat najlepiej uruchamiać w nocy lub w czasie, gdy użytkownicy nie pracują. Przykładowy plik “archiwizacja.bat” może wyglądać tak:

cd C:\Program Files\Firebird\Firebird_2_1\bin
gbak localhost:D:\Bazy\WinSADIB\SadDaneIB.fdb Q:\Archiwum\kopia.fbk -backup_database -verify -ignore -user  SYSDBA -password masterkey

lub tak:

cd C:\Program Files\Firebird\Firebird_2_1\bin
@set data=%date:~0,4%%date:~5,2%%date:~8,2%
gbak localhost:D:\Bazy\WinSADIB\SadDaneIB.fdb \\nazwa_komputera\Archiwum\kopia%data%.fbk -backup_database -verify -ignore -user SYSDBA -password masterkey

Plik bat o takiej treści utworzy archiwum w podanej lokalizacji, w pliku zawierającym w nazwie datę wykonania archiwum. W tym przypadku może to być dysk mapowany lub zasób sieciowy. Podane powyżej ścieżki do katalogów należy oczywiście zastąpić poprawnymi! Hasło masterkey to hasło domyślne, które mogło zostać zmienione – w takim wypadku należy je oczywiście zastąpić aktualnym (zna je administrator)!

Inny prosty plik bat, który przeniesie całą zawartość utworzonych przez program archiwów do folderu na innym komputerze może wyglądać tak:

xcopy D:\Bazy\WinSADIB\Archiwum \\inny_komputer\Archiwa

Przyrostowe bazy danych: NBACKUP

FirebirdSQL umożliwia tworzenie przyrostowych kopii zapasowych.

Tworzenie kopii przyrostowej polega na tym, że w kolejnych plikach archiwum zapisywane są tylko te rekordy, które zostały zmodyfikowane od momentu utworzenia ostatniej kopii zapasowej na określonym poziomie.

Planując tworzenie przyrostowych kopii zapasowych, określa się poziomy, na których będą tworzone kopie zapasowe. Kopie poziomu zerowego (najniższego) zawierają wszystkie rekordy w bazie danych. Kopie kolejnych poziomów (1, 2, …) zawierają tylko te rekordy, które zostały zmienione od momentu wykonania ostatniej kopii zapasowej na poziomie niższym. Na przykład archiwum poziomu 1 zawiera tylko rekordy, które zmieniły się od czasu wykonania ostatniego archiwum poziomu 0.

Kopie przyrostowe umożliwiają częstszą archiwizację danych przy mniejszym zużyciu zasobów komputera. Przykładowy plan tworzenia kopii przyrostowych może uwzględniać:

  • kopie poziomu 0 tworzone co tydzień;
  • kopie poziomu 1 tworzone codziennie;
  • kopie poziomu 2 tworzone co godzinę.

Wykonywanie kopii przyrostowych może odbywać się w czasie, gdy użytkownicy korzystają z bazy danych (w czasie pracy na bazie). Wykonywanie archiwum w czasie pracy nie zapewnia jednak 100% integralności danych w bazie. Prawdopodobieństwo utraty integralności danych jest bardzo niskie. Mimo to zalecane jest wykonywanie kopii w czasie, gdy aktywność użytkowników jest minimalna (np. o północy, w niedziele itd).

Do wykonywania przyrostowych kopii zapasowych służy program nbackup.exe, znajdujący się w folderze /bin firebirda. Kopie można wykonywać ręcznie z linii komend lub korzystając z programów typu harmonogram zadań. Przykładowe proste wywołanie nbackup:

“C:\Program Files\Firebird\Firebird_2_1\bin\nbackup.exe” -B 0 C:\bazy\baza_danych.fdb
C:\bazy\archiwum\arch_2011_09_08_poziom_0.nbk -user SYSDBA -password masterkey

Gdzie -B oznacza polecenie wykonania kopii zapasowej, 0 oznacza poziom, następnie podana jest lokalizacja bazy i lokalizacja archiwum.

Inne przykładowe wywołanie, wpisujące aktualną datę do nazwy pliku:

set d=%data:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%
set katalog_archiwum=c:\Bazy\Archiwum\0
set baza=c:\bazy\baza_danych.fdb
“C:\Program Files\Firebird\Firebird_2_1\bin\nbackup.exe” -B 0 %baza% 
“%katalog_archiwum%\poziom0_%data%.nbk” -user SYSDBA -password masterkey

Przywracanie bazy z kopii odbywa się po podaniu parametru -R, następnie nazwy bazy danych oraz plików z archiwami na kolejnych poziomach. Liczba plików zawierających archiwa na kolejnych poziomach jest zależna od tego, ile poziomów archiwów było uwzględnione podczas wykonywania kopii zapasowych. Może to być tylko 1 plik poziomu 0, lub trzy pliki o poziomach 0, 1, 2. Przykładowe wywołanie:

“C:\Program Files\Firebird\Firebird_2_1\bin\nbackup.exe” -R C:\bazy\baza_danych.fdb 
C:\bazy\archiwum\arch_2011_09_08_poziom_0.nbk C:\bazy\archiwum\arch_2011_09_12_poziom_1.nbk 
C:\bazy\archiwum\arch_2011_09_13_poziom_2.nbk -user SYSDBA -password masterkey

Szczegółowe informacje dot. nbackup znajdują się na stronie:
http://www.firebirdsql.org/manual/nbackup.html

Dział pomocy