Copias de seguridad en caliente con Percona XtraBackup en la aplicación WordPress de un clic

Tabla de contenido

  • Introducción
  • Prerrequisitos
  • Paso 1: crear un usuario del sistema no root
  • Paso 2: verifique el motor de almacenamiento
  • Paso 3: crear un usuario de base de datos para la copia de seguridad
  • Paso 4: Instale Percona XtraBackup
  • Paso 5: crear directorios de almacenamiento de respaldo
  • Paso 6: cree la primera copia de seguridad completa
  • Paso 7: cree las siguientes copias de seguridad incrementales
  • Paso 8: prepare los archivos de respaldo para restaurar la base de datos
  • Paso 9: Restaurar la base de datos
  • Pasos adicionales

Introducción

Percona XtraBackup es un programa gratuito basado en MySQL que se utiliza para realizar copias de seguridad en caliente. También es de código abierto. Con Percona XtraBackup, puede realizar copias de seguridad en caliente de la ejecución de bases de datos MySQL, MariaDB o Percona Server sin detener su servicio de base de datos o hacerlo de solo lectura. Esta es una característica crítica para muchos negocios en línea.

Para las bases de datos que utilizan motores de almacenamiento InnoDB, XtraDB y HailDB, Percona XtraBackup puede realizar copias de seguridad sin bloqueo. Para las bases de datos que usan los motores de almacenamiento MyISAM, Merge y Archive, Percona XtraBackup también puede realizar copias de seguridad pausando brevemente las escrituras al final del procedimiento de copia de seguridad.

En este artículo, le mostraré cómo instalar y usar Percona XtraBackup para realizar copias de seguridad en caliente completas e incrementales en un servidor Vultr basado en la aplicación WordPress One-Click. Realizaremos una copia de seguridad completa y dos copias de seguridad incrementales, y luego restauraremos la base de datos al estado de cada una de las tres copias de seguridad en consecuencia.

Prerrequisitos

Supongo que ha implementado una instancia de servidor One-Click WordPress Vultr desde cero y ha iniciado sesión como root, utilizando SSH.

Paso 1: crear un usuario del sistema no root

Por razones de seguridad, una práctica recomendada es crear otra cuenta de usuario con permisos de root, luego usarla para iniciar sesión y realizar sus operaciones diarias en el sistema. Todavía puede ejecutar casi todos los comandos de superusuario con el sudocomando.

1) Crear un nuevo usuario. Reemplace sysusercon su propio nombre de usuario.

useradd sysuser

2) Establezca la contraseña para su nuevo usuario. Reemplace sysusercon su propio nombre de usuario.

passwd sysuser

3) Otorgue permisos de root a su nuevo usuario.

visudo

Encuentra el párrafo a continuación.

## Allow root to run any commands anywhere
root     ALL=(ALL)     ALL

Agregue una fila directamente debajo de este párrafo, reemplácela sysusercon su propio nombre de usuario.

sysuser     ALL=(ALL)     ALL

Guardar y Salir.

:wq

4) Cambie a su nueva cuenta de usuario.

logout

Luego, use las credenciales del nuevo usuario para iniciar sesión desde la ventana de su terminal.

Paso 2: verifique el motor de almacenamiento

Por defecto, el inicio de sesión raíz de MySQL se guarda en el VPS en /root/.my.cnf. Muestre la contraseña en su terminal con el siguiente comando.

sudo cat /root/.my.cnf

Use la credencial que se muestra en la pantalla para iniciar sesión en la consola MySQL.

mysql -u root -p

En el shell de MySQL, ejecute lo siguiente.

SHOW DATABASES;

Todas las bases de datos MySQL se habrán mostrado en la pantalla. La base de datos denominada like wp5273512es la base de datos de WordPress que queremos respaldar. En el siguiente comando, reemplace wp5273512con el suyo propio:

USE wp5273512;

Verifique el motor de almacenamiento para cada mesa:

SHOW TABLE STATUS\G

Encontrará que todas las tablas en su base de datos MySQL de WordPress están utilizando el motor de almacenamiento InnoDB, que es perfecto para realizar copias de seguridad en caliente con Percona XtraBackup.

