文档章节

从xtrabackup完整备份恢复单个innodb表

IT--小哥
 IT--小哥
发布于 10/17 19:33
字数 638
阅读 7
收藏 1

现在大多数同学在线上采取的备份策略都是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/3306/my.cnf --user=root --password=123 --sock=/data/mysql/3306/mysqltmp/mysql.sock /data/

apply-log

innobackupex --defaults-file=/data/mysql/3306/my.cnf --apply-log /data/2017-03-22_16-13-00/

删除t1表:

mysql> use yayun
Database changed
mysql> drop table t1;
Query OK, 0 rows affected (0.13 sec)

mysql> 

读取表结构

mysqlfrm --diagnostic /data/2017-03-22_16-13-00/yayun/t1.frm 

输出:

# Reading .frm file for /data/2017-03-22_16-13-00/yayun/t1.frm:
# The .frm file is a TABLE.
# CREATE TABLE Statement:

CREATE TABLE `yayun`.`t1` (
  `id` int(11) DEFAULT NULL, 
  `name` char(180) 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/2017-03-22_16-13-00/yayun/t1.ibd /data/mysql/3306/data/yayun/
[root@db_server_yayun_01 ~]# chown -R mysql.mysql /data/mysql/3306/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> 

参考文章:

https://www.percona.com/blog/2017/03/15/restore-single-innodb-table-full-backup-accidentally-dropping/

本文转载自:https://www.cnblogs.com/gomysql/p/6600616.html

共有 人打赏支持
IT--小哥
粉丝 46
博文 116
码字总数 87587
作品 0
东城
数据库管理员
私信 提问
XtraBackup 原理与安装

阅读目录 1. XtraBackup 简介 2. XtraBackup 原理 3. XtraBackup 安装 4. XtraBackup 备份恢复 1. XtraBackup 简介 XtraBackup(PXB) 工具是 Percona 公司用 perl 语言开发的一个用于 MySQL ...

xiaocao13140
05/21
0
0
MySQL备份工具——Xtrabackup之简介

MySQL备份工具——Xtrabackup之简介 一、简介 1、xtrabackup是percona公司开发的一款基于MySQL的开源备份工具,且优于ibbackup。 2、xtradb存储引擎也是percona公司为MySQL开发的,是InnoDB的...

perofu
2014/12/05
0
0
mysql备份工具innobackupex,xtrabackup-2.1安装与测试

一、Xtrabackup介绍 1.1:Xtrabackup是什么 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。 Xtra...

SANSOM
2013/09/10
0
3
XtraBackup 备份与恢复实例讲解

阅读目录 xtrabackup 选项 xtrabackup 全量备份恢复 xtrabackup 增量备份恢复 前一篇文章我们讲到了PXB的原理以及安装方法,接下来将详细介绍 XtraBackup 备份和恢复的具体过程。 回到顶部 ...

xiaocao13140
05/21
0
0
利用Percona XtraBackup进行单表备份恢复

大部分情况下,使用用Percona XtraBackup进行整库的备份和恢复比较容易,此处略去; 对于单表的恢复略有不同,而且对数据库版本和Percona XtraBackup的版本都有限制 局限性: 1.源库MySQL版本...

Geekwolf
2014/09/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

php获取客户端IP

php获取客户端IP 首先先阅读关于IP真实性安全的文章:如何正確的取得使用者 IP? 「任何從客戶端取得的資料都是不可信任的!」 HTTP_CLIENT_IP头是有的,但未成标准,不一定服务器都实现。 ...

DrChenXX
昨天
0
0
. The valid characters are defined in RFC 7230 and RFC 问题

通过这里的回答,我们可以知道: Tomcat在 7.0.73, 8.0.39, 8.5.7 版本后,添加了对于http头的验证。 具体来说,就是添加了些规则去限制HTTP头的规范性 参考这里 具体来说: org.apache.tom...

west_coast
昨天
1
0
刷leetcode第704题-二分查找

今天双十一买的算法书到货了,路上刷到有人说的这个题,借(chao)鉴(xi)一下别人的思路,这个是C++标准库里面的经典方法,思路精巧,优雅好品味 int search(int* nums, int numsSize, in...

锟斤拷烫烫烫
昨天
2
0
【分享实录】BANCOR算法详解及代码实现

1 活动基本信息 1)主题:【区块链技术工坊22期】BANCOR算法详解及代码实现 2)议题: BANCOR算法的特点和优劣势 BANCOR算法和举例 如何加入BANCOR.NETWORK交易所 如何开发自己的BANCOR去中心...

HiBlock
昨天
2
0
微信小程序(2)

开始看微信小程序的教程了。刚刚看完官方教程的视图层部分。这里摘录一些自己认为的部分关键点。 1.直接修改数值无法重新渲染,需要使用setData()方法; 2.列表渲染中:wx:key用于保持项目在...

MKjy
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部