Creació d'una còpia de seguretat de MySQL mitjançant la utilitat XtraBackup

Percona XtraBackup és una utilitat per a còpies de seguretat de bases de dades en calent MySQL.

Quan creeu una còpia de seguretat de dades, no es bloqueja cap taula i el vostre sistema continua funcionant sense cap restricció.

XtraBackup 2.4 pot crear còpies de seguretat de les taules InnoDBXtraDB и MyISAM als servidors MySQL 5.11, 5.5, 5.6 i 5.7, i també al servidor Percona per MySQL с XtraDB.

Per treballar MySQL 8.x s'ha d'utilitzar la versió XtraBackup 8.x. Aquest article només en parlarà XtraBackup 2.4.

El principal avantatge XtraBackup és que aquesta utilitat és adequada per crear còpies de seguretat de fitxers amb una càrrega alta servidors, així com per a sistemes amb un nombre baix de transaccions.

Si la mida total de les vostres bases de dades MySQL és significativa (desenes de gigabytes), aleshores la utilitat estàndard mysqldump no us permetrà crear ràpidament una còpia de seguretat i restaurar l'abocament trigarà molt de temps.

Instal · lació

Instal · lació XtraBackup des del repositori apte Percona.

Executeu les ordres següents seqüencialment:

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. Després de la instal·lació, executeu l'ordre xtrabackup -v. Atès que, és important assegurar-se que la utilitat funciona correctament al servidor. Com a resultat, es mostrarà una cosa com aquesta a la pantalla:

xtrabackup: arguments de servidor reconeguts: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0xtrabackup versió 2.4.20 basada en el servidor MySQL 5.7.26 Linux (x8664) (identificador de revisió: c8b4056)

Creació d'una còpia de seguretat de MySQL mitjançant la utilitat XtraBackup

Drets d'accés, permisos i privilegis 

XtraBackup hauria de ser capaç de:

  • Connecteu-vos al vostre servidor MySQL.

  • Tenir drets d'accés al directori són dades

  • Quan creeu una còpia de seguretat, tingueu drets d'escriptura sobre el paràmetre especificat dir-objectiu catàleg.

Què és datadir?

són dades és el directori on es troba el servidor de bases de dades MySQL emmagatzema dades. Totes les bases de dades, totes les taules es troben allà. A la majoria de distribucions Linux Per defecte, aquest directori és /var/lib/mysql.

Què és el directori target-dir?

dir-objectiu - Aquest és el directori on es desarà la còpia de seguretat.

L'usuari de la base de dades necessita els drets d'accés següents a les taules i bases de dades per fer una còpia de seguretat:

  • RECARREGA i BLOQUEA LES TAULES

  • CLIENT DE REPLICACIÓ

  • CREAR UN ESPAI DE TAULA

  • PROCÉS

  • ESTUPEND

  • CREAR

  • INSERT

  • SELECT

Configuració 

Configuració XtraBackup fet amb opcions que es comporten igual que les opcions estàndard de MySQL.

Què vol dir això?

Els paràmetres de configuració es poden especificar a la línia d'ordres o al fitxer de configuració del SGBD, per exemple a /etc/my.cnf.

La utilitat XtraBackup llegeix les particions després de l'inici [mysqld] и [xtrabackup] dels fitxers de configuració de MySQL. Això es fa perquè la utilitat pugui utilitzar la configuració del vostre SGBD sense haver d'especificar els paràmetres manualment durant cada còpia de seguretat.

Per exemple, el valor són dades i alguns paràmetres InnoDB Obtenim XtraBackup de la configuració del vostre SGBD.

Si perquè XtraBackup funcioni, voleu anul·lar els paràmetres que hi ha a la secció [mysqld], només cal que especifiqueu-los al fitxer de configuració de la secció [xtrabackup]. Com que es llegiran més tard, la seva prioritat serà més gran.

No cal afegir-hi cap paràmetre my.cnf. Tots els paràmetres necessaris es poden especificar a la línia d'ordres. En general, l'únic que es pot col·locar convenientment a la secció [xtrabackup] la seva my.cnf és un paràmetre dir_destinació, que per defecte especifica el directori on es col·locaran les còpies de seguretat. Però això és opcional.

Un exemple d'especificació del camí al directori amb una còpia de seguretat my.cnf:

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

Script de còpia de seguretat

Podeu utilitzar l'script següent per crear una còpia de seguretat:

#!/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

Què passa durant l'execució de l'script?

En primer lloc, esborrarem (esborrarem) el directori en el qual guardarem la còpia de seguretat:

rm -rf /mysql/backup.

A continuació, utilitzant la utilitat XtraBackup creeu una còpia de seguretat i deseu-la /mysql/backup/:

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

Anteriorment, vam crear un usuari a MySQL xtrabackup amb els privilegis requerits. Utilitzant el paràmetre target-dir especifiquem el directori on s'ha de desar la còpia de seguretat.

Un punt important!

Tingueu en compte la línia de guió:

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

Dades del catàleg /mysql/backup no són consistents fins que estiguin cuits. 

El fet és que es poden produir canvis durant la còpia de fitxers. Funcionament xtrabackup --prepare --target-dir=/mysql/backup fa que les dades de còpia de seguretat siguin perfectament coherents al llarg del temps.

Podeu realitzar l'operació de preparació de dades en qualsevol màquina. No cal fer-ho al servidor on es troba el SGBD d'origen. Podeu copiar la còpia de seguretat al servidor de destinació i preparar-la allà.

L'últim que fem és crear un arxiu en el qual col·loquem la nostra còpia de seguretat:

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

Restauració d'una còpia de seguretat 

Abans de poder restaurar una còpia de seguretat al servidor de destinació, les dades han de passar per una fase de preparació. Vegeu més amunt com fer-ho.

El procés de recuperació de dades és molt senzill. Heu d'extreure la còpia de seguretat de l'arxiu i substituir les dades són dades.

Com substituir les dades a datadir?

Considerem dues opcions.

Opció 1

Utilitzeu la utilitat XtraBackup. Heu d'especificar una opció --copiar

L'ordre següent transferirà la còpia de seguretat a són dades servidor de destinació:

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

Opció 2

Podeu fer-ho de manera diferent, prescindir de la utilitat XtraBackup.

Tot el que heu de fer és copiar la còpia de seguretat a són dades. Podeu fer-ho amb cp o rsync.

És important entendre que el procediment per restaurar una còpia de seguretat es redueix només a substituir el contingut del directori són dades.

Abans de començar a restaurar una còpia de seguretat al servidor de destinació, heu de:

  • Atura el servidor MySQL.

  • Esborra la carpeta són dades o moure el seu contingut a una altra ubicació. Catàleg són dades ha d'estar buit.

Després de completar la transferència de dades a són dades El servidor MySQL es pot iniciar.

Materials utilitzats

Documentació oficial Percona XtraBackup.

Font: www.habr.com

Compreu allotjament fiable per a llocs amb protecció DDoS, servidors VPS VDS 🔥 Compra allotjament web fiable amb protecció DDoS, servidors VPS VDS | ProHoster