Para cualquier otra base de datos MySQL que use el motor de almacenamiento MyISAM, aún podemos hacer una copia de seguridad con Percona XtraBackup pausando brevemente las escrituras.

Paso 3: crear un usuario de base de datos para la copia de seguridad

Aún en el shell de MySQL, use los siguientes comandos para crear un usuario de base de datos dedicado para la copia de seguridad. Recuerde reemplazar el nombre de usuario xbusery la contraseña de la base de datos xbpasswdcon los suyos:

CREATE USER 'xbuser'@'localhost' IDENTIFIED BY 'xbpasswd';
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT, CREATE TABLESPACE, PROCESS, SUPER, CREATE, INSERT, SELECT ON *.* TO 'xbuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Los privilegios otorgados anteriormente son necesarios para la funcionalidad completa de Percona XtraBackup. Puede eliminar algunos de ellos para tener menos funcionalidad y mayor seguridad. Para obtener más detalles, consulte el sitio web oficial de Percona XtraBackup .

Paso 4: Instale Percona XtraBackup

Puede instalar Percona XtraBackup desde el repositorio RPM de Percona con bastante facilidad:

sudo yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
sudo yum install -y percona-xtrabackup

Paso 5: crear directorios de almacenamiento de respaldo

Primero, debe agregar un usuario sysuseral mysqlgrupo. Reemplace sysusercon su propio nombre de usuario.

sudo gpasswd -a sysuser mysql

Cree un directorio para almacenar copias de seguridad completas.

sudo mkdir -p /dbbackup/full/

Cree otro directorio para almacenar copias de seguridad incrementales.

sudo mkdir -p /dbbackup/inc/

Cambie el propietario de estos directorios a usuario sysusery grupo sysuser.

sudo chown -R sysuser:sysuser /dbbackup

Cierre sesión para poner en práctica estos cambios.

logout

Luego, inicie sesión sysusernuevamente.

Paso 6: cree la primera copia de seguridad completa

XtraBackup consiste principalmente en el programa XtraBackup y el innobackupexscript perl. Por lo general, puede usar la innobackupexsecuencia de comandos perl para realizar diversos procedimientos operativos por conveniencia.

Ingrese el siguiente comando para crear la primera copia de seguridad completa. Recuerde reemplazar el nombre de usuario de xbuserla base de datos , la contraseña del usuario de la base de datos xbpasswdy el directorio de respaldo completo /dbbackup/full/por los suyos.

sudo innobackupex --user=xbuser  --password=xbpasswd /dbbackup/full/

Con este comando ejecutado correctamente, verá el mensaje de confirmación "innobackupex: completado OK!" en la última línea de la salida.

Todos los archivos recién creados de esta copia de seguridad completa se almacenarán en un directorio con marca de tiempo en /dbbackup/full/. Por ejemplo, /dbbackup/full/2015-05-22_05-45-54.

Paso 7: cree las siguientes copias de seguridad incrementales

Ingrese el siguiente comando para crear la primera copia de seguridad incremental. Sustituya las variables en el comando en consecuencia.

sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/full/2015-05-22_05-45-54 /dbbackup/inc/

Una vez más, verá "innobackupex: completado OK!" al final de la salida cuando el comando se ejecuta con éxito. Los archivos de copia de seguridad se almacenarán en un directorio con marca de tiempo en /dbbackup/inc/.

Ingrese el siguiente comando para crear la segunda copia de seguridad incremental. Reemplace las variables en el comando en consecuencia.

sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/inc/2015-05-22_05-48-12 /dbbackup/inc/

Una vez que tenga éxito, verá el mensaje "innobackupex: completado ¡OK!" mensaje de nuevo. Verifique /dbbackup/inc/nuevamente la carpeta para ver los archivos de respaldo.

Paso 8: prepare los archivos de respaldo para restaurar la base de datos

Todos los archivos de respaldo de la base de datos deben prepararse antes de que puedan usarse para restaurar la base de datos.

Nota : Antes de realizar los procedimientos de preparación y restauración, es mejor que guarde una copia de todo el directorio de respaldo (como /dbbackup/) en otro lugar en caso de que cualquier daño al respaldo de los archivos sea causado por error.

