Linux MariaDB数据恢复方法有哪些
导读:1. 使用官方备份工具恢复(mariabackup/xtrabackup) mariabackup是MariaDB官方提供的开源备份工具,支持全量、增量备份及恢复,适用于InnoDB和XtraDB引擎,是生产环境推荐的方式。 全量恢复步骤...
1. 使用官方备份工具恢复(mariabackup/xtrabackup)
mariabackup是MariaDB官方提供的开源备份工具,支持全量、增量备份及恢复,适用于InnoDB和XtraDB引擎,是生产环境推荐的方式。
- 全量恢复步骤:停止MariaDB服务(
systemctl stop mariadb);清空目标数据目录(如/var/lib/mysql,rm -rf /var/lib/mysql/*);执行恢复命令(mariadb-backup --copy-back --target-dir=/path/to/full-backup);修正数据目录权限(chown -R mysql:mysql /var/lib/mysql);启动服务(systemctl start mariadb)。 - 增量恢复步骤:先完成全量恢复,再依次应用增量备份(
mariadb-backup --copy-back --incremental-dir=/path/to/incremental-backup --target-dir=/path/to/full-backup)。 - 压缩备份处理:若备份为
.xbstream或.gz格式,需先解压(如mbstream -x -C /path/to/backup < backup.xbstream或gunzip -c backup.gz | mbstream -x -C /path/to/backup),再按全量恢复流程操作。
2. 从SQL逻辑备份恢复
若存在.sql(如mysqldump生成的备份)或.dump文件,可通过以下命令恢复:
- SQL文件:
mysql -u 用户名 -p 数据库名 < 备份文件.sql(例如mysql -u root -p mydb < /home/user/backup.sql)。 - dump文件:使用
mysqlimport(mysqlimport -u 用户名 -p --local 数据库名 备份文件.dump)或mariadb-restore工具(mariadb-restore -u 用户名 -p --databases 数据库名 备份文件.dump)。
恢复前需停止MariaDB服务以避免数据冲突,恢复后重启服务并验证数据完整性。
3. 物理文件恢复(extundelete)
若数据文件被误删除(如ibdata1、*.ibd等InnoDB文件),可通过extundelete工具恢复(仅适用于ext3/ext4文件系统)。
- 操作前提:立即停止所有访问数据库的服务(如MariaDB、Web服务),防止新数据覆盖磁盘空间。
- 恢复命令:
sudo extundelete /dev/sdXY --restore-file path/to/deleted/file(例如/dev/sda1是数据分区,/var/lib/mysql/ibdata1是被删文件路径);恢复后需将文件放回原数据目录,修正权限并重启MariaDB。
4. 强制恢复(innodb_force_recovery)
若InnoDB引擎数据文件损坏(如ib_logfile0损坏、数据库无法启动),可通过强制恢复模式尝试导出数据。
- 操作步骤:编辑MariaDB配置文件(
/etc/my.cnf或/etc/mysql/my.cnf),在[mysqld]段添加innodb_force_recovery = 1;重启MariaDB服务(systemctl restart mariadb);若仍无法启动,逐步增加innodb_force_recovery值(最大至6,每步重启服务);待能启动后,立即导出所有数据(mysqldump -u root -p --all-databases > all_databases.sql);重新初始化数据库并导入备份数据。
5. 专业工具恢复
若上述方法均无效,可使用专业数据恢复工具或服务:
- Percona Toolkit:包含
pt-table-checksum(校验数据一致性)、pt-table-sync(同步表数据)等工具,适用于复杂数据损坏场景。 - 第三方服务:如专业的MariaDB数据恢复软件(需选择可信厂商),针对物理介质损坏、逻辑坏道等情况提供深度恢复。
使用专业工具前,需停止对原数据目录的所有写入操作,避免二次破坏。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux MariaDB数据恢复方法有哪些
本文地址: https://pptw.com/jishu/742385.html
