Debian MariaDB恢复方法有哪些
导读:1. 使用mariabackup工具恢复(物理备份恢复,官方推荐) mariabackup是MariaDB官方开源的物理备份工具,适用于全量及增量备份恢复,能最大程度保证数据一致性。 准备工作:停止MariaDB服务,避免数据写入冲突;备...
1. 使用mariabackup工具恢复(物理备份恢复,官方推荐)
mariabackup是MariaDB官方开源的物理备份工具,适用于全量及增量备份恢复,能最大程度保证数据一致性。
- 准备工作:停止MariaDB服务,避免数据写入冲突;备份当前数据库目录(如
/var/lib/mysql
)以防恢复失败。 - 全量恢复步骤:
① 执行mariabackup --prepare --target-dir=/path/to/full_backup
,将全量备份数据转换为可导入状态;
② 停止MariaDB服务:sudo systemctl stop mariadb
;
③ 清空现有数据库目录并将准备好的备份数据同步过去:sudo rsync -aP /path/to/full_backup/ /var/lib/mysql/
;
④ 修复目录属主:sudo chown -R mysql:mysql /var/lib/mysql
;
⑤ 启动MariaDB服务:sudo systemctl start mariadb
。 - 增量恢复步骤:
对每个增量备份(如/path/to/incr_backup
),先执行mariabackup --prepare --target-dir=/path/to/incr_backup --incremental-dir=/path/to/incr_backup
合并增量数据到全量备份目录,再用rsync
同步到数据库目录。
2. 使用mysqldump工具恢复(逻辑备份恢复,通用性强)
mysqldump生成的SQL脚本包含数据库结构(表、视图)和数据,适合跨版本、跨平台恢复,或需要导出部分数据的场景。
- 恢复单库:若已删除目标库,先创建空库(
mysql -u root -p -e "CREATE DATABASE dbname; "
),再导入备份文件:mysql -u root -p dbname < /path/to/backup.sql
。 - 恢复全库:直接导入备份文件到当前MariaDB实例:
mysql -u root -p < /path/to/full_backup.sql
。
3. 使用mysqlcheck工具修复轻微损坏
若数据库能启动但存在表损坏(如查询报错“Table corruption”),可通过mysqlcheck
检查和自动修复:
sudo mysqlcheck --all-databases --check --auto-repair -u root -p
该工具会扫描所有数据库的表,尝试修复索引或数据不一致问题,适用于InnoDB或MyISAM表的轻微损坏。
4. 配置innodb_force_recovery强制恢复(InnoDB严重损坏)
当InnoDB存储引擎的数据文件(如ibdata1
、ib_logfile*
)损坏导致MariaDB无法启动时,可通过强制恢复模式导出数据:
- 编辑配置文件(
/etc/mysql/my.cnf
或/etc/my.cnf
),在[mysqld]
段添加innodb_force_recovery = 1
(值范围1-6,数字越大修复越彻底); - 重启MariaDB:
sudo systemctl restart mariadb
; - 若能启动,立即导出所有数据(如使用
mysqldump
),然后删除损坏的数据库目录,重新初始化MariaDB并导入数据; - 若无法启动,逐步增加
innodb_force_recovery
的值(每次+1)直至能启动,再执行数据导出。
5. 从系统备份恢复(物理文件恢复)
若数据库目录(如/var/lib/mysql
)因磁盘故障、误删除等原因丢失,可通过系统级备份(如rsync
、tar
或专业备份软件)恢复:
- 停止MariaDB服务;
- 将备份的系统文件恢复到原数据库目录(如
sudo rsync -aP /backup/var_lib_mysql/ /var/lib/mysql/
); - 修复属主:
sudo chown -R mysql:mysql /var/lib/mysql
; - 启动MariaDB服务:
sudo systemctl start mariadb
。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian MariaDB恢复方法有哪些
本文地址: https://pptw.com/jishu/720154.html