En cada directorio de respaldo, hay un archivo llamado xtrabackup_checkpointsque contiene el tipo de respaldo y los números de secuencia de registro inicial y final ( from_lsny to_lsn). Puede usar esos números para aclarar su estrategia de restauración de la base de datos. Mira los ejemplos a continuación.

En el xtrabackup_checkpointsarchivo de la primera copia de seguridad completa, tengo:

backup_type = full-backuped
from_lsn = 0
to_lsn = 2932478

En el xtrabackup_checkpointsarchivo de la primera copia de seguridad incremental, tengo:

backup_type =incremental
from_lsn = 2932478
to_lsn = 2970177

En el xtrabackup_checkpointsarchivo de la segunda copia de seguridad incremental, tengo:

backup_type = incremental
from_lsn = 2970177
to_lsn = 3004672

En resumen, debe abordar cada copia de seguridad con el orden creciente de lsn. Si la secuencia lsn está incompleta o desordenada, puede perder datos.

Nota : Los siguientes comandos involucran tres directorios, reemplácelos con los suyos.

Para restaurar la base de datos al estado de la primera copia de seguridad completa, debe preparar los archivos de copia de seguridad con el siguiente comando:

sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

Para restaurar la base de datos al estado de la primera copia de seguridad incremental, debe preparar los archivos de copia de seguridad con los siguientes comandos:

sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

Para restaurar la base de datos al estado de la segunda copia de seguridad incremental, debe preparar los archivos de copia de seguridad con los siguientes comandos:

sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-51-32
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

Notas :

Para las copias de seguridad incrementales, debe usar la --redo-onlyopción en todas las copias de seguridad incrementales, excepto la última. Sin embargo, el uso de esta opción en la última copia de seguridad incremental sigue siendo inofensivo para la consistencia de sus datos; solo causará algún retraso debido a la reversión de la base de datos.

El último comando de cada escenario incremental es opcional pero recomendado, porque acelerará la restauración.

Después de la preparación, los cambios registrados en los archivos de copia de seguridad incrementales se agregarán a los archivos de copia de seguridad completos base preparados, por lo que siempre debe usar los archivos de copia de seguridad completos preparados para restaurar su base de datos, sin importar si elige una copia de seguridad completa o una copia de seguridad incremental.

Paso 9: Restaurar la base de datos

Antes de que pueda restaurar su base de datos, debe detener el servicio de la base de datos.

sudo service mysqld stop

También necesita vaciar el directorio de la base de datos. Puede mover los archivos de la base de datos actual a otro lugar por precaución.

sudo mkdir /currentdb
sudo mv /var/lib/mysql/* /currentdb

Restaura tu base de datos con los archivos preparados de "copia de seguridad completa".

sudo innobackupex --copy-back /dbbackup/full/2015-05-22_05-45-54

Debido a que el procedimiento de restauración modificará el propietario del directorio de la base de datos, debe volver a cambiarlo mysql:mysqlpara que sea operativo.

sudo chown -R mysql:mysql /var/lib/mysql

Reinicie el servicio de la base de datos.

sudo service mysqld start

Eso es. En este punto, puede visitar su sitio de WordPress para verificar que el proceso de restauración fue exitoso.



Leave a Comment

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición

ReactOS: ¿Es este el futuro de Windows?

ReactOS: ¿Es este el futuro de Windows?

ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

¿Qué es un sistema de archivos de diario y cómo funciona?

¿Qué es un sistema de archivos de diario y cómo funciona?

Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.

Singularidad tecnológica: ¿un futuro lejano de la civilización humana?

Singularidad tecnológica: ¿un futuro lejano de la civilización humana?

A medida que la ciencia evoluciona a un ritmo rápido, asumiendo muchos de nuestros esfuerzos, también aumentan los riesgos de someternos a una singularidad inexplicable. Lea, lo que la singularidad podría significar para nosotros.

Una mirada a 26 técnicas analíticas de Big Data: Parte 1

Una mirada a 26 técnicas analíticas de Big Data: Parte 1

Una mirada a 26 técnicas analíticas de Big Data: Parte 1

El impacto de la inteligencia artificial en la atención médica 2021

El impacto de la inteligencia artificial en la atención médica 2021

La IA en la salud ha dado grandes pasos desde las últimas décadas. Por tanto, el futuro de la IA en el sector sanitario sigue creciendo día a día.