PostgreSQL Plugin dla Baculi

Już niedługo Bacula rozszerzy swoje funkcjonalności o bezpośrednią możliwość wykonywania kopii zapasowych baz danych PostgreSQL/EnterpriseDB. Integracja oprogramowania baz danych PostgreSQL z Baculą będzie zrealizowana poprzez mechanizm wtyczek klienckich (Bacula FD Plugins). Wtyczka taka umożliwia realizację backupu danych lub obiektów które nie koniecznie mają swoje odzwierciedlenie w postaci plików w systemie operacyjnym lub dostęp do nich realizowany jest poprzez dedykowane do tego celu API.

Jednym z takich obszarów aplikacyjnych są bazy danych. Pliki baz danych zazwyczaj występują w postaci zwyczajnych plików na filesystemie lub w urządzeniach surowych (raw device). Jednak aby dokonać poprawnego ich odczytu wymagane jest pośrednictwo silnika bazodanowego lub zastosowania odpowiednich procedur i mechanizmów dostępu do tych plików. Odczyt z pominięciem tych mechanizmów prowadzi do sytuacji w której kolejne odczytywane pliki bazodanowe posiadają dane z różnych momentów w czasie co przekłada się na brak spójności danych. W przypadku realizacji kopii zapasowych taka niespójność oznacza zazwyczaj brak możliwości odtworzenia bazy danych w przypadku awarii. Taki backup jest bezużyteczny.

Częstym obejściem problemu spójności danych w przy bezpośrednim backupowaniu plików bazodanowych jest mechanizm wyładowania danych z bazy danych do plików SQL. Mechanizm ten zwany "dumpem" można wykorzystać w późniejszym czasie do odtworzenia zawartości bazy danych. W przypadku bazy danych PostgreSQL mechanizm ten realizuje narzędzie pg_dump. Podstawową wadą tego mechanizmu jest osiągany czas odtworzenia danych który związany jest z samą istotą mechanizmu wymagającego oddzielnego przeliczenia indeksów czy weryfikacji zależności (constraints) w ładowanych danych. Inną możliwością uzystania spójnej kopii danych plików bazodanowych jest wykonywanie backupów w trybie off-line. W tym trybie silnik bazy danych na czas realizacji kopii zapasowej jest wyłączany. Podstawową wadą tej metody jest przerwa w działaniu bazy danych co w przypadku środowisk produkcyjnych często nie jest możliwe. Dodatkowo obie metody nie umożliwiają wykonania odtworzenia stanu bazy danych do wskazanego numeru transakcji bazodanowej czy nawet wskazanego momentu w czasie. Zakres odtwarzanych danych ogranicza się do momentów w których wykonywane były poszczególone kopie zapasowe.

Receptą jest wykorzystanie mechanizmu realizacji kopii zpasowych bazy danych na gorąco (hot backup). Taki tryb charakteryzuje się możliwością wykonywania kopii zapasowych podczas pracy silnika bazodanowego a także możliwość odtworzenia danych z dowolnego momentu w czasie. Dokładnie ten mechanizm implementuje wtyczka do oprogramowania Bacula o nazwie pgsql-fd. W chwili obecnej prace nad modułem są na ukończeniu. Pozostały jeszcze testy funkcjonalne i usunięcie ostatnich błędów.

Dokładniejszy opis instalacji i konfiguracji wtyczki pgsql-fd przedstawię następnym razem.

Zakonczyly sie juz koncowe

Zakonczyly sie juz koncowe prace nad wtyczka? jesli tak - to kiedy mozna sie spodziewac jakiegos opisu instalacji i konfiguracji ;-)

Ostatnie testy

Wtyczka przechodzi ostatnie testy akceptacyjne. Opis instalacji i konfiguracji dostępny jest pod adresem: http://bacula.com.pl/blog/bacula-postgresql-plugin-instalacja-i-konfiguracja.

Radosław Korzeniewski