Drivers

BackupAlly suporta múltiplos drivers para diferentes fontes de dados.

Visão Geral

Driver Tipo Protocolo Status
MySQL Database MySQL Protocol Disponível
PostgreSQL Database PG Protocol Disponível
MongoDB Database Wire Protocol Disponível
ClickHouse Database HTTP/Native Disponível
SQLite Database Embedded Disponível
Fileset Files Filesystem Disponível
Docker Container Docker API Disponível

Por que Drivers Nativos?

BackupAlly usa drivers nativos em Rust ao invés de ferramentas CLI externas:

Aspecto CLI Externa Driver Nativo
Performance Overhead de processo Conexão direta
Segurança Credenciais em argumentos Credenciais em memória
Erros Parse de output texto Tratamento estruturado
Dependências Requer mysqldump, pg_dump Nenhuma externa

MySQL

Backup nativo via protocolo MySQL.

Configuração

[target]
kind = "database"
driver = "mysql"
host = "localhost"
port = 3306
database = "*"
user = "${secret:mysql_user}"
password = "${secret:mysql_password}"
excludes = ["mysql", "performance_schema", "information_schema"]
single_transaction = true
lock_tables = false

Opções

Opção Tipo Padrão Descrição
database string - Nome do banco ou * para todos
excludes array [] Bancos a excluir
single_transaction bool true Transação consistente (InnoDB)
lock_tables bool false Lock durante backup
charset string utf8mb4 Charset da conexão

Requisitos

Usuário precisa de permissões:

  • SELECT em todas as tabelas
  • SHOW DATABASES
  • LOCK TABLES (se lock_tables=true)

PostgreSQL

Backup nativo via protocolo PostgreSQL.

Configuração

[target]
kind = "database"
driver = "postgres"
host = "localhost"
port = 5432
database = "myapp"
user = "${secret:pg_user}"
password = "${secret:pg_password}"
dump_globals = true
clean_dump = true

Opções

Opção Tipo Padrão Descrição
database string - Nome do banco
dump_globals bool false Incluir roles e tablespaces
clean_dump bool false DROP antes de CREATE
schema_only bool false Apenas schema, sem dados
data_only bool false Apenas dados

Requisitos

Usuário precisa de permissões:

  • SELECT em todas as tabelas
  • pg_read_all_data (PostgreSQL 14+) ou superuser

MongoDB

Backup nativo via Wire Protocol.

Configuração

[target]
kind = "database"
driver = "mongodb"
uri = "mongodb://localhost:27017"
database = "*"
oplog = true
gzip = true

Opções

Opção Tipo Padrão Descrição
uri string - Connection string
database string - Nome do banco ou *
oplog bool false Point-in-time recovery
gzip bool true Comprimir durante export
excludes array [] Collections a excluir

Requisitos

Usuário precisa de roles:

  • backup
  • readAnyDatabase (para *)

ClickHouse

Backup nativo via HTTP ou Native protocol.

Configuração

[target]
kind = "database"
driver = "clickhouse"
host = "localhost"
port = 9000
database = "analytics"
user = "${secret:ch_user}"
password = "${secret:ch_password}"
format = "Native"
use_partitions = true

Opções

Opção Tipo Padrão Descrição
database string - Nome do banco
format string Native Native, CSV, Parquet, JSONEachRow
use_partitions bool true Backup por partição
tables array [] Tabelas específicas (vazio = todas)

Formatos

Formato Uso
Native Mais rápido, ClickHouse-to-ClickHouse
CSV Compatibilidade universal
Parquet Data lakes, analytics
JSONEachRow Debug, inspeção

SQLite

Backup de arquivos SQLite.

Configuração

[target]
kind = "database"
driver = "sqlite"
path = "/var/lib/app/database.db"

Opções

Opção Tipo Descrição
path string Caminho do arquivo .db
vacuum bool VACUUM antes do backup

Fileset

Backup de arquivos e diretórios.

Configuração

[target]
kind = "fileset"
includes = ["/var/www/html", "/etc/nginx"]
excludes = ["**/.git", "**/node_modules", "**/*.log"]

Opções

Opção Tipo Descrição
includes array Caminhos a incluir
excludes array Padrões glob a excluir
follow_symlinks bool Seguir links simbólicos
one_filesystem bool Não cruzar filesystems

Padrões Glob

Padrão Significado
* Qualquer nome de arquivo
** Qualquer subdiretório
*.log Arquivos .log
**/cache/* Qualquer cache em subdiretórios

Docker

Backup de volumes Docker.

Configuração

[target]
kind = "docker"
volume = "myapp_data"
container = "myapp"
stop_container = false

Opções

Opção Tipo Descrição
volume string Nome do volume
container string Container que usa o volume
stop_container bool Parar container durante backup
excludes array Padrões a excluir
By Borlot.com.br on 11/02/2026