官网最新版本下载地址
https://www.percona.com/downloads/XtraBackup/LATEST/
yum install percona-xtrabackup; [epel]

备份:innobackupex [option] BACKUP-ROOT-DIR

选项说明:https://www.percona.com/doc/percona-xtrabackup/LATEST/genindex.html

--user;该选项表示备份账号
--password;该选项表示备份的密码
--host;该选项表示备份数据库的地址
--databases;该选项接受的参数为数据名,如果要指定多个数据库,彼此间需要以空格隔开;如:"xtra_test dba_test", \
同时,在指定某数据库时,也可以只指定其中的某张表。如:"mydatabase.mytable"。该选项对innodb引擎表无效,还是会备份所有innodb表
--defaults-file;该选项指定从哪个文件读取MySQL配置,必须放在命令行第一个选项位置
--incremental;该选项表示创建一个增量备份,需要指定--incremental-basedir
--incremental-basedir;该选项指定为前一次全备份或增量备份的目录,与--incremental同时使用
--incremental-dir;该选项表示还原时增量备份的目录
--include=name;指定表名,格式:databasename.tablename

Prepare:innobackupex --apply-log [option] BACKUP-DIR

--apply-log;一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务. \
因此,此时数据文件仍处理不一致状态。此选项作用是通过回滚未提交的事务及同步已经提交的事务至数据文件使数据文件处于一致性状态
--use-memory;该选项表示和--apply-log选项一起使用,prepare 备份的时候,xtrabackup做crash recovery分配的内存大小,单位字节。也可(1MB,1M,1G,1GB),推荐1G
--export;表示开启可导出单独的表之后再导入其他Mysql中
--redo-only;此选项在prepare base full backup,往其中merge增量备份时候使用

还原:innobackupex --copy-back [选项] BACKUP-DIR

选项说明:
--copy-back;做数据恢复时将备份数据文件拷贝到MySQL服务器的datadir
--move-back;这个选项与--copy-back相似,唯一的区别是它不拷贝文件,而是移动文件到目的地。这个选项移除backup文件,用时候必须小心. \
使用场景:没有足够的磁盘空间同事保留数据文件和Backup副本

还原注意事项:
1.datadir目录必须为空。除非指定innobackupex --force-non-empty-directorires选项指定,否则--copy-backup选项不会覆盖
2.在restore之前,必须shutdown MySQL实例,不能将一个运行中的实例restore到datadir目录中
3.由于文件属性会被保留,大部分情况下需要在启动实例之前将文件的属主改为mysql,这些文件将属于创建备份的用户 chown -R mysql:mysql /data/mysql \
以上需要在用户调用innobackupex之前完成--force-non-empty-directories:指定该参数时候,使得innobackupex --copy-back或--move-back选项转移文件到非空目录, \
已存在的文件不会被覆盖。如果--copy-back和--move-back文件需要从备份目录拷贝一个在datadir已经存在的文件,会报错失败

注意:单表导出和导入对版本有要求

~ ]# mysql --version
mysql Ver 15.1 Distrib 10.2.15-MariaDB, for Linux (x86_64) using readline 5.1

1.修改配置文件,启动服务导入测试数据库
sed -i '/\[mysqld\]/a\innodb_file_per_table' /etc/my.cnf
systemctl restart mairadb
msyql < hellodb_innodb.sql

2.备份表和表结构[建议备份到远程主机]
mkdir /backup
innobackupex --include="hellodb.students" /backup/
mysql -e 'show create table hellodb.students' > students.sql;/*备份表结构*/

3.删除表,模拟数据文件损坏
mysql -e 'drop table hellodb.students'
mysql -e 'select * from hellodb.students'

4.创建表文件
vi ./students.sql;/*删除注释信息*/
mysql hellodb < students.sql;
innobackupex --apply-log --export /backup/2018-06-14_15-17-43/;/*整数数据库导出操作,完成后数据库目录下会多出".cfg,.exp"2个文件*/

5.删除创建表文件所产生"students.ibd"表空间文件
~]# ls /data/mysql/hellodb/students.*
/data/mysql/hellodb/students.frm /data/mysql/hellodb/students.ibd
mysql -e 'alter table hellodb.students discard tablespace';/*删除表空间文件[存放用户数据]*/

6.拷贝表数据
cp /backup/2018-06-14_15-17-43/hellodb/students.{cfg,exp,ibd} /data/mysql/hellodb/
chown -R mysql. /data/mysql/hellodb
mysql -e 'alter table hellodb.students import tablespace';/*还原表空间文件*/

