文档章节

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

IT--小哥
 IT--小哥
发布于 2018/10/17 19:33
字数 638
阅读 8
收藏 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--小哥
粉丝 47
博文 120
码字总数 93581
作品 0
东城
数据库管理员
私信 提问
mysql备份工具innobackupex,xtrabackup-2.1安装与测试

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

SANSOM
2013/09/10
0
3
XtraBackup 原理与安装

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

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

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

perofu
2014/12/05
0
0
逻辑备份mysqldump和物理备份xtrabackup的流程

mysqldump备份原理 备份的基本流程如下: FLUSH TABLES FLUSH TABLES WITH READ LOCK SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ START TRANSACTION WITH CONSISTENT SNAPSHO......

wdw王大为
2018/05/23
0
0
XtraBackup 备份与恢复实例讲解

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

xiaocao13140
2018/05/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

在 Linux 上使用 tarball

Tarball 提供了一种在 Linux 系统上备份和管理一组文件的通用方法。请按照以下提示了解如何创建它们,以及从中提取和删除单个文件。 “tarball” (LCTT 译注:国内也常称为“tar 包”)一词...

Linux就该这么学
6分钟前
0
0
2018年AI和ML(NLP、计算机视觉、强化学习)技术总结和2019年趋势(上)

摘要: 回顾2018,展望2019,计算机科学技术继续前进! 1、简介: 过去几年一直是人工智能爱好者和机器学习专业人士最幸福的时光。因为这些技术已经发展成为主流,并且正在影响着数百万人的生...

阿里云官方博客
11分钟前
0
0
UnsatisfiedLinkError sawindbg.dll

方法:搜索sawindbg.dll,然后将文件报错的目录下

洛水
12分钟前
0
0
说说不知道的Golang中参数传递

本文由云+社区发表 导言 几乎每一个C++开发人员,都被面试过有关于函数参数是值传递还是引用传递的问题,其实不止于C++,任何一个语言中,我们都需要关心函数在参数传递时的行为。在golang中...

腾讯云加社区
13分钟前
0
0
207. 多数据源 ssm项目

参考博客: https://blog.csdn.net/a15020059230/article/details/76677322 1.效果 一个项目同时连接多个数据源 2. 过程 2.1 搭建单数据源ssm项目 https://my.oschina.net/springMVCAndsprin...

Lucky_Me
13分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部