官网最新版本下载地址
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. JAVA WEN开发环境与搭建

    一.下载安装JDK1.配置jdk开发环境JAVA_HOME 2.path 二.下载安装eclipse javaEE版本 三.安装部署tomcat3.1.安装: 直接解压到指定目录即可.(注:目录不要太 ...

  2. Visual Studio Enterprise 2019序列号

    Visual Studio Enterprise 2019序列号:BF8Y8-GN2QH-T84XB-QVY3B-RC4DF Visual Studio Professional 2019序列号:NY ...

  3. java.lang.RuntimeException: Class "org.apache.maven.cli.MavenCli$CliRequest" not found

    IDEA版本:14.1 maven版本:apache-maven-3.3.9-bin IDEA的maven项目,在pom文件执行Maven--Reimport,引入jar包依赖,报错java.lang ...

  4. Selenium Grid和IE /Firefox各种填坑

    使用selenium grid的步骤 1.确保hub和node都安装并且配置好了java jdk. 2.在hub上运行以下命令. java -jar C:\Software\selenium\sele ...

  5. Exp1 PC平台逆向破解 20165110 石钰

    Exp1 PC平台逆向破解 20165110 石钰 一.实践目标 1.实验背景 实践对象是pwn1的Linux可执行文件,该程序的正常该程序正常执行流程是:main调用foo函数(oo函数会简单回显任 ...

  6. django xadmin后台页面实现二级联动

    思路 先找到控件id ,这样就可以监听change事件 然后把自己写的js加入xadmin中 添加url和view,接受ajax请求和发送数据 第一步:找到联动上下级的ID 在浏览器中通过F12查看 ...

  7. linux上安装MongoDB副本集(带keyfile安全认证以及用户权限)

    搭建前准备 MongoDB版本:4.0 主要参考搭建MongoDB副本集网站:https://www.jianshu.com/p/f021f1f3c60b 安装之前最好先确定一下几点: 防火墙关闭 M ...

  8. MYSQL后更改ROOT的密码后无法启动服务报错1067

    安装MYSQL后更改了ROOT的密码后用 net start mysql 启动时报错1067.使用以下命令:1.进入mysql安装目录的bin目录下:cd C:\Program Files\MySQL ...

  9. django2.0解决跨域问题

    跨域问题一:(cors跨域问题) 解决方法: 1.安装 django-cors-headers 2.修改 setting.py INSTALLED_APPS = [ ... 'corsheaders' ...

  10. eclipse Filter web.xml 问题解决 异步请求@WebServlet

    <filter> <filter-name>AsynServlete</filter-name> <filter-class>com.kad.app.a ...