• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!

MySQL备份恢复:从Xtrabackup完整备份中恢复单个表

MySQL 彭东稳 7年前 (2018-03-22) 28669次浏览 已收录 0个评论

现在大多数同学在线上采取的备份策略都是xtrabackup全备+binlog备份,那么当某天某张表意外的删除,那么如何快速从xtrabackup全备中恢复呢?从MySQL 5.6版本开始,支持可传输表空间(Transportable Tablespace),那么利用这个功能就可以实现单表的恢复,同样利用这个功能还可以把innodb表移动到另外一台服务器上。可以参考:https://yq.aliyun.com/articles/59271

下面进行从xtrabackup全备恢复单表的测试。

1. 开启了参数innodb_file_per_table

2. 安装工具:mysql-utilities,其中mysqlfrm可以读取表结构。

查看原表中的数据:

执行备份:

apply-log

删除sbtest1表

利用mysql-utilities工具读取表结构(不支持MariaDB哦)

得到表结构

加一个写锁,确保安全

丢弃表空间

从备份中拷贝ibd文件,并且修改权限

这里有警告,可以忽略。详情可以看:https://yq.aliyun.com/articles/59271

查询数据是否一致:

最后解锁:

<参考>

https://zhuanlan.zhihu.com/p/52185155

http://www.cnblogs.com/gomysql/p/6600616.html


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (3)
[资助本站您就扫码 谢谢]
分享 (0)

您必须 登录 才能发表评论!