MariaDB 的备份与恢复是保障数据安全的重要环节,以下是主要的备份和恢复方法:
1. 逻辑备份(mysqldump)
全量备份:
bash# 备份所有数据库 mysqldump -u root -p --all-databases > all_databases.sql # 备份指定数据库 mysqldump -u root -p database_name > database_name.sql # 备份指定表 mysqldump -u root -p database_name table_name > table_name.sql # 备份并压缩 mysqldump -u root -p database_name | gzip > database_name.sql.gz
增量备份:
bash# 启用二进制日志 # my.cnf 配置 log-bin = mysql-bin binlog-format = ROW # 备份二进制日志 mysqlbinlog mysql-bin.000001 > binlog_backup.sql
恢复数据:
bash# 恢复完整备份 mysql -u root -p < all_databases.sql # 恢复指定数据库 mysql -u root -p database_name < database_name.sql # 恢复压缩备份 gunzip < database_name.sql.gz | mysql -u root -p database_name # 应用二进制日志 mysqlbinlog mysql-bin.000001 | mysql -u root -p
2. 物理备份(Mariabackup)
全量备份:
bash# 创建备份 mariabackup --backup --target-dir=/backup/full \ --user=root --password=password # 准备备份 mariabackup --prepare --target-dir=/backup/full # 恢复备份 mariabackup --copy-back --target-dir=/backup/full
增量备份:
bash# 创建全量备份 mariabackup --backup --target-dir=/backup/full \ --user=root --password=password # 创建增量备份 mariabackup --backup --target-dir=/backup/inc1 \ --incremental-basedir=/backup/full --user=root --password=password # 准备备份 mariabackup --prepare --target-dir=/backup/full mariabackup --prepare --target-dir=/backup/full \ --incremental-dir=/backup/inc1
3. 快照备份
bash# 使用 LVM 快照 lvcreate -L 10G -s -n mysql_snapshot /dev/vg0/mysql mount /dev/vg0/mysql_snapshot /mnt/backup rsync -av /mnt/backup/ /backup/mysql/ umount /mnt/backup lvremove /dev/vg0/mysql_snapshot
4. 自动化备份脚本
bash#!/bin/bash # backup.sh DATE=$(date +%Y%m%d_%H%M%S) BACKUP_DIR="/backup/mariadb" MYSQL_USER="root" MYSQL_PASSWORD="password" # 创建备份目录 mkdir -p $BACKUP_DIR # 全量备份 mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD --all-databases \ --single-transaction --quick --lock-tables=false \ | gzip > $BACKUP_DIR/all_$DATE.sql.gz # 保留最近7天的备份 find $BACKUP_DIR -name "all_*.sql.gz" -mtime +7 -delete echo "Backup completed: all_$DATE.sql.gz"
5. 备份策略建议
- 全量备份:每天凌晨执行
- 增量备份:每小时执行
- 二进制日志:实时保留
- 异地备份:定期同步到远程服务器
- 备份验证:定期测试恢复流程
6. 恢复注意事项
- 恢复前先停止 MariaDB 服务
- 确保有足够的磁盘空间
- 恢复后验证数据完整性
- 记录恢复过程和时间点
- 在测试环境先验证恢复流程
通过合理的备份策略和恢复流程,可以最大程度保障 MariaDB 数据的安全性和可靠性。