GNU/Linux >> Znalost Linux >  >> Ubuntu

Provádějte horké zálohy databází MySQL pomocí Percona XtraBackup na Ubuntu 16.04

Percona XtraBackup je open source zálohovací nástroj pro MySQL. Podporuje všechny varianty MySQL, jako je Percona Server, MariaDB a (Oracle) MySQL. Percona Xtrabackup provádí Hot Backup pro MySQL. Hot Backup znamená vytvořit zálohu serveru MySQL, zatímco běží bez výpadků.

V tomto tutoriálu vám ukážu, jak vytvořit horkou zálohu databáze MySQL pomocí nástroje OpenSource Percona XtraBackup na Ubuntu 16.04 (Xenial Xerus). K provedení zálohy použiji MariaDB jako databázový server, ale stejné nastavení bude fungovat i pro servery MySQL.

Předpoklad

  • Server Ubuntu 16.04 – (Xenial Xerus)
  • Server MySQL nebo MariaDB
  • Kořenová oprávnění

Krok 1 – Instalace Percona XtraBackup

Prvním krokem je instalace nejnovějšího softwaru Percona XtraBackup na náš server Ubuntu. Přihlaste se na svůj server pomocí SSH (nebo na konzoli):

ssh [email protected]
TYPE YOUR PASSWORD

Percona XtraBackup je k dispozici v úložišti Ubuntu, ale my chceme používat nejnovější verzi z úložiště Percona.

Přidejte úložiště Percona stažením balíčku deb z webu a jeho instalací pomocí příkazu dpkg:

wget https://repo.percona.com/apt/percona-release_0.1-3.$(lsb_release -sc)_all.deb
sudo dpkg -i percona-release_0.1-3.$(lsb_release -sc)_all.deb

Dále aktualizujte úložiště a nainstalujte Ppercona XtraBackup 2.4 (aktuálně nejnovější verzi):

sudo apt-get update
sudo apt-get install percona-xtrabackup-24

Percona XtraBackup je nainstalován.

Krok 2 – Konfigurace uživatele a adresáře záloh

K provedení horké zálohy musíme vytvořit nového uživatele mysql se speciálními oprávněními a oprávněními. V tomto tutoriálu použiji MariaDB 10.0 jako databázový server. Pokud jste dosud nenainstalovali databázi kompatibilní s MySQL, můžete ji nainstalovat pomocí příkazu níže:

sudo apt-get install mariadb-server mariadb-client

Nastavte bezpečné heslo pro uživatele root pomocí tohoto příkazu:

mysql_secure_installation

Pokud je nainstalována MariaDB, přistupte k prostředí MariaDB/MySQL jako uživatel root pomocí příkazu klienta mysql:

mysql -u root -p
TYPE MySQL PASSWORD

Vytvořte nového uživatele s názvem 'bekupuser s heslem 'mojeheslo ' (zvolte si bezpečné heslo pro váš server!):

CREATE USER 'bekupuser'@'localhost' IDENTIFIED BY 'mypassword';

Udělte uživateli následující oprávnění:'RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT'.

GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'bekupuser'@'localhost';
FLUSH PRIVILEGES;
exit

Dále vytvořte nový adresář pro uložení záložních souborů MySQL:

mkdir -p /data/backups/mysql/

Byl vytvořen nový záložní uživatel a adresář záloh.

Krok 3 – Proveďte zálohování pomocí Innobackupex

Innobackupex je obal skriptů v Perlu pro program xtrabackup. Je to opravená verze skriptu innobackup poskytovaná oracle, distribuovaná s nástrojem InnoDB Backup. Innobackupex poskytuje zálohu pro celou instanci databáze MySQL pomocí xtrabackup v kombinaci s xbstream a xbcrypt.

V tomto kroku vytvoříme a připravíme úplnou zálohu pro instanci MySQL.

A. Vytvořte zálohu pomocí Innobackupex

