注册 登录
  • 欢迎访问"运维那点事",推荐使用Google浏览器访问,可以扫码关注本站的"微信公众号"。
  • 如果您觉得本站对你有帮助,那么可以扫码捐助以帮助本站更好地发展。

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

MySQL 彭东稳 1466次浏览 已收录 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

查询数据是否一致:

最后解锁:

<参考>

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


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (1)or分享 (0)
关于作者:

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