Sauvegarder et restaurer MariaDB avec mariadb-dump : bases complètes, tables, compression, vérification, Docker, automatisation et bonnes pratiques.
mariadb --versionVersion du clientmariadb-dump --versionVersion de l'outil de sauvegardemariadb -u root -p -e "SHOW DATABASES;"Vérifier la connexion et lister les basesdf -h /backupVérifier l'espace disponiblemariadb-dump -u backup -p --databases application > application.sqlStructure et donnéesmariadb-dump -u backup -p --single-transaction --routines --events --triggers --databases application > application.sqlDump InnoDB completmariadb-dump -u backup -p --single-transaction --routines --events --databases app1 app2 > applications.sqlPlusieurs basesmariadb-dump -u backup -p --single-transaction --routines --events --all-databases > toutes-les-bases.sqlToutes les basesmariadb-dump -u backup -p application utilisateurs commandes > tables.sqlDeux tablesmariadb-dump -u backup -p --no-data application > structure.sqlStructure uniquementmariadb-dump -u backup -p --no-create-info application > donnees.sqlDonnées uniquementmariadb-dump -u backup -p --where="created_at >= '2026-01-01'" application commandes > commandes-2026.sqlSous-ensemble de lignes--single-transactionInstantané cohérent pour InnoDB--routinesInclure procédures et fonctions--eventsInclure les événements planifiés--triggersInclure explicitement les triggers--hex-blobExporter les données binaires en hexadécimal--default-character-set=utf8mb4Utiliser utf8mb4--quickLire les lignes progressivementmariadb-dump -u backup -p --single-transaction --routines --events --triggers --hex-blob --default-character-set=utf8mb4 --databases application > application.sqlmariadb-dump -u backup -p --single-transaction --routines --events --databases application | gzip -9 > application-$(date +%F).sql.gzExport compressémariadb-dump -u backup -p --single-transaction --databases application | zstd -T0 -10 -o application-$(date +%F).sql.zstCompression zstdgzip -t application.sql.gzTester l'intégrité gzipzstd -t application.sql.zstTester l'intégrité zstdsha256sum application.sql.gz > application.sql.gz.sha256Créer une somme de contrôlesha256sum -c application.sql.gz.sha256Vérifier la somme de contrôlels -lh application*Contrôler la taille des fichiershead -n 30 application.sqlLire le début du dumpgrep -n "CREATE TABLE" application.sqlLister les définitions de tableszgrep -n "CREATE TABLE" application.sql.gzChercher dans un dump gzipmariadb -u restore -p < application.sqlRestaurer un dump non comprességunzip -c application.sql.gz | mariadb -u restore -pRestaurer depuis gzipzstd -dc application.sql.zst | mariadb -u restore -pRestaurer depuis zstdmariadb -u root -p -e "CREATE DATABASE application CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"Créer la basemariadb -u restore -p application < application.sqlImporter le dumpmariadb-dump -u backup -p --single-transaction application > application-sans-create-database.sqlmariadb -u root -p -e "CREATE DATABASE restauration_test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"mariadb -u restore -p restauration_test < application-sans-create-database.sqlmariadb -u root -p restauration_test -e "SHOW TABLES;"mariadb -u root -p restauration_test -e "SELECT COUNT(*) AS tables_presentes FROM information_schema.tables WHERE table_schema='restauration_test';"docker compose exec -T db sh -c 'mariadb-dump -u root -p"$MARIADB_ROOT_PASSWORD" --single-transaction --routines --events --databases application' > application.sqldocker compose exec -T db sh -c 'mariadb -u root -p"$MARIADB_ROOT_PASSWORD"' < application.sqlmariadb-dump -u backup -p --databases application > application.sqlDemande le mot de passeinstall -m 600 /dev/null ~/.my.cnfCréer un fichier lisible uniquement par le propriétaire[client]user=backuppassword=mot-de-passehost=localhostmariadb-dump --defaults-extra-file=~/.my.cnf --single-transaction --databases application > application.sqlset -euo pipefailDEST="/backup/mariadb"DATE="$(date +%F_%H-%M-%S)"mkdir -p "$DEST"mariadb-dump --defaults-extra-file=/root/.my.cnf --single-transaction --routines --events --triggers --databases application | gzip -9 > "$DEST/application-$DATE.sql.gz"gzip -t "$DEST/application-$DATE.sql.gz"sha256sum "$DEST/application-$DATE.sql.gz" > "$DEST/application-$DATE.sql.gz.sha256"find "$DEST" -type f -name 'application-*.sql.gz*' -mtime +30 -delete30 2 * * * /usr/local/sbin/backup-mariadb.sh >> /var/log/backup-mariadb.log 2>&1Chaque nuit à 02:30echo $?Code retour de la dernière commandetail -n 100 /var/log/backup-mariadb.logDernières lignes du journalmariadb -u root -p -e "SHOW WARNINGS;"Avertissements de la sessionmariadb -u root -p -e "SHOW PROCESSLIST;"Requêtes en coursAucune commande ne correspond à ce filtre.