GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Realice copias de seguridad activas de bases de datos MySQL con Percona XtraBackup en Ubuntu 16.04

Percona XtraBackup es una utilidad de copia de seguridad de código abierto para MySQL. Admite todas las versiones de MySQL como Percona Server, MariaDB y (Oracle) MySQL. Percona Xtrabackup realiza un Hot Backup para MySQL. Hot Backup significa crear una copia de seguridad de un servidor MySQL mientras se ejecuta sin tiempo de inactividad.

En este tutorial, le mostraré cómo crear una copia de seguridad de la base de datos MySQL con la herramienta OpenSource Percona XtraBackup en Ubuntu 16.04 (Xenial Xerus). Usaré MariaDB como servidor de la base de datos para realizar la copia de seguridad, pero la misma configuración también funcionará para los servidores MySQL.

Requisito previo

  • Servidor Ubuntu 16.04 - (Xenial Xerus)
  • Servidor MySQL o MariaDB
  • Privilegios de raíz

Paso 1:instalar Percona XtraBackup

El primer paso es instalar el último software Percona XtraBackup en nuestro servidor Ubuntu. Inicie sesión en su servidor por SSH (o en la consola):

ssh [email protected]
TYPE YOUR PASSWORD

Percona XtraBackup está disponible en el repositorio de Ubuntu, pero queremos usar la última versión del repositorio de Percona.

Agregue el repositorio de Percona descargando el paquete deb de la web e instálelo con el comando dpkg:

wget https://repo.percona.com/apt/percona-release_0.1-3.$(lsb_release -sc)_all.deb
sudo dpkg -i percona-release_0.1-3.$(lsb_release -sc)_all.deb

A continuación, actualice el repositorio e instale Ppercona XtraBackup 2.4 (la última versión en este momento):

sudo apt-get update
sudo apt-get install percona-xtrabackup-24

Percona XtraBackup está instalado.

Paso 2:configurar el usuario y el directorio de copia de seguridad

Para realizar la copia de seguridad en caliente, necesitamos crear un nuevo usuario de mysql con privilegios y permisos especiales. En este tutorial, usaré MariaDB 10.0 como servidor de base de datos. Si aún no ha instalado una base de datos compatible con MySQL, puede instalarla con el siguiente comando:

sudo apt-get install mariadb-server mariadb-client

Establezca una contraseña segura para el usuario root con este comando:

mysql_secure_installation

Si MariaDB está instalado, acceda al shell de MariaDB/MySQL como usuario raíz con el comando de cliente mysql:

mysql -u root -p
TYPE MySQL PASSWORD

Cree un nuevo usuario llamado 'bekupuser ' con la contraseña 'micontraseña ' (¡elija una contraseña segura para su servidor!):

CREATE USER 'bekupuser'@'localhost' IDENTIFIED BY 'mypassword';

Otorgue al usuario los siguientes privilegios:'RECARGAR, PROCESAR, BLOQUEAR TABLAS, CLIENTE DE REPLICACIÓN'.

GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'bekupuser'@'localhost';
FLUSH PRIVILEGES;
exit

A continuación, cree un nuevo directorio para almacenar los archivos de copia de seguridad de MySQL:

mkdir -p /data/backups/mysql/

Se han creado el nuevo usuario de respaldo y un directorio de respaldo.

Paso 3:realizar una copia de seguridad con Innobackupex

Innobackupex es un contenedor de secuencias de comandos Perl para el programa xtrabackup. Es una versión parcheada del script innobackup proporcionado por Oracle, distribuido con la herramienta InnoDB Backup. Innobackupex proporciona respaldo para una instancia de base de datos MySQL completa, usando xtrabackup en combinación con xbstream y xbcrypt.

En este paso, crearemos y prepararemos una copia de seguridad completa para la instancia de MySQL.

A. Crea una copia de seguridad con Innobackupex

En el paso 2, creamos un nuevo directorio para la copia de seguridad y agregamos un nuevo usuario de copia de seguridad de mysql. Los usaremos ahora para crear una copia de seguridad con el comando innobackupex.

