从完整备份恢复单个innodb表
现在大多数同学在线上采取的备份策略都是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可以读取表结构。
yum install mysql-utilities -y
查看原表中的数据:
mysql> select * from yayun.t1;
+------+------+
| id | name |
+------+------+
| 1 | aa |
| 2 | bb |
| 3 | cc |
| 4 | dd |
+------+------+
4 rows in set (0.00 sec) mysql>
执行备份:
innobackupex --defaults-file=/data/mysql//my.cnf --user=root --password= --sock=/data/mysql//mysqltmp/mysql.sock /data/
apply-log
innobackupex --defaults-file=/data/mysql//my.cnf --apply-log /data/--22_16--/
删除t1表:
mysql> use yayun
Database changed
mysql> drop table t1;
Query OK, 0 rows affected (0.13 sec) mysql>
读取表结构
mysqlfrm --diagnostic /data/--22_16--/yayun/t1.frm
输出:
# Reading .frm file for /data/--22_16--/yayun/t1.frm:
# The .frm file is a TABLE.
# CREATE TABLE Statement: CREATE TABLE `yayun`.`t1` (
`id` int() DEFAULT NULL,
`name` char() DEFAULT NULL
) ENGINE=InnoDB; #...done.
建表:
mysql> use yayun
Database changed
mysql> CREATE TABLE `yayun`.`t1` (
-> `id` int(11) DEFAULT NULL,
-> `name` char(180) DEFAULT NULL
-> ) ENGINE=InnoDB;
Query OK, 0 rows affected (0.08 sec) mysql>
加一个写锁,确保安全
mysql> lock tables t1 write;
Query OK, 0 rows affected (0.00 sec) mysql>
丢弃表空间:
mysql> alter table t1 discard tablespace;
Query OK, 0 rows affected (0.07 sec) mysql>
从备份中拷贝ibd文件,并且修改权限
[root@db_server_yayun_01 ~]# cp /data/--22_16--/yayun/t1.ibd /data/mysql//data/yayun/
[root@db_server_yayun_01 ~]# chown -R mysql.mysql /data/mysql//data/yayun/t1.ibd
载入表空间:
mysql> alter table t1 import tablespace;
Query OK, 0 rows affected, 1 warning (0.15 sec) mysql> show warnings;
+---------+------+------------------------------------------------------------------------------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------------------------------------------------------------------------------------------------------+
| Warning | 1810 | InnoDB: IO Read error: (2, No such file or directory) Error opening './yayun/t1.cfg', will attempt to import without schema verification |
+---------+------+------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec) mysql>
这里有警告,可以忽略。详情可以看:https://yq.aliyun.com/articles/59271
查询数据是否一致:
mysql> select * from t1;
+------+------+
| id | name |
+------+------+
| 1 | aa |
| 2 | bb |
| 3 | cc |
| 4 | dd |
+------+------+
4 rows in set (0.00 sec) mysql>
最后解锁:
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec) mysql>
参考文章:
从完整备份恢复单个innodb表的更多相关文章
- 基于Xtrabackup恢复单个innodb表
Preface We all know that Xtrabackup is a backup tool of percona for innodb or Xtradb.It's us ...
- MySQL 备份恢复(导入导出)单个 innodb表
MySQL 备份恢复单个innodb表呢,对于这种恢复我们我们很多朋友都不怎么了解了,下面一起来看一篇关于MySQL 备份恢复单个innodb表的教程 在实际环境中,时不时需要备份恢复单个或多个表(注 ...
- MySQL另类的备份恢复方法——innodb可传输表空间
Preface There're many ways in backing up or migrating data from one server to another one.Lo ...
- mysql备份恢复数据库据/表
备份单个数据库,只备份表,如要恢复,必须先创建一个数据库[root@s]# mysqldump -u root -p dbname1 > dbname1.sql[root@s]# mysql - ...
- linux 通过scp 复制备份恢复mysql数据表
最近客户有个需求,小弟对于运维的东西也是半瓶醋,所以就果断的摸索了下.折磨了一个晚上终于算是搞定了.因为是两个不同的服务器,本来想用ftp,无奈小弟不是很熟悉,所以就用了scp,但是scp有个问题就是 ...
- 从xtrabackup备份恢复单表
目前对MySQL比较流行的备份方式有两种,一种上是使用自带的mysqldump,另一种是xtrabackup,对于数据时大的环境,普遍使用了xtrabackup+binlog进行全量或者增量备份,那么 ...
- 从xtrabackup备份恢复单表【转】
目前对MySQL比较流行的备份方式有两种,一种上是使用自带的mysqldump,另一种是xtrabackup,对于数据时大的环境,普遍使用了xtrabackup+binlog进行全量或者增量备份,那么 ...
- 在线热备份数据库之innobackupex 完整备份InnoDB
在线热备份数据库innobackupex 完整备份InnoDB XtraBackup xtrabackup C程序,支持InnoDB/XtraDB innobackupex : 以Perl脚本封装xt ...
- MySQL基于LVM快照的备份恢复(临时)
目录1.数据库全备份2.准备LVM卷3.数据恢复到LVM卷4.基于LVM快照备份数据5.数据灾难恢复6.总结 写在前面:测试环境中已安装有mysql 5.5.36数据库,但数据目录没有存放在LVM卷, ...
随机推荐
- mencached
是一个免费开源的,分布式内存对象缓存系统数据库. 是一个非关系型数据库形式,属于NOSQL NOT OLNY SQL ,不仅仅是关系数据库 它属于K V 存储 KEY VALUE 相对应的存储 KEY ...
- 3R - 单词数
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题. Input 有多组数据,每组一行,每组就 ...
- 主机性能监控之wmi 获取进程信息
标 题: 主机性能监控之wmi 获取进程信息作 者: itdef链 接: http://www.cnblogs.com/itdef/p/3990499.html 欢迎转帖 请保持文本完整并注明出处 仅 ...
- java多线程系列9 高级同步工具(3) CyclicBarrier
CyclicBarrier 一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point) 然后一再执行 public class CyclicBar ...
- ubuntu 应用添加进环境变量
BG:公司同事使用的电脑系统大多为windows ,有部分mac和Ubuntu(我就是那个部分Ubuntu),某些情况为了统一格式,便下载了一些解压即可使用的软件,但是每次点开文件夹然后点开程序很繁琐 ...
- Photoshop制作仿等高线着色图
起因是最近玩游戏The Long Dark,看到贴吧还是Steam上有人放了等高线图,看起来非常炫酷,于是想自己折腾下. 解包了游戏高度图 Matlab绘制如下 自己瞎写的量化+颜色映射如下,Shad ...
- python基本数据类型之整型和浮点型
python基本数据类型之数字与浮点型 在python3中,整数的数据类型为int,而浮点数的数据类型为float.python2中整数可以是int和long(长整型)两种类型,python3只保留了 ...
- 实战C++对象模型之成员函数调用
先说结论:C++的类成员函数和C函数实质是一样的,只是C++类成员函数多了隐藏参数this. 通过本文的演示,可以看见这背后的一切,完全可C函数方式调用C++类普通成员函数和C++类虚拟成员函数. 为 ...
- [Solution] JZOJ3470 最短路
[Solution] JZOJ3470 最短路 题面 Description 给定一个n个点m条边的有向图,有k个标记点,要求从规定的起点按任意顺序经过所有标记点到达规定的终点,问最短的距离是多少. ...
- post网络请求坑
微信小程序开发中网络请求必不可少.GET.POST请求是最常用的.GET请求 POST请求的时候有好几个坑.我已经为大家填好了.