V kroku 2 jsme vytvořili nový adresář pro zálohu a přidali nového uživatele zálohy mysql. Nyní je použijeme k vytvoření zálohy pomocí příkazu innobackupex.

Vytvořte zálohu MySQL pomocí innobackupex do nového adresáře '/data/backups/my_backup':

innobackupex --user=bekupuser  --password=mypassword --no-timestamp /data/backups/my_backup

Poznámka:

-uživatel =uživatel s požadovanými právy zálohování (krok 2).

-heslo =heslo uživatele zálohy.

--no-timestamp =zakázat vytváření nového podadresáře s časovým razítkem v kořenovém adresáři zálohy.

/data/backups/my_backup =adresář pro zálohu, bude vytvořen automaticky během procesu zálohování. Pokud adresář existuje, zobrazí se chybová zpráva.

Další možnost:

mkdir -p /data/backups/my_backup2

innobackupex --user=bekupuser --password=mypassword /data/backups/my_backup2

or

innobackupex --user=bekupuser --password=mypassword /data/backups/

Poznámka:

Pokud neexistuje žádný adresář 'my_backup2 ', získáte svůj adresář na základě 'časového razítka ' formát.

Výsledky:

B. Připravte si úplnou zálohu s Innobackupexem

Po vytvoření nové zálohy nejsou data připravena k obnovení. Je zde ještě jeden krok, takže data jsou připravena k obnovení. Potřebujeme „fáze přípravy“, aby bylo možné data obnovit.

Připravte zálohu pomocí innobackupex s volbou --apply-log do adresáře záloh '/data/backups/my_backup ':

innobackupex --apply-log /data/backups/my_backup

Než budete pokračovat, ujistěte se, že je proces dokončen bez chyby.

Pokud máte dostatek paměti a velkou databázi, můžete použít volbu --use-memory=memorynumber říct innobackupex, kolik paměti může používat:

innobackupex --apply-log --use-memory=4G /data/backups/my_backup

Data jsou nyní připravena k obnovení. Můžeme jej obnovit na stejném serveru nebo na jiném serveru, na kterém běží MariaDB.

Krok 4 – Obnovení úplné zálohy pomocí Innobackupex

V tomto kroku obnovíme instanci MySQL pomocí innobackupex.

Než obnovíme instanci MySQL, musíme zastavit proces MySQL příkazem systemctl (proces MariaDB se jmenuje mysql):

systemctl stop mysql

Vytvořte zálohu starého datového adresáře MySQL:

mkdir ~/mysql_old/
mv /var/lib/mysql/* ~/mysql_old/

Dále obnovte instanci mysql z úplné zálohy pomocí innobackupex:

innobackupex --copy-back /data/backups/my_backup

Když uvidíte výsledek 'innobackupex:dokončeno OK ', pak jste úspěšně obnovili svou instanci MySQL.

Nyní změňte vlastníka datového adresáře MySQL na uživatele mysql a spusťte službu znovu:

chown -R mysql:mysql /var/lib/mysql
systemctl start mysql

Instance MySQL byla úspěšně obnovena pomocí percona-xtrabackup.


Ubuntu
  1. Jak nainstalovat Nginx s PHP5 a MySQL na Ubuntu 11.10

  2. Jak nainstalovat Mattermost s MySQL na Ubuntu 14.04 a Debian 8

  3. Jak vytvořit zálohu databází MySQL pomocí mysqldump na Ubuntu 20.04

  1. Nainstalujte a začněte s MySQL Workbench na Ubuntu

  2. Ubuntu 20.04:WordPress s instalací Nginx

  3. Ubuntu 20.04 WordPress s instalací Apache

  1. Instalace WordPressu na Ubuntu Linux s Apache a MySQL

  2. Jak nainstalovat WordPress s Nginx na Ubuntu 18.04

  3. Jak nainstalovat WordPress s Apache na Ubuntu 18.04