Percona XtraBackup é unha utilidade para copias de seguridade de bases de datos quente MySQL.
Ao crear unha copia de seguridade de datos, non se bloquea ningunha táboa e o seu sistema segue funcionando sen restricións.
XtraBackup 2.4 pode crear copias de seguridade das táboas InnoDB, XtraDB и MyISAM nos servidores MySQL 5.11, 5.5, 5.6 e 5.7, e tamén no servidor percona para MySQL с XtraDB.
Para traballar MySQL 8.x debe utilizarse a versión XtraBackup 8.x. Este artigo só falará XtraBackup 2.4.
A principal vantaxe XtraBackup é que esta utilidade é axeitada para crear copias de seguridade de ficheiros con alta carga servidores, así como para sistemas cun baixo número de transaccións.
Se o tamaño total das súas bases de datos MySQL é importante (decenas de gigabytes), entón a utilidade estándar mysqldump non che permitirá crear rapidamente unha copia de seguranza e restaurar o volcado levará moito tempo.
Instalación
Instalación XtraBackup dende o repositorio apto Percona.
Executa os seguintes comandos secuencialmente:
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-242. Despois da instalación, execute o comando xtrabackup -v. Xa que, é importante asegurarse de que a utilidade funciona correctamente no servidor. Como resultado, aparecerá algo como isto na pantalla:
xtrabackup: argumentos do servidor recoñecidos: - 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ón 2.4.20 baseada no servidor MySQL 5.7.26 Linux (x8664) (ID de revisión: c8b4056)

Dereitos de acceso, permisos e privilexios
XtraBackup debería ser capaz de:
Conéctate ao teu servidor MySQL.
Ter dereitos de acceso ao directorio datadir.
Ao crear unha copia de seguridade, teña dereitos de escritura sobre o parámetro especificado destino-dir catálogo.
Que é datadir?
datadir é o directorio onde está o servidor de base de datos MySQL almacena datos. Todas as bases de datos, todas as táboas están situadas alí. Na maioría das distribucións Linux Por defecto, este directorio é /var/lib/mysql.
Que é o directorio target-dir?
destino-dir - Este é o directorio onde se gardará a copia de seguridade.
O usuario da base de datos necesita os seguintes dereitos de acceso ás táboas e bases de datos para facer unha copia de seguranza:
RECARGAR e BLOQUEAR TÁBOAS
CLIENTE DE REPLICACIÓN
CREAR UN ESPAZO DE TABLAS
PROCESO
SUPER
CREAR
inserción
SELECT
Configuración
Configuración XtraBackup feito usando opcións que se comportan igual que as opcións estándar de MySQL.
O que significa isto?
Os parámetros de configuración pódense especificar na liña de comandos ou no ficheiro de configuración do DBMS, por exemplo en /etc/my.cnf.
A utilidade XtraBackup le as particións despois do lanzamento [mysqld] и [xtrabackup] dos ficheiros de configuración de MySQL. Isto faise para que a utilidade poida usar a configuración do seu DBMS sen ter que especificar manualmente os parámetros durante cada copia de seguridade.
Por exemplo, o valor datadir e algúns parámetros InnoDB Conseguimos XtraBackup da configuración do teu DBMS.
Se para que XtraBackup funcione queres anular os parámetros que están na sección [mysqld], entón só especifícaos no ficheiro de configuración da sección [xtrabackup]. Dado que se lerán máis adiante, a súa prioridade será maior.
Non tes que engadir ningún parámetro meu.cnf. Todos os parámetros necesarios pódense especificar na liña de comandos. Normalmente o único que se pode colocar convenientemente na sección [xtrabackup] o teu meu.cnf é un parámetro dir_destino, que por defecto especifica o directorio onde se colocarán as copias de seguridade. Pero isto é opcional.
Un exemplo de especificación do camiño ao directorio cunha copia de seguridade meu.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/Script de copia de seguridade
Podes usar o seguinte script para crear unha copia de seguridade:
#!/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/backupQue ocorre durante a execución do script?
En primeiro lugar, borramos (borramos) o directorio no que gardamos a copia de seguridade:
rm -rf /mysql/backup.
Despois, usando a utilidade XtraBackup crea unha copia de seguridade e gárdaa /mysql/backup/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backupAnteriormente, creamos un usuario en MySQL xtrabackup cos privilexios necesarios. Usando o parámetro target-dir especificamos o directorio onde se debe gardar a copia de seguridade.
Un punto importante!
Teña en conta a liña de guión:
xtrabackup --prepare --target-dir=/mysql/backup
Datos do catálogo /mysql/backup non son consistentes ata que estean cocidos.
O feito é que se poden producir cambios ao copiar ficheiros. Operación xtrabackup --prepare --target-dir=/mysql/backup fai que os datos de copia de seguridade sexan perfectamente consistentes ao longo do tempo.
Pode realizar a operación de preparación de datos en calquera máquina. Non é necesario facelo no servidor onde se atopa o DBMS de orixe. Pode copiar a copia de seguridade no servidor de destino e preparala alí.
O último que facemos é crear un arquivo no que colocamos a nosa copia de seguridade:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backupRestaurando unha copia de seguridade
Antes de poder restaurar unha copia de seguridade no servidor de destino, os datos deben pasar por unha fase de preparación. Vexa arriba para saber como facelo.
O proceso de recuperación de datos é moi sinxelo. Debe extraer a copia de seguridade do arquivo e substituír os datos datadir.
Como substituír os datos en datadir?
Consideremos dúas opcións.
Opción 1
Use a utilidade XtraBackup. Debe especificar unha opción --copia-back.
O seguinte comando transferirá a copia de seguridade a datadir servidor de destino:
xtrabackup --copy-back --target-dir=/mysql/backupOpción 2
Podes facelo doutro xeito, prescindir da utilidade XtraBackup.
Todo o que tes que facer é copiar a copia de seguranza datadir. Podes facelo con cp ou rsync.
É importante entender que o procedemento para restaurar unha copia de seguridade redúcese só a substituír o contido do directorio datadir.
Antes de comezar a restaurar unha copia de seguridade no servidor de destino, debes:
Detén o servidor MySQL.
Limpar o cartafol datadir ou mover o seu contido a outro lugar. Catálogo datadir debe estar baleiro.
Despois de completar a transferencia de datos a datadir O servidor MySQL pódese iniciar.
Materiais utilizados
.
Fonte: www.habr.com
