mysql单独还原数据库表_MySQL(原版)恢复单个InnoDB数据库表

Percona 中的 xtrabackup 真是个好工具, 简单的介绍的他的功能:

1、创建热备份(主要依靠innodb的 crash recovery 功能)

2、增量备份

3、直接对备份文件压缩打包

4、负载小

在测试最新版本2.0时,发现问题:

importing  and   exporing  individual tables中这个工具对Oracle 原版的MySQL是不起作用的。

解释如下:在原版MySQL中是不能任意移动数据库的.idb文件,官方给出的解释是:the table definition that is stored in theInnoDBshared tablespace includes the database name, and becauseInnoDBmust preserve the consistency of transaction IDs and log sequence numbers. 即:表定义存储在innodb 中的共享表空间中,事务id 和日志序列号是放在单个的表空间文件中。(在percona  server 这个限制已经移除)

经多方咨询:这个工具对于原版MySQL 还是可以用的。具体如下:

备份单个表:

innobackupex --tables-file=/tmp/tables.txt  /path/to/backup

关键是下面这步:

--export 先使用该选项获得一个完全独立的idb文件(官方未提到)

innobackupex  --defaults-file=/usr/local/mysql/my.cnf --export  /tmp

下面是将应用日志而得到一个一致的备份:

innobackupex  --defaults-file=/usr/local/mysql/my.cnf --export --apply-log  /path/to/backup

最后是 import TABLESPACE;请参考官方文档:官方文档

如果遇到独立ibd tableid 与共享表空间里面tableid 不一致,可能是innodb_import_table_from_xtrabackup 或者是  innodb_expand_import  参数没有开启

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值