Notícias
Novos modelos de linguagem da API Serverspace GPT
JH
Joe Harris
dezembro 1, 2020
Atualizado janeiro 31, 2025

Como fazer backup do MySQL no CentOS 8 com o Bacula

Backup CentOS Linux

examinamos brevemente em que consiste o Bacula. Neste tutorial, configuraremos um processo regular de backup de banco de dados MySQL usando o Bacula no CentOS. Se você quiser configurar backups de um servidor CentOS 8 remoto, leia este artigo. Depois de concluir essas configurações, você pode simplesmente adicionar as configurações deste tutorial e obter um backup do banco de dados MySQL de um servidor remoto.

Instalação de pacotes

Vamos instalar todos os pacotes necessários.

dnf install bacula-director bacula-storage bacula-console bacula-client

Configuração do MySQL

Altere o sistema de gerenciamento de banco de dados padrão para MySQL, se ele ainda não estiver definido.

alternatives --config libbaccats.so
There are 3 programs which provide 'libbaccats.so'.
Selection Command
-----------------------------------------------
1 /usr/lib64/libbaccats-mysql.so
...

Selecione 1.
Conecte-se ao MySQL.
[/passo]

mysql -u root -p

Crie um banco de dados e um usuário para o Bacula.
[/passo]

create database bacula;
create user bacula@localhost identified by 'password';
grant all privileges on bacula.* to bacula@'localhost';
flush privileges;
exit

Execute este script para criar a estrutura da tabela.
[/passo]

/usr/libexec/bacula/make_mysql_tables -p

Para a tarefa de backup, crie um novo usuário e atribua a ele somente os direitos de acesso necessários.

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

Preparação de scripts

Para tornar o Bacula capaz de criar backups de um banco de dados MySQL, você deve primeiro fazer o dump. Usaremos a capacidade do Bakula de executar scripts personalizados antes e depois do Job de backup. Vamos criar um script para criar um dump do banco de dados.

nano /etc/bacula/pre-mysql.sh

Insira esses comandos nele. Observe que a senha do usuário dump deve ser inserida após o parâmetro -p sem espaço e altere database_name para o nome do banco de dados 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

E um script para limpar o espaço em disco após o backup.

nano /etc/bacula/post-mysql.sh

Insira as seguintes linhas aqui.

#!/bin/bash
# Clearing the folder
rm -rf /opt/mysql-backup/

Torne os scripts executáveis.

chmod +x /etc/bacula/pre-mysql.sh
chmod +x /etc/bacula/post-mysql.sh

Configuração do Bacula

Abra o arquivo /etc/bacula/bacula-dir.conf e defina a senha do usuário MySQL bacula no parâmetro dbpassword da seção Catalog.

Catalog {
Name = MyCatalog
dbname = "bacula"; dbuser = "bacula"; dbpassword = "password"
}

Insira as seções com as configurações de backup do MySQL aqui.

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 e ative os serviços do Bacula.
[/passo]

systemctl enable --now bacula-dir.service
systemctl enable --now bacula-fd.service
systemctl enable --now bacula-sd.service

Agora, os backups do banco de dados selecionado serão feitos no horário especificado.
[/passo]

Avaliação:
5 fora de 5
Аverage rating : 5
Avaliado por: 1
CEP 01311-930 São Paulo Avenida Paulista, nº 1765, 7º andar, Cj. 72, CV 10172, Bela Vista
+ 55 11 5118-1047
ITGLOBAL.COM BR LTDA
Usamos cookies para melhorar sua experiência no Serverspace. Ao continuar a navegar em nosso site, você concorda com o Uso de Cookies e com a Política de Privacidade.