- 首页 >
- 问答 >
-
云计算 >
- Ubuntu上MariaDB备份方法有哪些
Ubuntu上MariaDB备份方法有哪些
小樊
42
2025-12-26 10:46:54
Ubuntu上MariaDB常用备份方法
一、逻辑备份 mysqldump
- 适用场景:跨版本迁移、部分库/表备份、可读性要求高、InnoDB 与 MyISAM 混用环境。
- 常用命令:
- 备份单个库:mysqldump -u root -p db_name > db_name.sql
- 备份多个库:mysqldump -u root -p --databases db1 db2 > multi.sql
- 备份所有库:mysqldump -u root -p --all-databases > all.sql
- 一致性快照(InnoDB):mysqldump -u root -p --single-transaction --routines --triggers --databases db > db.sql
- 压缩备份:mysqldump -u root -p db | gzip > db.sql.gz
- 含建库语句的备份:使用 --databases(或 -B),导出的 SQL 自带 CREATE DATABASE 与 USE,便于直接恢复
- 恢复要点:
- 指定库恢复:mysql -u root -p db < db.sql
- 多库/全库文件:mysql -u root -p < multi.sql 或 all.sql
- 若备份不含建库语句,需先建库:CREATE DATABASE db; 再导入。
二、物理备份与增量策略
- 物理热备工具:Percona XtraBackup(适合大体量、InnoDB 为主的生产库)
- 安装:sudo apt-get update && sudo apt-get install percona-xtrabackup-24
- 完整备份:xtrabackup --backup --target-dir=/path/to/backup --user=user --password=pass
- 准备备份:xtrabackup --prepare --target-dir=/path/to/backup
- 恢复步骤:停库、清空/指向新 datadir、执行 xtrabackup --copy-back、修正权限并启动 MariaDB
- 增量备份:基于全量,结合二进制日志(binlog)实现时间点恢复
- 启用 binlog:编辑 /etc/mysql/mariadb.conf.d/50-server.cnf(或 /etc/my.cnf),在 [mysqld] 加入 log_bin=/var/log/mysql/mysql-bin.log,重启服务
- 定期执行 FLUSH LOGS 轮转 binlog;将轮转前的旧 binlog 归档保存,用于增量恢复。
三、图形化与迁移场景
- phpMyAdmin:在界面中“导出”获取 .sql,传输到目标后“导入”;适合小规模或临时操作。
- 迁移流程:源库 mysqldump 导出 → 用 scp 传输到目标 → 目标库 mysql 导入;跨服务器迁移时保持版本与字符集兼容。
四、自动化与最佳实践
- 定时任务示例(每日 2:00 压缩备份并带日期):
- 编辑:sudo crontab -e
- 内容:0 2 * * * mysqldump -u root -pYourPass mydb | gzip > /backups/mydb_$(date +%F).sql.gz
- 建议做法:
- 保留多份历史(如近 7/30 天),并定期异地/离线存放
- 校验备份可用性(抽样导入测试库)、监控备份日志与磁盘空间
- 对大体量 InnoDB 库优先物理热备 + binlog,实现快速恢复与细粒度时间点恢复。