Crea una copia di salvezza MySQL cù l'utilità XtraBackup

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 InnoDBXtraDB и 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)

Crea una copia di salvezza MySQL cù l'utilità XtraBackup

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

Documentazione ufficiale percona XtraBackup.

Source: www.habr.com

Add a comment