Debian MariaDB如何恢复数据
导读:Debian 上 MariaDB 数据恢复实用指南 一 恢复方式概览 使用 mysqldump 逻辑备份:以 .sql 文件恢复,适合跨版本迁移、单库/多库/整库恢复,操作简洁。 使用 mariabackup 物理备份:直接恢复 Inno...
Debian 上 MariaDB 数据恢复实用指南
一 恢复方式概览
- 使用 mysqldump 逻辑备份:以 .sql 文件恢复,适合跨版本迁移、单库/多库/整库恢复,操作简洁。
- 使用 mariabackup 物理备份:直接恢复 InnoDB 数据文件,适合实例级灾难恢复、快速还原到一致性点,要求版本匹配、停库操作。
二 使用 mysqldump 逻辑备份恢复
- 适用场景:已有 .sql 导出文件(整库或单库),需要在原实例或新实例恢复。
- 基本步骤:
- 如目标库已丢失,先创建同名空库(单库/多库恢复常用):
- mysql -u root -p -e “CREATE DATABASE IF NOT EXISTS dbname; ”
- 导入备份:
- 整库备份:mysql -u root -p < backup.sql
- 单库备份:mysql -u root -p dbname < backup.sql
- 校验:登录数据库检查库表与数据行数。
- 如目标库已丢失,先创建同名空库(单库/多库恢复常用):
- 示例(单库):
- mysql -u root -p -e “CREATE DATABASE IF NOT EXISTS studb; ”
- mysql -u root -p studb < /opt/studb.sql
- mysql -u root -p -e “USE studb; SHOW TABLES; SELECT COUNT(*) FROM your_table; ”
- 提示:若备份包含 CREATE DATABASE 语句,可省略手动建库;若仅需部分表,可拆分导出再导入。
三 使用 mariabackup 物理备份恢复
- 适用场景:有 mariabackup 全量/增量备份,需要在同版本或兼容版本的 MariaDB 上做实例级恢复。
- 基本步骤:
- 安装工具(Debian 常用包名):apt-get install mariadb-backup
- 停止数据库:systemctl stop mariadb
- 准备数据目录:
- 备份当前数据目录(如有):mv /var/lib/mysql /var/lib/mysql.bak_$(date +%F)
- 创建空目录并赋权:install -d -m 0700 -o mysql -g mysql /var/lib/mysql
- 恢复备份:
- 全量:mariabackup --copy-back --target-dir=/path/to/full_backup
- 增量:先对全量执行 --prepare,再对增量执行 --prepare,最后 --copy-back 合并后的目录
- 修复权限并启动:
- chown -R mysql:mysql /var/lib/mysql
- 如从 10.2.10 之前的 mariabackup 版本恢复,删除旧的 InnoDB redo 日志:rm -f /var/lib/mysql/ib_logfile*
- systemctl start mariadb
- 要点:
- 恢复前确保目标数据目录为空或可被覆盖;恢复后务必校正 mysql:mysql 权限。
- 增量恢复需按顺序准备(prepare)与回放,确保一致性。
四 时间点恢复与二进制日志
- 适用场景:已有全量备份,并且开启了 二进制日志(binlog),需要恢复到故障前的任意时间点。
- 基本步骤:
- 恢复最近一次全量备份(逻辑或物理方式)。
- 定位恢复终点:
- 查看 binlog 文件与位置:mysql -u root -p -e “SHOW BINARY LOGS; ”
- 或在备份信息中获取 binlog 位点(mariabackup 的 xtrabackup_binlog_info)。
- 导出需要的 binlog 段并回放:
- mysqlbinlog --start-datetime=“2025-12-03 10:00:00”
–stop-datetime=“2025-12-03 10:15:00”
/var/lib/mysql/mysql-bin.00000X | mysql -u root -p
- mysqlbinlog --start-datetime=“2025-12-03 10:00:00”
- 校验数据一致性。
- 提示:若仅需恢复到某个时间点,务必精确控制 --stop-datetime/–stop-position,避免重复执行事务。
五 常见问题与注意事项
- 版本匹配与兼容性:物理恢复(mariabackup)建议 小版本一致;跨大版本迁移优先用 逻辑备份。
- 权限与目录:恢复后确保 /var/lib/mysql 属主为 mysql:mysql,权限 0700;AppArmor/SELinux 可能限制访问,必要时调整策略。
- 日志文件处理:物理恢复后,旧 ib_logfile* 可能不兼容,按上文删除再启动;必要时执行崩溃恢复流程。
- 空间与性能:确保 /var/lib/mysql 与目标备份所在分区 充足空间;大数据量恢复耗时较长,避免高峰期操作。
- 验证与演练:任何恢复流程上线前,建议在 非生产环境演练 并校验关键表行数与校验和。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian MariaDB如何恢复数据
本文地址: https://pptw.com/jishu/762026.html
