MySQL单表恢复
在后续将MySQL备份恢复重新整理了一下,发了公众号文章,可参考
MySQL单表恢复
一、背景
Percona-xtrabackup是Percona开发的用于MySQL数据库物理热备的备份工具,在生产环境中经常用于做MySQL InnoDB类型表的备份。数据库使用者经常可能更新数据时忘记添加WHERE条件或者进行了误删除操作。此时若进行整库恢复会造成时间成本很高,并且DBA一般不会直接操作业务数据,这时会新建一个临时的独立节点只针对误操作的表进行单表恢复。
二、所需要的文件
由于备份时进行了压缩,所以这里显示的数据文件都有.qp后缀,恢复时也需先进性解压缩
1. 公共文件
- mysql目录:MySQL数据库节点的用户等基础信息
- perfomance_schema目录:MySQL数据库节点的基础信息
- ibdata1.qp:共享表空间文件
2. 备份时的点位文件
- xtrabackup_binlog_info:记录备份完成时的binlog点位信息
- xtrabackup_checkpoints:记录备份类型,全量备份为backup_type = full-backuped,增量备份为backup_type = incremental
- xtrabackup_info:记录备份时的一些参数,例如:脚本版本、数据库版本、备份时间等信息
- xtrabackup_logfile.qp:记录备份开始到备份结束所有的redo日志,xtrabakcup在apply log时读取该文件,进行redo回滚
- xtrabackup_slave_info:记录主库的binlog信息,新建从库时可以根据该文件指向与备份节点的同一个主库
- backup-my.cnf:启动备份集需要的最小参数
3. 要还原表的数据文件
- t_test.frm:要还原表的表结构文件
- t_test.ibd.qp:要还原表的数据文件
三、恢复
1. 和业务确认还原库表信息及时间点
## 例如:这里要还原至192.168.1.1:3306库的2021-03-01 17:10:00时间点
需还原信息:
主库IP:192.168.1.1
端口:3306
库名:db_test
表名:restore_test
时间:2021-03-01 17:10:00