Erstellt e MySQL Backup mam XtraBackup Utility

Percona XtraBackup ass en Utility fir Hot Datebank Backups MySQL.

Wann Dir en Datebackup erstellt, gi keng Dëscher gespaart, an Äre System funktionnéiert weider ouni Restriktiounen.

XtraBackup 2.4 kann Backupsatellit vun Dëscher schafen InnoDBXtraDB и MyISAM op Serveren MySQL 5.11, 5.5, 5.6 a 5.7, an och um Server percona fir MySQL с XtraDB.

Ze schaffen mat MySQL 8.x Versioun soll benotzt ginn XtraBackup 8.x. Dësen Artikel wäert nëmmen iwwer schwätzen XtraBackup 2.4.

Den Haaptvirdeel XtraBackup ass datt dëst Utility gëeegent ass souwuel fir Backups vun héich geluedene Serveren ze kreéieren a fir Systemer mat enger gerénger Unzuel vun Transaktiounen.

Wann d'Gesamtgréisst vun Äre MySQL Datenbanken bedeitend ass (Zénger vu Gigabytes), dann ass de Standard Utility mysqldump erlaabt Iech net séier eng Backupkopie ze kreéieren, an d'Restauratioun vum Dump wäert vill Zäit huelen.

Kader

Kader XtraBackup aus dem Repository aktuell Percona.

Fëllt déi folgend Kommandoen sequentiell aus:

wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb

sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb

sudo apt-get update 

sudo apt-get install percona-xtrabackup-24

2. No der Installatioun, lafen de Kommando xtrabackup -v. Zënter ass et wichteg ze suergen datt den Utility richteg um Server funktionnéiert. Als Resultat gëtt eppes wéi dat um Bildschierm ugewisen:

xtrabackup: unerkannt Serverargumenter: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect — innodbflushlogattrxcommit=0xtrabackup Versioun 2.4.20 baséiert op MySQL Server 5.7.26 Linux (x8664) (Versioun ID: c8b4056)

Erstellt e MySQL Backup mam XtraBackup Utility

Zougangsrechter, Permissiounen a Privilegien 

XtraBackup soll fäeg sinn:

  • Connect op Äre MySQL Server.

  • Hutt Zougangsrechter zum Verzeichnis datadir

  • Wann Dir eng Backupkopie erstellt, hutt Dir Schreifrechter op de spezifizéierte Parameter target-dir Katalog.

Wat ass datadir?

datadir ass de Verzeechnes wou den Datebankserver MySQL späichert Daten. All Datenbanken, all Dëscher sinn do. Op de meeschte Linux Verdeelungen ass de Standardverzeechnes /var/lib/mysql.

Wat ass Zil-Dir Verzeechnes?

target-dir - Dëst ass den Dossier wou de Backup gespäichert gëtt.

De Benotzer vun der Datebank brauch déi folgend Zougangsrechter op d'Tabellen an d'Datenbanken fir ze backen:

  • RELOAD an LOCK Dëscher

  • REPLIKATIOUN Client

  • CREATE TABLESPACE

  • PROZESS

  • SUPER

  • schafen

  • INSERT

  • beruflecher Organisatioun

Configuratioun 

Configuratioun XtraBackup gemaach mat Optiounen déi d'selwecht behuelen wéi Standard MySQL Optiounen.

Wat heescht dat?

Konfiguratiounsparameter kënnen entweder op der Kommandozeil oder an der DBMS Konfiguratiounsdatei spezifizéiert ginn, zum Beispill an /etc/my.cnf.

XtraBackup Utility liest Partitionen nom Start [mysqld] и [xtrabackup] aus MySQL Konfiguratiounsdateien. Dëst gëtt gemaach fir datt d'Utility d'Astellunge vun Ärem DBMS benotze kann ouni d'Parameteren manuell während all Backup ze spezifizéieren.

Zum Beispill, de Wäert datadir an e puer Parameteren InnoDB Mir kréien XtraBackup aus der Konfiguratioun vun Ärem DBMS.

Wann fir XtraBackup ze schaffen wëllt Dir d'Parameteren iwwerdribblen, datt an der Rubrik sinn [mysqld], da gitt se just an der Konfiguratiounsdatei an der Rubrik [xtrabackup]. Well se spéider gelies ginn, wäert hir Prioritéit méi héich sinn.

