Wykonanie backupu małej bazy danych nie jest problemem. Kilkusekundowy przestój aplikacji czy strony w godzinach nocnych, nie stanowi dla nas większego kłopotu. Trudność pojawia się, kiedy do zarchiwizowania mamy naprawdę spore ilości rekordów. Przykładem takim może być baza danych MySQL 5.5, która zawiera około 83 973 092 rekordów, zajmujących blisko 8,2 GB. Jak wykonać szybko kopię zapasową takiej bazy, aby nie odczuli tego użytkownicy? Na szczęście jest na to rozwiązanie!
Najprostszą metodą może być wykorzystanie mechanizmu replikacji bazy MySQL. Konfigurujemy drugą bazę slave, z której to wykonujemy kopię zapasową. Na czas backupu możemy taki serwer zatrzymać, skopiować pliki lub wykonać zrzut za pomocą polecenia mysqldump. Podczas archiwizacji obciążamy jedynie klona głównej maszyny.
A co zrobić, jeżeli nie stać nas na zakup drugiego serwera, która posłuży nam jako baza zapasowa? Odpowiedzią na to pytanie jest aplikacja Percona XtraBackup, która wydawana jest na licencji GPLv2. Pozwala ona na wykonanie kopii zapasowej bazy danych, bez jej przestoju. Wspierane są serwery bazodanowe, takie jak: Percona Server, MySQL, MariaDB, oraz Drizzle. Oprogramowanie to pozwala na takie operacje jak:
- szybkie wykonywanie kopii zapasowej
- nieprzerywanie transakcji podczas wykonywania backup
- automatyczną weryfikację zarchiwizowanych danych
- szybszy czas odzyskiwania danych
- wykonywanie przyrostowych backupów
- prostsze tworzenie replikacji
- wykonywanie kopii zapasowej bez obciążania serwera
- przenoszenie tabel w czasie rzeczywistym pomiędzy serwerami
- backupuje tylko dane składowane w InnoDB
Z oprogramowania Percona XtraBackup, korzystają duże portale społecznościowe jak na przykład Facebook:
"Facebook users create a vast amount of data every day. To make sure that data is stored reliably, we back up our databases daily. Facebook was an early adopter of incremental backup in XtraBackup." - Vamsi Ponnekanti, Facebook Engineering
Instalacja Percona XtraBackup
Instalacja oprogramowania jest bardzo prosta, dzięki przygotowanym binarnym paczkom dostępnych dla systemów takich jak: Red Hat, CentOS, Debian i Ubuntu. Dostępne są również repozytoria dla aplikacji Yum oraz Apt.
Instalację rozpoczynamy od dodania do systemu, repozytorium z aplikacją. Do pliku /etc/yum.repos.d/percona.repo dodajemy wpis:
[percona] name = CentOS $releasever - Percona baseurl=http://repo.percona.com/centos/$releasever/os/$basearch/ enabled = 1 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-percona gpgcheck = 1
Musimy jeszcze skopiować klucz GPG i zapisać go do /etc/pki/rpm-gpg/RPM-GPG-KEY-percona. Od tego momentu możemy zacząć instalować oprogramowanie wydając polecenie:
yum install xtrabackup
Całe oprogramowanie składa się z tak naprawdę trzech aplikacji:
- xtrabackup - oprogramowanie napisane w języku C, które kopiuje dane InnoDB i XtraDB
- innobackupex - skrypt, który uzupełnia braki poprzedniego programu. Kopiuje całą zawartość serwera MySQL
- tar4ibd - pakuje do formatu tar dane InnoDB
Zostaną zainstalowane trzy podobne polecenia, które służą do wykonywania kopii zapasowych z odpowiednich wersji serwerów bazodanowych:
- xtrabackup - Percona Server 5.1 & MySQL 5.1 w/InnoDB plugin
- xtrabackup_51 - Percona Server 5.0, MySQL 5.0 & MySQL 5.1
- xtrabackup_55 - Percona Server 5.5 & MySQL 5.5
Czas na wykonanie pierwszego backupu za pomocą xtrabackup.











Fakt.. dobre i niezawodne :)