Percona XtraBackup hè una utilità per a copia di salvezza di basa di dati calda MySQL.
Quandu crea una copia di salvezza di dati, nisuna tavuletta hè chjusa, è u vostru sistema cuntinueghja à operare senza restrizioni.
XtraBackup 2.4 pò creà copie di salvezza di e tavule InnoDB, XtraDB и MyISAM nantu à i servitori MySQL 5.11, 5.5, 5.6 è 5.7, è ancu nantu à u servitore percona di MySQL с XtraDB.
Per travaglià cun MySQL 8.x A versione deve esse usata XtraBackup 8.x. Questu articulu parlerà solu XtraBackup 2.4.
U vantaghju principali XtraBackup hè chì sta utilità hè adattata sia per creà backups di servitori assai carichi è per sistemi cù un pocu numeru di transazzione.
Se a dimensione tutale di e vostre basa di dati MySQL hè significativa (decine di gigabyte), allora l'utilità standard mysqldump ùn vi permetterà di creà rapidamente una copia di salvezza, è restaurà u dump hà da piglià assai tempu.
rimarchevuli
rimarchevuli XtraBackup da u repository entier Percona.
Eseguite i seguenti cumandamenti in sequenza:
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. Dopu a stallazione, eseguite u cumandimu xtrabackup -v
. Dapoi, hè impurtante per assicurà chì l'utilità funziona bè in u servitore. In u risultatu, qualcosa cum'è questu serà visualizatu nantu à u screnu:
xtrabackup: argumenti di u servitore ricunnisciutu: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0xtrabackup versione 2.4.20 basatu annantu à u servitore MySQL 5.7.26 Linux (x8664) (id di rivisione: c8b4056)
I diritti d'accessu, i permessi è i privilegi
XtraBackup deve esse capace di:
-
Cunnette vi à u vostru servitore MySQL.
-
Avè diritti d'accessu à u cartulare datadir.
-
Quandu crea una copia di salvezza, avete i diritti di scrittura à u paràmetru specificatu target-dir catalogu.
Cosa hè datadir?
datadir hè u repertoriu induve u servitore di basa di dati MySQL almacena dati. Tutte e basa di dati, tutte e tavule sò quì. In a maiò parte di e distribuzioni Linux, u cartulare predeterminatu hè /var/lib/mysql.
Chì ghjè u repertoriu target-dir?
target-dir - Questu hè u cartulare induve a copia di salvezza serà salvata.
L'utilizatore di a basa di dati hà bisognu di i seguenti diritti d'accessu à e tavule è e basa di dati per esse salvate:
-
RICARICA è BLOCCA TABELLE
-
CLIENT REPLICATION
-
CREATE TABLESPACE
-
PROCESS
-
SUPER
-
creà
-
INSERITU
-
SELECT
Cunfigurazione
Cunfigurazione XtraBackup fattu cù l'opzioni chì si cumportanu cum'è l'opzioni MySQL standard.
Chì significarà?
I paràmetri di cunfigurazione ponu esse specificati sia in a linea di cummanda sia in u schedariu di cunfigurazione DBMS, per esempiu in /etc/my.cnf.
L'utilità XtraBackup leghje e partizioni dopu u lanciu [mysqld] и [xtrabackup] da i schedarii di cunfigurazione MySQL. Questu hè fattu per chì l'utilità pò utilizà i paràmetri di u vostru DBMS senza avè da specificà manualmente i paràmetri durante ogni copia di salvezza.
Per esempiu, u valore datadir è certi paràmetri InnoDB Avemu XtraBackup da a cunfigurazione di u vostru DBMS.
Sè per u travagliu XtraBackup, vulete annullà i paràmetri chì sò in a sezione [mysqld], dopu solu specifichi in u schedariu di cunfigurazione in a sezione [xtrabackup]. Siccomu seranu letti dopu, a so priorità serà più altu.
Ùn avete bisognu di aghjunghje alcunu paràmetru my.cnf. Tutti i paràmetri richiesti ponu esse specificati nantu à a linea di cummanda. Di solitu l'unicu ciò chì pò esse convenientemente piazzatu in a rùbbrica [xtrabackup] u vostru soiu my.cnf hè un paràmetru target_dir, chì per difettu specifica u repertoriu induve i backups seranu posti. Ma questu hè opcional.
Un esempiu di specificà u percorsu à u cartulare cù una copia di salvezza in my.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/
Script di salvezza
Pudete aduprà u seguente script per creà una copia di salvezza:
#!/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
Cosa succede durante l'esecuzione di u script?
Prima di tuttu, sguassate (sguassate) u cartulare in quale salveremu a copia di salvezza:
rm -rf /mysql/backup.
Allora, usendu l'utilità XtraBackup creà una copia di salvezza è salvà lu in /mysql/backup/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backup
Prima, avemu creatu un utilizatore in MySQL xtrabackup
cù i privilegi richiesti. Utilizà u paràmetru target-dir
avemu specificatu u cartulare induve a copia di salvezza deve esse salvatu.
Un puntu mpurtanti!
Nota a linea di script:
xtrabackup --prepare --target-dir=/mysql/backup
Dati di catalogu /mysql/backup ùn sò cunsistenti finu à ch'elli sò cotti.
U fattu hè chì i cambiamenti ponu accade durante a copia di i schedari. Operazione xtrabackup --prepare --target-dir=/mysql/backup
rende i dati di salvezza perfettamente coherente cù u tempu.
Pudete fà l'operazione di preparazione di dati in ogni macchina. Ùn ci hè bisognu di fà questu nantu à u servitore induve si trova a fonte DBMS. Pudete copià a copia di salvezza in u servitore di destinazione è preparalli quì.
L'ultima cosa chì facemu hè di creà un archiviu in quale ponemu a nostra copia di salvezza:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backup
Risturà una copia di salvezza
Prima di pudè restaurà una copia di salvezza à u servitore di destinazione, i dati devenu passà per una fase di preparazione. Vede sopra per cumu fà questu.
U prucessu di ripresa di dati hè assai sèmplice. Avete bisognu di caccià a copia di salvezza da l'archiviu è rimpiazzà i dati in datadir.
Cumu rimpiazzà e dati in datadir?
Cunsideremu duie opzioni.
Opzione 1
Aduprà l'utilità XtraBackup. Avete bisognu di specificà una opzione --copia-back.
U cumandamentu sottu vi trasfiriri a copia di salvezza à datadir servitore di destinazione:
xtrabackup --copy-back --target-dir=/mysql/backup
Opzione 2
Pudete fà in modu diversu, fà senza l'utilità XtraBackup.
Tuttu ciò chì vi tocca à fà hè cupià a copia di salvezza datadir. Pudete fà questu cun cp o rsync.
Hè impurtante di capisce chì a prucedura per restaurà una copia di salvezza si riduce solu à rimpiazzà u cuntenutu di u cartulare. datadir.
Prima di inizià a restaurà una copia di salvezza in u servitore di destinazione, duvete:
-
Arresta u servitore MySQL.
-
Sguassà u cartulare datadir o move u so cuntenutu à un altru locu. Catalogu datadir deve esse viotu.
Dopu à compie u trasferimentu di dati à datadir U servitore MySQL pò esse cuminciatu.
Materiali utilizati
Source: www.habr.com