以下是Ubuntu MariaDB数据恢复的关键技巧,按场景分类整理:
.sql
格式备份,用mysql
命令导入:mysql -u 用户名 -p 数据库名 < 备份文件.sql
sudo systemctl stop mariadb
/var/lib/mysql
),确保权限正确:sudo cp -R /path/to/backup/* /var/lib/mysql/
sudo chown -R mysql:mysql /var/lib/mysql/
sudo systemctl start mariadb
mysqlbinlog
解析日志,生成反向SQL:mysqlbinlog --start-datetime="YYYY-MM-DD HH:MM:SS" /var/lib/mysql/mysql-bin.00000X > revert.sql
mysql -u 用户名 -p < revert.sql
FOR SYSTEM_TIME
查询历史数据并导出:SELECT * FROM 表名 FOR SYSTEM_TIME AS OF 'YYYY-MM-DD HH:MM:SS' INTO OUTFILE '/tmp/data.sql'
LOAD DATA INFILE '/tmp/data.sql' REPLACE INTO TABLE 表名
/etc/mysql/my.cnf
,添加innodb_force_recovery=1
(逐步增加至6,最大值可强制启动)Percona Toolkit
的pt-table-checksum
和pt-table-sync
修复主从不一致或表损坏mariabackup
工具(官方推荐)进行物理备份与恢复,支持增量备份参考来源: