prefacio
En el proceso de copia de seguridad de MySQL y creación de bases de datos esclavas, usamos principalmente mysqldump para bases de datos relativamente pequeñas, lo cual es simple y conveniente. Pero cuando crea una biblioteca esclava en una base de datos grande y el host de la base de datos no tiene un buen almacenamiento para cumplir con los requisitos de respaldo, debe usar innobackupex para ayudarlo a hacer una copia de seguridad, e incluso puede usarlo para construir un esclavo MySQL biblioteca, que es muy simple.
1. Copia de seguridad y recuperación de MySQL innobackupex
1.1 Comprimir xbsteam para empaquetar y comprimir para copia de seguridad y recuperación
- respaldo
innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=root --stream=xbstream --compress /data/backup/ > /data/backup/full.xbstream
- descomprimir xbstream
xbstream -x < /data/backup/full.xbstream -C /data/backup_qp/
- descomprimir qp
innobackupex --descomprimir /datos/backup_qp
- eliminar archivo qp
encontrar /datos/copia de seguridad -nombre "*.qp" | xargs rm
Nota: si el informe no puede encontrar qpress, primero debe instalarlo
qpress
1.2 Copia de seguridad y restauración usando tar gzip
- respaldo
innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=root --stream=tar /data/backup/ |gzip > /data/backup/full.tar.gz
- abrir la cremallera
tar -zxvf /data/backup/full.tar.gz -C /data/backup_targz
1.3 Copia de seguridad y restauración usando tar bzip
- respaldo
innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=root --stream=tar /data/backup/ |bzip2 > /data/backup/full.tar.bz2
- abrir la cremallera
tar -jxvf /data/backup/full.tar.gz -C /data/backup_tarbz
Los tamaños de varios archivos de respaldo son los siguientes. Se encontró que el método de compresión de bz2 es el más pequeño. Todavía hay una gran diferencia en el espacio ocupado por el comprimido y el sin comprimir. Se recomienda usar el método comprimido.
2. MySQL se construye a partir de la biblioteca
2.1, copia de seguridad de xbsteam way y luego copiar manualmente al host remoto
ref: Use innobackupex para construir la biblioteca esclava de MySQL
2.2, paquete en modo xbsteam y copia de seguridad en el host remoto a través de ssh y descompresión
- realizar copia de seguridad
innobackupex --defaults-file=/etc/my.cnf --user=root --password='root' --stream=xbstream /tmp | ssh [email protected] "/app/percona/percona-xtrabackup-2.4.3-Linux-x86_64/bin/xbstream -x -C /data/mysql/data"
- Si encuentra que innobackupex ha estado esperando FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS, puede eliminar otras conexiones
mysql -e "mostrar lista de procesos" | grep -v -i -e raíz -e id | awk '{printf "matar "$1";"}' | mysql
- El registro es el siguiente:
161219 20:11:21 [00] Streaming xtrabackup_binlog_info 161219 20:11:21 [00] ...hecho 161219 20:11:21 Ejecutando FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS... xtrabackup: El último punto de control (para incremental): ' 6499141903477' xtrabackup: deteniendo el subproceso de copia de registros. .161219 20:11:21 >> registro escaneado hasta (6499141993412) 161219 20:11:23 Ejecutando UNLOCK TABLES 161219 20:11:23 Todas las tablas desbloqueadas 161219 20:11:23 [00] Streaming ib_buffer_pool a 161219 20:1 1 :23 [00] ...hecho 161219 20:11:23 Copia de seguridad creada en el directorio '/tmp' Posición binlog de MySQL: nombre de archivo 'mysql-bin.001249', posición '151576713', GTID del último cambio '4d814c80-9dae -11e6-9711-005056bd55e1:1-113121904, 5f7b59b2-3e74-11e6-aa1d-005056bd55e1:27485200-29545503, db6a8610-9b3e-11e6-8730-0050 56bd2c74:1-221265164 ' 161219 20:11:23 [00] Transmisión de copia de seguridad-my.cnf 161219 20:11:23 [00] ...hecho 161219 20:11:23 [00] Streaming xtrabackup_info 161219 20:11:23 [00] ... done xtrabackup: se copió el registro de transacciones de lsn (6498376046758) a (6499141993412). 161219 20:11:24 completado ¡OK!
- Aplicar rehacer a la base de datos en espera
innobackupex --apply-log .
Nota: si no se puede encontrar
xbsream
, debe especificar una ruta absoluta o configurar la variable de entorno de ssh para permitir que el servidor SSH use una variable de entorno personalizada-winter.zhang-ChinaUnix Blog
2.3 Empaquetar y comprimir en modo xbsteam (qpress) hacer una copia de seguridad en un host remoto a través de ssh y descomprimir
- realizar copia de seguridad
innobackupex --defaults-file=/etc/my.cnf --user=root --password='root' --stream=xbstream --compress /tmp | ssh [email protected] "/app/percona/percona-xtrabackup-2.4.3-Linux-x86_64/bin/xbstream -x -C /data/mysql/data"
- Descompresión
Si la versión de xtrabackup es superior a la 2.1.4, puede descomprimirla directamente de esta formainnobackupex --descomprimir /copia de seguridad/bk_compress
- Aplicar rehacer a la base de datos en espera
innobackupex --apply-log .