xtrabackup单表备份与恢复的更多相关文章

  1. 如何用Percona XtraBackup进行MySQL从库的单表备份和恢复【转】

    前提 应该确定采用的是单表一个表空间,否则不支持单表的备份与恢复. 在配置文件里边的mysqld段加上 innodb_file_per_table = 1 环境说明: 主库:192.168.0.1 从 ...

  2. 【理论篇】Percona XtraBackup 恢复单表

    小明在某次操作中,误操作导致误删除了某个表,需要立即进行数据恢复. 如果是数据量较小的实例,并且有备份,即便是全备,做一次全量恢复,然后单表导出导入,虽然麻烦一点,却也花不了多少时间:如果是数据量大的 ...

  3. 从xtrabackup备份恢复单表

    目前对MySQL比较流行的备份方式有两种,一种上是使用自带的mysqldump,另一种是xtrabackup,对于数据时大的环境,普遍使用了xtrabackup+binlog进行全量或者增量备份,那么 ...

  4. 从xtrabackup备份恢复单表【转】

    目前对MySQL比较流行的备份方式有两种,一种上是使用自带的mysqldump,另一种是xtrabackup,对于数据时大的环境,普遍使用了xtrabackup+binlog进行全量或者增量备份,那么 ...

  5. 单表60亿记录等大数据场景的MySQL优化和运维之道

    此文是根据杨尚刚在[QCON高可用架构群]中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处. 杨尚刚,美图公司数据库高级DBA,负责美图后端数据 ...

  6. 【转】单表60亿记录等大数据场景的MySQL优化和运维之道 | 高可用架构

    此文是根据杨尚刚在[QCON高可用架构群]中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处. 杨尚刚,美图公司数据库高级DBA,负责美图后端数据 ...

  7. [转载] 单表60亿记录等大数据场景的MySQL优化和运维之道 | 高可用架构

    原文: http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=209406532&idx=1&sn=2e9b0cc02bdd ...

  8. 单表60亿记录等大数据场景的MySQL优化和运维之道 | 高可用架构

    015-08-09 杨尚刚 高可用架构 此文是根据杨尚刚在[QCON高可用架构群]中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处. 杨尚刚,美 ...

  9. MYSQL基础操作之单表的增删改查

    一.添加数据. -- 1.创建表,并插入一定的数据. CREATE TABLE STUDENT( ID INT, USERNAME ), SERVLET INT, JSP INT, ADDRESS ) ...

随机推荐

  1. 布局inline-block问题

    当在一行中需要展示多个拥有块级属性的标签元素时,通常选择display:inline-block; 优点:不用设置浮动或定位,浮动脱离文档流还需要清除浮动,定位降低扩展性. 问题: 1.标签元素之间会 ...

  2. 小A买彩票-(组合数)

    链接:https://ac.nowcoder.com/acm/contest/549/C来源:牛客网 题目描述 小A最近开始沉迷买彩票,并且希望能够通过买彩票发家致富.已知购买一张彩票需要3元,而彩票 ...

  3. step_by_step_CSRF/ XSRF_问题描述

    接触Asp.net boilerplate 一段时间,一次同事将他的代码添加到zero项目模板中,他将路由配置成他的页面,目的是要让zero项目登录成功之后跳转到他的页面,可是通过fiddler监视请 ...

  4. Vue父子组件生命过程

    加载渲染过程 父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount-& ...

  5. TreeView的三种状态,全选,全不选,半选中

    我知道的设置treeview节点的三种状态,如果不是买的控件,那么通过代码,只能设置两种状态,我知道的有三种方法, 第一种是重写treeview,第二种是把三种状态做成小图标,让节点复选框随着不同的状 ...

  6. django filter or 多条件查询

    功能:django中实现多条件查询 或关系: from django.db.models import Q return qs.filter(Q(notice_to_group__contains=' ...

  7. 将jar包添加到本地maven仓库中

    在使用maven依赖添加jar包时,有时会遇到下载不成功的问题,这时需要将jar手动添加到本地的maven仓库中. 准备工作 配置好maven的环境变量 已经下载好的jar包 具体过程 win + R ...

  8. 20-matlab全排列-函数调用

    matlab中global的用法 Matlab 中子函数不传参直接调用主函数global变量方法  在一个m文件里要调用一个函数(自定义的),但是我希望这个函数能利用并修改workspace中的变量( ...

  9. Vue添加jquer插件

    一.现象 综合开发需要,需要引用使用 二.解决 1.先安装jquer插件,命令运行: npm i jquery --save-dev (tips:  i  也就是 install --save-dev ...

  10. Unity3D-RayMarch-几何图元1-添加基本着色模型

    效果图: 使用phong着色模型,将环境光.物体的漫反射光.镜面光三种光效加合而得到上图的效果 raymarch 的shader代码: // Upgrade NOTE: replaced '_Obje ...