如何用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 限制条数 二.关键 ...
随机推荐
- python配合Fiddler获取windows app登录时生成cookie实例
工具Fiddler/python3 打开Fiddler,清空一下Fidder里面的请求记录 打开app,进行登录,注意Fiddler里的请求变化 在弹出app登录的时候Fiddler里已经有了四个请求 ...
- Linux gcc和gdb程序调试用法 {转}
gcc一般调试格式: gcc -Wall -o test test.c // -wall 显示程序错误详细信息 gcc -v // 显示gcc的版本 gcc -o{1,2,3} t ...
- C++ STL 常用排序算法
C++ STL 常用排序算法 merge() 以下是排序和通用算法:提供元素排序策略 merge: 合并两个有序序列,存放到另一个序列. 例如: vecIntA,vecIntB,vecIntC是用ve ...
- 【刷题】BZOJ 3551 [ONTAK2010]Peaks加强版
Description [题目描述]同3545 Input 第一行三个数N,M,Q. 第二行N个数,第i个数为h_i 接下来M行,每行3个数a b c,表示从a到b有一条困难值为c的双向路径. 接下来 ...
- THUWC2017随机二分图
题面链接 洛谷 sol 唯一的重点是拆边... 0的不管,只看1.2. 先无论如何把两条边的边权赋为\(0.5\)然后我们发现如果两个都选了. 对于第一种边,我们发现如果\(\frac{1}{2} * ...
- Codeforces 633C Spy Syndrome 2 | Trie树裸题
Codeforces 633C Spy Syndrome 2 | Trie树裸题 一个由许多空格隔开的单词组成的字符串,进行了以下操作:把所有字符变成小写,把每个单词颠倒过来,然后去掉单词间的空格.已 ...
- BZOJ2800 [Poi2012]Leveling Ground 【扩展欧几里得 + 三分 + 堆】
题目链接 BZOJ2800 题解 区间加极难操作,差分之后可转化为两点一加一减 那么现在问题就将每个点暂时独立开来 先判定每个点是否被\((A,B)\)整除,否则无解 之后我们先将\(A,B\)化为互 ...
- yum报错Segmentation fault
yum install 安装一个包,提示 Segmentation fault,可以确定的是这个源肯定是可用的. 经查询,是 libz 这个库存在多个版本,导致冲突. # ldconfig -v | ...
- C++继承与组合的区别
C++程序开发中,设计孤立的类比较容易,设计相互关联的类却比较难,这其中会涉及到两个概念,一个是继承(Inheritance),一个是组合(Composition).因为二者有一定的相似性,往往令程序 ...
- 前端学习 -- Xhtml语法规范
Xhtml语法规范 HTML中不区分大小写,但是尽量使用小写: HTML的注释不能嵌套: 标签必须结构完整{要么成对出现,要么自结束标签,虽然浏览器会帮我们修正一些不符合规范的内容} 标签可以嵌套但是 ...