Cree una copia de seguridad de MySQL con innobackupex en el nuevo directorio '/data/backups/my_backup':

innobackupex --user=bekupuser  --password=mypassword --no-timestamp /data/backups/my_backup

Nota:

--usuario =usuario con privilegios de copia de seguridad necesarios (paso 2).

--contraseña =contraseña del usuario de respaldo.

--sin marca de tiempo =deshabilitar la creación de un nuevo subdirectorio con marca de tiempo en el directorio raíz de respaldo.

/datos/copias de seguridad/mi_copia de seguridad =directorio para la copia de seguridad, se creará automáticamente durante el proceso de copia de seguridad. Si el directorio existe, recibirá un mensaje de error.

Otra opción:

mkdir -p /data/backups/my_backup2

innobackupex --user=bekupuser --password=mypassword /data/backups/my_backup2

or

innobackupex --user=bekupuser --password=mypassword /data/backups/

Nota:

Si no hay un directorio 'my_backup2 ', obtendrá su directorio basado en 'timestamp ' formato.

Resultados:

B. Prepare una copia de seguridad completa con Innobackupex

Después de crear una nueva copia de seguridad, los datos no están listos para una restauración. Hay un paso más para que los datos estén listos para ser restaurados. Necesitamos la 'etapa de preparación' para poder restaurar los datos.

Prepare la copia de seguridad usando innobackupex con la opción --apply-log al directorio de copia de seguridad '/data/backups/my_backup ':

innobackupex --apply-log /data/backups/my_backup

Asegúrese de que el proceso se haya completado sin errores antes de continuar.

Si tiene suficiente memoria y una base de datos grande, puede usar la opción --use-memory=memorynumber para decirle a innobackupex cuánta memoria puede usar:

innobackupex --apply-log --use-memory=4G /data/backups/my_backup

Los datos están listos para ser restaurados ahora. Podemos restaurarlo en el mismo servidor o en otro servidor que esté ejecutando MariaDB.

Paso 4:restaurar la copia de seguridad completa con Innobackupex

En este paso, restauraremos la instancia de MySQL con innobackupex.

Antes de restaurar la instancia de MySQL, debemos detener el proceso de MySQL con el comando systemctl (el proceso de MariaDB se llama mysql):

systemctl stop mysql

Haga una copia de seguridad del antiguo directorio de datos de MySQL:

mkdir ~/mysql_old/
mv /var/lib/mysql/* ~/mysql_old/

A continuación, restaure la instancia de mysql desde la copia de seguridad completa con innobackupex:

innobackupex --copy-back /data/backups/my_backup

Cuando vea el resultado 'innobackupex:completado OK ', entonces ha restaurado con éxito su instancia de MySQL.

Ahora cambie el propietario del directorio de datos MySQL al usuario mysql y vuelva a iniciar el servicio:

chown -R mysql:mysql /var/lib/mysql
systemctl start mysql

La instancia de MySQL se ha restaurado correctamente con percona-xtrabackup.


Ubuntu
  1. Instalar y comenzar con MySQL Workbench en Ubuntu

  2. Ubuntu 20.04:instalación de WordPress con Nginx

  3. Cómo instalar Nginx con PHP5 y MySQL en Ubuntu 11.10

  4. Cómo instalar Mattermost con MySQL en Ubuntu 14.04 y Debian 8

  5. Cómo crear una copia de seguridad de bases de datos MySQL usando mysqldump en Ubuntu 20.04

Alojamiento virtual con vsftpd y MySQL en Ubuntu 12.10

Cómo hacer una copia de seguridad de tu escritorio Ubuntu con DejaDup

Instalación de Nginx con compatibilidad con PHP5 y MySQL en Ubuntu 8.10

Cómo instalar Drupal 7 con Apache en Ubuntu 14.04

Instale WordPress con LEMP Stack en Ubuntu 20.04

Instale WordPress con LEMP Stack en Ubuntu 20.04