5月30日 19:50
MariaDB 备份和恢复如何设计才可靠?
MariaDB 备份不要只理解成把数据导出一份,真正要设计的是恢复能力。小库、低频变更、临时迁移,用 mysqldump 足够;线上核心库、数据量较大或恢复时间敏感,优先用 Mariabackup 做物理备份,再配合 binlog 做时间点恢复。备份策略一般按 RPO 和 RTO 倒推:能接受丢 5 分钟数据,就至少保留连续 binlog;要求 30 分钟内恢复,就不能只靠几十 GB 的 SQL 文件慢慢导入。
追问
mysqldump 和 Mariabackup 怎么选?
mysqldump 是逻辑备份,优点是可读、可跨版本、适合单库单表恢复,缺点是大库导出和导入都慢。Mariabackup 是物理备份,恢复速度更接近文件拷贝,适合生产全量备份。
如何恢复到指定时间点?
常见做法是每天一次全量备份,持续保留 binlog,并记录全量备份完成时的 binlog 文件和 position。恢复时先还原全量,再用 mysqlbinlog 回放到指定时间点。
备份脚本最容易踩什么坑?
第一是只备份不校验,事故时才发现压缩包损坏。第二是把密码写在脚本里且权限过宽,建议用专门备份账号和最小权限。
恢复前后要检查什么?
恢复前确认目标目录为空、磁盘空间足够、服务已停止。恢复后要做表检查、核心 SQL 抽样和业务只读验证。
写段命令
bashmariabackup --backup --target-dir=/backup/full --user=backup --password=xxx mariabackup --prepare --target-dir=/backup/full mysqlbinlog --stop-datetime="2026-05-30 10:18:00" mysql-bin.000123 | mysql -u root -p