Dir musst keng Parameteren addéieren meng. cnf. All erfuerderlech Parameter kënnen op der Kommandozeil spezifizéiert ginn. Normalerweis déi eenzeg Saach, déi bequem an der Rubrik plazéiert ka ginn [xtrabackup] ären meng. cnf ass e Parameter target_dir, deen par défaut de Verzeichnis spezifizéiert wou d'Backups plazéiert ginn. Awer dëst ass fakultativ.

E Beispill fir de Wee an de Verzeichnis ze spezifizéieren mat enger Backupkopie an meng. cnf:

[xtrabackup]
target_dir = /data/backups/mysql/

Backup Skript

Dir kënnt de folgende Skript benotze fir e Backup ze kreéieren:

#!/bin/bash

# Удаляем данные в каталоге бекапа
rm -rf /mysql/backup

# Cоздаём бекап
xtrabackup --user=xtrabackup 
 --password=xxxx_SECRET_xxxx 
 --backup 
 --target-dir=/mysql/backup

# Выполняем подготовку бекапа для развёртывания
xtrabackup --prepare --target-dir=/mysql/backup

# Создаём архив
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-"$(date +%F-%H:%M:%S)".gz /mysql/backup

Wat geschitt während der Ausféierung vum Skript?

Als éischt läschen mir (läschen) de Verzeichnis an deem mir d'Backupkopie späicheren:

rm -rf /mysql/backup.

Dann, benotzt den Utility XtraBackup eng Backupkopie erstellen a späicheren /mysql/backup/:

xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backup

Virdrun hu mir e Benotzer am MySQL erstallt xtrabackup mat den néidege Privilegien. Benotzt de Parameter target-dir mir spezifizéieren den Dossier wou de Backup gespäichert soll ginn.

E wichtege Punkt!

Notéiert d'Skript Linn:

xtrabackup --prepare --target-dir=/mysql/backup

Katalog Daten /mysql/backup sinn net konsequent bis se gekacht sinn. 

De Fakt ass datt Ännerunge kënne geschéien wann Dir Dateien kopéiert. Operatioun xtrabackup --prepare --target-dir=/mysql/backup mécht Backupsatellit perfekt konsequent iwwer Zäit.

Dir kënnt d'Datepräparatiounsoperatioun op all Maschinn ausféieren. Et ass net néideg dëst um Server ze maachen wou d'Quell DBMS läit. Dir kënnt de Backup op den Zilserver kopéieren an et do preparéieren.

Dat lescht wat mir maachen ass en Archiv erstellen an deem mir eise Backup setzen:

tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backup

E Backup restauréieren 

Ier Dir e Backup op den Zilserver restauréiere kënnt, mussen d'Donnéeën duerch eng Virbereedungsphase goen. Kuckt hei uewen fir wéi Dir dëst maacht.

D'Daten Erhuelung Prozess ass ganz einfach. Dir musst de Backup aus dem Archiv extrahéieren an d'Donnéeën ersetzen datadir.

Wéi ersetzen ech Daten am Datadir?

Loosst eis zwou Optiounen betruechten.

Option 1

Benotzt den Utility XtraBackup. Dir musst eng Optioun uginn --copy-back

De Kommando hei drënner wäert de Backup op datadir Zil Server:

xtrabackup --copy-back --target-dir=/mysql/backup

Option 2

Dir kënnt et anescht maachen, maacht ouni Utility XtraBackup.

Alles wat Dir maache musst ass de Backup ze kopéieren datadir. Dir kënnt dat maachen mat cp oder rsync.

Et ass wichteg ze verstoen datt d'Prozedur fir e Backup ze restauréieren erof geet op just den Inhalt vum Verzeichnis ze ersetzen datadir.

Ier Dir ufänkt e Backup um Zilserver ze restauréieren, musst Dir:

  • Stop MySQL Server.

  • Kloer Dossier datadir oder réckelt säin Inhalt op eng aner Plaz. Katalog datadir muss eidel sinn.

Nom Ofschloss vun Daten Transfert op datadir MySQL Server kann gestart ginn.

Materialien gebraucht

Offiziell Dokumentatioun percona XtraBackup.

Source: will.com

Setzt e Commentaire