Cómo hacer una copia de seguridad MySQL on CentOS 8 con bacula
Ya lo hemos hecho brevemente examinó en qué consiste el Bakula. En este tutorial, configuraremos un MySQL proceso de copia de seguridad de la base de datos usando Bacula en CentOS. Si desea configurar copias de seguridad de un control remoto CentOS 8 servidor, lee este artículo. Después de completar esta configuración, simplemente puede agregar la configuración de este tutorial y obtener una copia de seguridad del MySQL base de datos desde un servidor remoto.
En Serverspace usted puede crear un servidor con la aplicación ya instalada "MySQL".
Instalación de paquetes
Instalemos todos los paquetes necesarios.
dnf install bacula-director bacula-storage bacula-console bacula-client
MySQL configuración
Cambie el sistema de administración de base de datos predeterminado a MySQL si aún no está configurado.
alternatives --config libbaccats.so
There are 3 programs which provide 'libbaccats.so'.
Selection Command
-----------------------------------------------
1 /usr/lib64/libbaccats-mysql.so
...
Seleccione 1.
Conectar a MySQL.
mysql -u root -p
Cree una base de datos y un usuario para Bacula.
create database bacula;
create user bacula@localhost identified by 'password';
grant all privileges on bacula.* to bacula@'localhost';
flush privileges;
exit
Ejecute este script para crear la estructura de la tabla.
/usr/libexec/bacula/make_mysql_tables -p
Para la tarea de copia de seguridad, cree un nuevo usuario y asígnele solo los derechos de acceso necesarios.
mysql -u root -p
create user dump@localhost identified by 'password';
grant select, lock tables on *.* to dump@localhost;
grant process on *.* to dump@localhost;
flush privileges;
exit
Preparando guiones
Para que Bacula sea capaz de crear copias de seguridad de un MySQL base de datos, primero debe volcarlo. Usaremos la capacidad de Bakula para ejecutar scripts personalizados antes y después del trabajo de copia de seguridad. Vamos a crear un script para crear un volcado de base de datos.
nano /etc/bacula/pre-mysql.sh
Inserte estos comandos en él. Tenga en cuenta que el arrojar La contraseña de usuario debe introducirse después de la -p parameter sin un space y cambio nombre de la base de datos al nombre de la base de datos de destino.
#!/bin/bash
# Preparation of the folder
rm -rf /opt/mysql-backup/
mkdir -p /opt/mysql-backup/
# Backup
mysqldump -u dump -ppassword database_name > /opt/mysql-backup/dump$(date +%Y-%m-%d_%H:%M).sql
Y un script para borrar el disco. space después de la copia de seguridad.
nano /etc/bacula/post-mysql.sh
Inserte aquí las siguientes líneas.
#!/bin/bash
# Clearing the folder
rm -rf /opt/mysql-backup/
Haga que los scripts sean ejecutables.
chmod +x /etc/bacula/pre-mysql.sh
chmod +x /etc/bacula/post-mysql.sh
Configuración de Bacula
Abra el archivo /etc/bacula/bacula-dir.conf y configure la contraseña para MySQL bacula usuario en el contraseña de base de datos paraméter de la Catálogo .
Catalog {
Name = MyCatalog
dbname = "bacula"; dbuser = "bacula"; dbpassword = "password"
}
Inserte las secciones con MySQL configuración de copia de seguridad aquí.
FileSet {
Name = MySQLFileSet
Include {
Options {
signature = MD5
}
File = /opt/mysql-backup
}}
Schedule {
Name = MySQL
Run = Full daily at 03:00
}
Job {
Name = "MySQLBackup"
JobDefs = "DefaultJob"
Enabled = yes
Level = Full
FileSet = MySQLFileSet
Schedule = MySQL
Storage = File1
ClientRunBeforeJob = "/etc/bacula/pre-mysql.sh"
ClientRunAfterJob = "/etc/bacula/post-mysql.sh"
Write Bootstrap = "/var/spool/bacula/%c.bsr"
}
Inicie y habilite los servicios de Bacula.
systemctl enable --now bacula-dir.service
systemctl enable --now bacula-fd.service
systemctl enable --now bacula-sd.service