如何用Percona XtraBackup进行MySQL从库的单表备份和恢复【转】
前提
应该确定采用的是单表一个表空间,否则不支持单表的备份与恢复。
在配置文件里边的mysqld段加上
innodb_file_per_table = 1
环境说明:
主库:192.168.0.1
从库1:192.168.0.2
从库2:192.168.0.3
备份工具 : Percona xtrabackup version 2.4.8 based on MySQL server 5.7.13 Linux (x86_64) (revision id: 97330f7)
在主库上创建chenfeng库:
mysql> create database chenfeng;
Query OK, row affected (0.08 sec) mysql> use chenfeng
Database changed mysql> create table duansf(id int (),name varchar());
Query OK, rows affected (0.14 sec) mysql> insert into duansf values(,'duansf');
Query OK, row affected (0.01 sec) mysql> insert into duansf values(,'duansf');
Query OK, row affected (0.01 sec)
只备份chenfeng库的duansf表:
[root@localhost backup]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=dsf0723 -S /tmp/mysql.sock --slave-info --safe-slave-backup --include=chenfeng.duansf /data/backup
innobackup部分参数解释:
--slave-info会将master的binary log文件名和偏移量保存到xtrabackup_slave_info文件中
--slave-info,备份从库, 加上 --slave-info 备份目录下会多生成一个 xtrabackup_slave_info 文件,
这里会保存主日志文件以及偏移, 文件内容类似于:
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=826270;
--safe-slave-backup会暂停slave的sql线程,待备份结束后再启动
--include=REGEXP
对xtrabackup参数--tables的封装,也支持ibbackup。备份包含的库表,例如:--include="test.*",意思是要备份test库中所有的表。
如果需要全备份,则省略这个参数;如果需要备份test库下的2个表:test1和test2,则写成:--include="test.test1|test.test2"。也可以使用通配符,如:--include="test.test*"。
本例中只备份chenfeng库下的duansf表,可以这么写--include=chenfeng.duansf
由于只备份了chenfeng库的duansf表,所以我们在生成的时间目录里2017-10-15_20-33-07只看到了chenfeng文件夹.
[root@localhost 2017-10-15_20-33-07]# ll /data/backup
总用量 12316
-rw-r-----. 1 root root 424 10月 15 20:33 backup-my.cnf
-rw-r-----. 1 root root 593 10月 15 20:33 ib_buffer_pool
-rw-r-----. 1 root root 12582912 10月 15 20:33 ibdata1
drwxr-x---. 2 root root 42 10月 15 20:33 chenfeng
-rw-r-----. 1 root root 21 10月 15 20:33 xtrabackup_binlog_info
-rw-r-----. 1 root root 117 10月 15 20:33 xtrabackup_checkpoints
-rw-r-----. 1 root root 573 10月 15 20:33 xtrabackup_info
-rw-r-----. 1 root root 2560 10月 15 20:33 xtrabackup_logfile
-rw-r-----. 1 root root 76 10月 15 20:33 xtrabackup_slave_info
[root@localhost 2017-10-15_20-33-07]# cd chenfeng
[root@localhost chenfeng]# ll
总用量 108
-rw-r-----. 1 root root 8586 10月 15 20:33 duansf.frm
-rw-r-----. 1 root root 98304 10月 15 20:33 duansf.ibd
把chenfeng目录打包放到/data/backup/bak目录下:
[root@localhost 2017-10-15_20-33-07]# tar czvf chenfeng.tar.gz chenfeng
[root@localhost 2017-10-15_20-33-07]# mv chenfeng.tar.gz /data/backup/bak/
解压缩做恢复用:
恢复数据的时候,要经过prepare(recovery)和restore两个步骤,
prepare导出表步骤:
[root@localhost backup]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=dsf0723 -S /tmp/mysql.sock --apply-log --export /data/backup/--15_20--
:: innobackupex: Starting the apply-log operation
在从库2上删除duansf表:
mysql> use chenfeng
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Database changed
mysql> show tables;
+-----------------+
| Tables_in_chenfeng |
+-----------------+
| duansf |
+-----------------+
row in set (0.00 sec) mysql> show tables;
+-----------------+
| Tables_in_chenfeng |
+-----------------+
| duansf |
+-----------------+
row in set (0.00 sec) mysql> delete from duansf;
Query OK, rows affected (0.06 sec) mysql> select * from duansf;
Empty set (0.00 sec)
从xtrabackup备份里恢复出duansf表数据:
删除表:
mysql> drop table duansf;
Query OK, 0 rows affected (0.06 sec)
重建表结构:
mysql> CREATE TABLE `duansf` (
-> `id` int(11) DEFAULT NULL,
-> `name` varchar(10) DEFAULT NULL
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.05 sec)
卸载表空间:
mysql> ALTER TABLE chenfeng.duansf DISCARD TABLESPACE;
Query OK, 0 rows affected (0.01 sec)
从备份里恢复:
[root@localhost chenfeng]# cp
/data/backup/2017-10-15_20-33-07/chenfeng/{duansf.ibd,duansf.cfg,duansf.frm}
/usr/local/mysql/data/chenfeng
[root@localhost chenfeng]# ll
总用量 116
-rw-r-----. 1 mysql mysql 65 10月 15 19:00 db.opt
-rw-r--r--. 1 root root 426 10月 15 21:13 duansf.cfg
-rw-r-----. 1 mysql mysql 8586 10月 15 21:06 duansf.frm
-rw-r-----. 1 root root 98304 10月 15 21:13 duansf.ibd
root@localhost data]# chown -R mysql:mysql /usr/local/mysql/data/chenfeng
装载表空间:
mysql> ALTER TABLE chenfeng.duansf import TABLESPACE;
Query OK, 0 rows affected, 1 warning (0.20 sec)
查看duansf表数据:
mysql> select * from duansf;
+------+--------+
| id | name |
+------+--------+
| 1 | duansf |
| 2 | duansf |
+------+--------+
2 rows in set (0.00 sec)
数据已恢复.
转自
http://blog.itpub.net/15498/viewspace-2146003/
如何用Percona XtraBackup进行MySQL从库的单表备份和恢复【转】的更多相关文章
- 使用Percona Xtrabackup创建MySQL slave库
一.使用Percona Xtrabackup创建MySQL slave库 MySQL Server 版本: Server version: 5.7.10-log MySQL Community Ser ...
- xtrabackup原理,整库,单表,部分备份恢复
物理备份xtrabackup原理 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle).Pe ...
- Percona XtraBackup的部分备份与恢复/单库备份/单表备份/指定库备份/指定表备份
本文是翻译的Percona XtraBackup 2.2版的官方文档,原文地址在此:https://www.percona.com/doc/percona-xtrabackup/2.2/innobac ...
- Percona XtraBackup 关于 MySQL备份还原的详细测试
一. Percona XtraBackup 的优点. (1)无需停止数据库进行InnoDB热备: (2)增量备份MySQL: (3)流压缩传输到其它服务器: (4)在线移动表: (5)能够比较容易地创 ...
- 使用 Xtrabackup 部署 MySQL 从库
数据库备份和恢复是数据库管理工作中非常重要的一个部分. 笔者常用的两个备份工具是mysqldump (逻辑备份)和 Xtrabackup (物理备份). 对于前者一般是用在凌晨的业务低峰期的定时任务中 ...
- (转载)用C#实现MySQL建库及建表
最近做一个项目,为了方便用户使用,希望可以在系统初始化的时候,自动实现MySQL数据库的建库和建表操作.在网上查了很多资料都没有找到合适的,偶尔在一个国外网站上看到了相关的内容,特把实现方法整理如下: ...
- MySQl的库操作、表操作和数据操作
一.库操作 1.1库的增删改查 (1)系统数据库: performance_schema:用来收集数据库服务器的性能参数,记录处理查询时发生的各种事件.锁等现象 mysql:授权库,主要存储系统用户的 ...
- mysql查询操作之单表查询、多表查询、子查询
一.单表查询 单表查询的完整语法: .完整语法(语法级别关键字的排列顺序如下) select distinct 字段1,字段2,字段3,... from 库名.表名 where 约束条件 group ...
- mysql四-1:单表查询
一.单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二.关键 ...
随机推荐
- JAVA LOG4J使用方法
首先,需要在项目中导入log4j使用的JAR包,导入结果如下图: 菜单:Build Path->Configure Build Path->Add Extern Jars 导入JAR包后, ...
- BZOJ3252 攻略(贪心+dfs序+线段树)
考虑贪心,每次选价值最大的链.选完之后对于链上点dfs序暴力修改子树.因为每个点最多被选一次,复杂度非常正确. #include<iostream> #include<cstdio& ...
- c++11 继承控制:final和override
c++11 继承控制:final和override #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <str ...
- 【Learning】矩阵树定理 Matrix-Tree
矩阵树定理 Matrix Tree 矩阵树定理主要用于图的生成树计数. 看到给出图求生成树的这类问题就大概要往这方面想了. 算法会根据图构造出一个特殊的基尔霍夫矩阵\(A\),接着根据矩阵树定理, ...
- js 判断js函数,变量是否存在
//是否存在指定函数 function isExitsFunction(funcName) {//这里的代码需要用try一下,因为当判断的函数是未定义时 浏览器会报错 try { if (typeof ...
- mysqldump导出多个数据库
mysqldump -uroot -p111111 -q -e -R -x --databases account game_s1 game_s2 ...... > D:\backup.sql ...
- 使用VS2012调试Dump文件
前一节我讲了怎么设置C++崩溃时生成Dump文件 , 点击 传送门 , 这一节我讲讲怎么使用 VS2012 调试生成的 Dump 文件 , 甚至可以精确到出错的那一行代码上面 ; 1. 生成 Dump ...
- GDB调试工具
1.运行代码的三种情况 a.运行时有逻辑问题 gdb a.out 设置断点 单行执行 b.运行代码没有退出 一直运行 结束不了 挂载调试 跟踪调试 -g ...
- opencv图片右转函数
因为需要将函数进行右转,发现opencv自带 的过于麻烦.自己写了个右转的.可以根据这个想法写出任何方向的 //函数功能,右转图片 IplImage* convertImage(IplImage* i ...
- GNU C ------ __attribute__
attribute是GNU C特色之一,attribute可以设置函数属性(Function Attribute ).变量属性(Variable Attribute )和类型属性(Type Attri ...