Executando verificação de segurança...
8

Configurando Logs Binários, Fazendo Backups e Restaurando no MariaDB com Docker

Este artigo fornece um guia passo a passo para configurar logs binários no MariaDB usando Docker, realizar backups consistentes e restaurar esses backups, incluindo a opção de filtrar por banco de dados específico.

Pré-requisitos

  • Docker e Docker Compose instalados.
  • Conhecimento básico de Docker e MariaDB.
  • Acesso ao terminal ou linha de comando.

Passos

1. Configurar Logs Binários no MariaDB com Docker

Criar o arquivo docker-compose.yml

version: '3.8'

services:
  mariadb:
    image: mariadb:10.1.48
    container_name: mariadb
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root_password
      MYSQL_DATABASE: meu_banco_de_dados
      MYSQL_USER: my_user
      MYSQL_PASSWORD: my_password
    volumes:
      - mariadb_data:/var/lib/mysql
      - ./my_custom.cnf:/etc/mysql/conf.d/my_custom.cnf
      - mariadb_logs:/var/log/mysql
    ports:
      - "3306:3306"

volumes:
  mariadb_data:
  mariadb_logs:

Criar o arquivo de configuração my_custom.cnf

[mysqld]
log-bin=/var/log/mysql/mariadb-bin
binlog-format=row
server-id=1
expire_logs_days=7
max_binlog_size=100M

2. Iniciar o MariaDB com Docker Compose

docker-compose up -d

3. Criar o Banco de Dados e Inserir Dados

Conectar ao MariaDB

docker exec -it mariadb mysql -u root -proot_password

Criar o Banco de Dados

CREATE DATABASE meu_banco_de_dados;

Usar o Banco de Dados e Criar a Tabela

USE meu_banco_de_dados;

CREATE TABLE clientes (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(100),
    email VARCHAR(100),
    telefone VARCHAR(15)
);

INSERT INTO clientes (nome, email, telefone) VALUES
('João Silva', '[email protected]', '123456789'),
('Maria Oliveira', '[email protected]', '987654321'),
('Pedro Santos', '[email protected]', '456789123');

4. Fazer Backup Completo do Banco de Dados

Comando para Fazer Backup Completo

mysqldump --all-databases --master-data=2 --single-transaction > backup.sql

5. Encontrar Posição do Log Binário no Backup

Abra o arquivo de backup (backup.sql) e procure pela linha que contém o comando CHANGE MASTER TO. Esta linha indicará o arquivo de log binário e a posição no log binário até onde os dados do backup estão consistentes.

Por exemplo, você verá algo assim no início do arquivo de backup:

-- Position to start replication or point-in-time recovery from
--
-- CHANGE MASTER TO MASTER_LOG_FILE='mariadb-bin.000003', MASTER_LOG_POS=107;

Esta linha indica que o backup inclui todas as transações até a posição 107 no arquivo de log binário mariadb-bin.000003.

6. Restaurar Backup Completo e Aplicar Logs Binários

Passos para Restaurar o Backup

  1. Pare o servidor MariaDB

    docker stop mariadb
    
  2. Remova os dados atuais

    docker volume rm mariadb_data
    
  3. Inicie o servidor novamente

    docker start mariadb
    
  4. Restaure o backup completo

    mysql -u usuario -p < backup.sql
    
  5. Aplique os logs binários

    mysqlbinlog --start-position=107 /var/log/mysql/mariadb-bin.000003 | mysql -u usuario -p
    mysqlbinlog /var/log/mysql/mariadb-bin.000004 | mysql -u usuario -p
    

7. Restaurar Apenas um Banco de Dados Específico dos Logs Binários

Fazer Backup Completo do Banco de Dados Específico

mysqldump -u usuario -p --databases meu_banco_de_dados --master-data=2 --single-transaction > meu_banco_de_dados_backup.sql

Restaurar o Backup Completo do Banco de Dados Específico

mysql -u usuario -p < meu_banco_de_dados_backup.sql

Aplicar os Logs Binários Filtrando por Banco de Dados

mysqlbinlog --database=meu_banco_de_dados --start-position=107 /var/log/mysql/mariadb-bin.000003 | mysql -u usuario -p
mysqlbinlog --database=meu_banco_de_dados /var/log/mysql/mariadb-bin.000004 | mysql -u usuario -p

Conclusão

Seguindo este artigo, você configurou logs binários no MariaDB usando Docker, fez backups consistentes e restaurou esses backups, filtrando por banco de dados específico. Esse processo garante que seus dados estejam seguros e que você possa restaurá-los de maneira eficiente.

Carregando publicação patrocinada...
2

Cara, esse tutorial tá show de bola, super completo e bem explicado. Quem tá mexendo com Docker e MariaDB vai tirar muito proveito disso. Só uma dica rápida pra quem for seguir o passo a passo: prestar atenção nos detalhes das configurações, especialmente no arquivo docker-compose.yml e no my_custom.cnf, porque qualquer deslize pode dar dor de cabeça mais tarde.

Uma coisa que eu adicionaria é a importância de testar o backup e a restauração periodicamente. Nada pior do que precisar do backup e descobrir que não funciona bem na hora H, né?

E, pra quem tá começando, não esqueçam de fazer um "docker-compose down" antes de qualquer manutenção ou alteração nos volumes, só pra garantir que não vai perder nada importante no processo.

Ótimo trabalho, harissonmatos! Continuem compartilhando conhecimento, isso ajuda muito a comunidade. Abraço!

1