Linux 上 MariaDB 备份与恢复实用技巧
一 方法总览与选型
| 方法 | 工具 | 备份形态 | 优点 | 局限 | 典型场景 |
|---|---|---|---|---|---|
| 逻辑备份 | mysqldump / mysqlpump | SQL 文本 | 易迁移、可跨版本、可选择性恢复 | 恢复需重建索引,大数据量恢复较慢 | 小中型库、跨版本迁移、按表/库恢复 |
| 物理热备 | mariabackup / Percona XtraBackup | 文件级拷贝 | 在线热备、支持增量、恢复快 | 需同架构/版本、操作更严谨 | 大型库、高并发、需要时间点恢复 |
| 文件系统快照 | LVM / 文件系统快照 | 数据目录快照 | 快速一致性快照 | 依赖快照能力、需停写或冻结 | 有快照能力的环境、快速整机备份 |
以上工具与方法均为 Linux 上 MariaDB 常用实践,mysqldump/mysqlpump 适合逻辑备份,mariabackup/XtraBackup 适合物理热备,LVM/文件系统快照适合快速一致性备份。
二 逻辑备份与恢复要点
mysqldump -u root -p dbname > dbname.sqlmysql -u root -p dbname < dbname.sqlmysqldump -u root -p --databases db1 db2 > multi.sqlmysqldump -u root -p --all-databases > all.sqlmysqldump -u root -p db | gzip > db.sql.gzgunzip < db.sql.gz | mysql -u root -p db--single-transaction --routines --triggers --hex-blob --set-gtid-purged=OFF--lock-all-tables(会锁表,影响写入)。三 物理热备 mariabackup 与 XtraBackup
yum -y install MariaDB-backup(或安装 Percona XtraBackup 对应版本)。mariabackup --backup --target-dir=/backup/base -u root -pmariabackup --backup --target-dir=/backup/inc1 --incremental-basedir=/backup/base -u root -pmariabackup --prepare --target-dir=/backup/basemariabackup --prepare --target-dir=/backup/base --incremental-dir=/backup/inc1/var/lib/mysql),执行
mariabackup --copy-back --target-dir=/backup/basechown -R mysql:mysql /var/lib/mysql && systemctl start mariadb四 时间点恢复与二进制日志
log_bin),并记录备份时的 binlog 位置/文件。copy-back 后启动数据库,使用 mysqlbinlog 回放所需区间:
mysqlbinlog --start-datetime="2025-11-30 10:00:00" --stop-datetime="2025-11-30 10:10:00" /var/lib/mysql/mysql-bin.000001 | mysql -u root -pmysqlbinlog --start-position=154 --stop-position=12345 /var/lib/mysql/mysql-bin.000001 | mysql -u root -p五 文件系统快照与 LVM 快速备份
lvcreate -s -n snap_mysql -L 2G /dev/vgdb/lvdb