本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn

Xtrabackup有两个主要的工具:xtrabackup、innobackupex
(1)xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表
(2)innobackupex-1.5.1则封装了xtrabackup,是一个脚本封装,所以能同时备份处理innodb和myisam,但在处理myisam时需要加一个读锁

安装percona-xtrabackup

1、安装依赖包

  1. yum -y install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bison libtool ncurses-devel libgcrypt-devel libev-devel libcurl*
  2. yum -y install perl-Time-HiRes
  3. yum -y install perl-DBI
  4. yum -y install perl-DBD-MySQL
  5. yum install perl-IO-Socket-SSL
  6.  
  7. cd /usr/local
  8. wget http://dist.schmorp.de/libev/libev-4.22.tar.gz
  9. tar xvzf libev-4.22.tar.gz
  10. cd libev-4.22
  11. ./configure
  12. make
  13. make install

2、编译安装percona-xtrabackup

此处要注意xtrabackup的版本支持mysql哪个版本,可以到xtrabackup官网查看文档,我此处的版本支持mysql5.7.11

  1. cd /usr/local
  2. wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.2/source/tarball/percona-xtrabackup-2.4.2.tar.gz
  3. tar -zxvf percona-xtrabackup-2.2..tar.gz
  4. cd percona-xtrabackup-2.2./
  5. cmake -DBUILD_CONFIG=xtrabackup_release -DWITH_MAN_PAGES=OFF && make -j4 --DINSTALL_LAYOUT=/usr/local/xtrabackup
  6. make
  7. make install

这样是默认装到/usr/local/xtrabackup目录下的。

3、加入环境变量

  1. # vi ~/.bash_profile
  2. export PATH=/usr/local/xtrabackup/bin:$PATH
  3. # source ~/.bash_profile

4、备份测试

  • 在Master和Slave上安装xtrabackup:

注意:此处备份是根据主从环境来的,[参考来源]http://heylinux.com/archives/3777.html

  • 在Master和Slave上创建一个用于备份的用户backup-user:
  1. mysql> CREATE USER 'backup-user'@'localhost' IDENTIFIED BY 'backup-pass';
  2. mysql> GRANT SUPER, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'backup-user'@'localhost';
  3. mysql> FLUSH PRIVILEGES;
  4. mysql> EXIT;
  • 在Master上备份
  1. # 常规方式
  2. [root@idc1-master1 ~]# innobackupex --defaults-file=/etc/my_3308.cnf --user=backup-user --password=backup-pass --no-lock --use-memory=4G /mysql-backup/
  3.  
  4. [root@idc1-master1 ~]# ls -rt1 /mysql-backup// | tail -n
  5. --26_03--
  6.  
  7. # 压缩打包方式
  8. [root@idc1-master1 ~]# innobackupex --defaults-file=/etc/my_3308.cnf --user=backup-user --password=backup-pass --no-lock --use-memory=4G --compress --compress-threads= --stream=xbstream --parallel= /mysql-backup/ > /mysql-backup//$(date +%Y-%m-%d_%H-%M-%S).xbstream
  9.  
  10. [root@idc1-master1 ~]# ls -rt1 /mysql-backup// | tail -n
  11. --26_03--.xbstream
  1. 在Slave上备份
  1. # 常规方式
  2. [root@idc1-slave1 ~]# innobackupex --defaults-file=/etc/my_3308.cnf --user=backup-user --password=backup-pass --no-lock --use-memory=4G --slave-info --safe-slave-backup /mysql-backup/
  3.  
  4. [root@idc1-slave1 ~]# ls -rt1 /mysql-backup// | tail -n
  5. --26_03--
  6.  
  7. # 压缩打包方式
  8. [root@idc1-slave1 ~]# innobackupex --defaults-file=/etc/my_3308.cnf --user=backup-user --password=backup-pass --no-lock --use-memory=4G --slave-info --safe-slave-backup --compress --compress-threads= --stream=xbstream --parallel= /mysql-backup/ > /mysql-backup//$(date +%Y-%m-%d_%H-%M-%S).xbstream
  9.  
  10. [root@idc1-slave1 ~]# ls -rt1 /mysql-backup// | tail -n
  11. --26_03--.xbstream
  1. 在Master上恢复
  1. [root@idc1-master1 ~]# /etc/init.d/mysql_3308 stop
  2.  
  3. [root@idc1-master1 ~]# mv /opt/mysql_3308/data /opt/mysql_3308/data_broken
  4. [root@idc1-master1 ~]# mkdir /opt/mysql_3308/data
  5.  
  6. # 常规方式
  7. [root@idc1-master1 ~]# innobackupex --apply-log --use-memory=4G /mysql-backup//--26_03--
  8. [root@idc1-master1 ~]# innobackupex --copy-back --use-memory=4G /mysql-backup//--26_03-- --defaults-file=/etc/my_3308.cnf
  9.  
  10. # 压缩打包方式
  11. [root@idc1-master1 ~]# mkdir -p /mysql-backup//--26_03--
  12. [root@idc1-master1 ~]# xbstream -x < /mysql-backup//--26_03--.xbstream -C /mysql-backup//--26_03--
  13. [root@idc1-master1 ~]# innobackupex --decompress --parallel= /mysql-backup//--26_03--
  14. [root@idc1-master1 ~]# find /mysql-backup//--26_03-- -name "*.qp" -delete
  15. [root@idc1-master1 ~]# innobackupex --apply-log --use-memory=4G /mysql-backup//--26_03--
  16. [root@idc1-master1 ~]# innobackupex --copy-back --use-memory=4G /mysql-backup//--26_03-- --defaults-file=/etc/my_3308.cnf
  17.  
  18. [root@idc1-master1 ~]# chown -R mysql:mysql /opt/mysql_3308/data
  19.  
  20. [root@idc1-master1 ~]# /etc/init.d/mysql_3308 start
  1.  
  1. 在Slave上恢复
  1. [root@idc1-slave1 ~]# /etc/init.d/mysql_3308 stop
  2.  
  3. [root@idc1-slave1 ~]# mv /opt/mysql_3308/data /opt/mysql_3308/data_broken
  4. [root@idc1-slave1 ~]# mkdir /opt/mysql_3308/data
  5.  
  6. # 常规方式
  7. [root@idc1-slave1 ~]# innobackupex --apply-log --use-memory=4G /mysql-backup//--26_03--
  8. [root@idc1-slave1 ~]# innobackupex --copy-back --use-memory=4G /mysql-backup//--26_03-- --defaults-file=/etc/my_3308.cnf
  9.  
  10. # 压缩打包方式
  11. [root@idc1-slave1 ~]# mkdir -p /mysql-backup//--26_03--
  12. [root@idc1-slave1 ~]# xbstream -x < /mysql-backup//--26_03--.xbstream -C /mysql-backup//--26_03--
  13. [root@idc1-slave1 ~]# innobackupex --decompress --parallel= /mysql-backup//--26_03--
  14. [root@idc1-slave1 ~]# find /mysql-backup//--26_03-- -name "*.qp" -delete
  15. [root@idc1-slave1 ~]# innobackupex --apply-log --use-memory=4G /mysql-backup//--26_03--
  16. [root@idc1-slave1 ~]# innobackupex --copy-back --use-memory=4G /mysql-backup//--26_03-- --defaults-file=/etc/my_3308.cnf
  17.  
  18. [root@idc1-slave1 ~]# chown -R mysql:mysql /opt/mysql_3308/data
  19.  
  20. [root@idc1-slave1 ~]# /etc/init.d/mysql_3308 start
  21.  
  22. [root@idc1-slave1 ~]# cd /opt/mysql_3308/data
  23. # 从Master的备份中恢复时查看 xtrabackup_slave_info
  24. [root@idc1-slave1 data]# cat xtrabackup_binlog_pos_innodb
  25. ./bin-log-mysqld.
  26.  
  27. # 从Slave的备份中恢复时查看 xtrabackup_slave_info
  28. [root@idc1-slave1 data]# cat xtrabackup_slave_info
  29. CHANGE MASTER TO MASTER_LOG_FILE='bin-log-mysqld.000222', MASTER_LOG_POS=
  30.  
  31. [root@idc1-slave1 data]# mysql_3308 -uroot -p
  32. mysql> change master to
  33. master_host='idc1-master1',
  34. master_port=,
  35. master_user='backup-user',
  36. master_password='backup-pass',
  37. master_log_file='bin-log-mysqld.000222',
  38. master_log_pos=;
  39.  
  40. mysql> start slave;
  41. mysql> show slave status\G;
  42. mysql> exit;
  1.  
  1. 增量备份与恢复

增量备份的原理是,基于一个现有的完整备份,针对InnoDB-based表仅备份增量的部分,针对MyISAM表则仍然保持全量备份。
备份环境:
在Slave服务器上进行
备份策略:
每天1次完整备份 + 每天2次增量备份
具体步骤:

7.1 增量备份
7.1.1 准备完整备份(压缩但不打包方式):

  1. [root@idc1-slave1 ~]# innobackupex --defaults-file=/etc/my_3308.cnf --user=backup-user --password=backup-pass --no-lock --use-memory=4G --slave-info --safe-slave-backup --compress --compress-threads= /mysql-backup/
  2.  
  3. [root@idc1-slave1 ~]# ls -rt1 /mysql-backup// | tail -n
  4. --26_06--
  5.  
  6. [root@idc1-slave1 ~]# cat /mysql-backup//--26_06--/xtrabackup_checkpoints
  7. backup_type = full-backuped
  8. from_lsn =
  9. to_lsn =
  10. last_lsn =
  11. compact =
  12. recover_binlog_info =
  1.  

7.1.2 进行第1次增量备份(压缩但不打包方式):

  1. [root@idc1-slave1 ~]# innobackupex --defaults-file=/etc/my_3308.cnf --user=backup-user --password=backup-pass --no-lock --use-memory=4G --slave-info --safe-slave-backup --compress --compress-threads= --incremental /mysql-backup/ --incremental-basedir=/mysql-backup//--26_06--
  2.  
  3. [root@idc1-slave1 ~]# ls -rt1 /mysql-backup// | tail -n
  4. --26_06--
  5.  
  6. [root@idc1-slave1 ~]# cat /mysql-backup//--26_06--/xtrabackup_checkpoints
  7. backup_type = incremental
  8. from_lsn =
  9. to_lsn =
  10. last_lsn =
  11. compact =
  12. recover_binlog_info =
  1.  

7.1.3 进行第2次增量备份(压缩但不打包方式):

  1. [root@idc1-slave1 ~]# innobackupex --defaults-file=/etc/my_3308.cnf --user=backup-user --password=backup-pass --no-lock --use-memory=4G --slave-info --safe-slave-backup --compress --compress-threads= --incremental /mysql-backup/ --incremental-basedir=/mysql-backup//--26_06--
  2.  
  3. [root@idc1-slave1 ~]# ls -rt1 /mysql-backup// | tail -n
  4. --26_06--
  5.  
  6. [root@idc1-slave1 ~]# cat /mysql-backup//--26_06--/xtrabackup_checkpoints
  7. backup_type = incremental
  8. from_lsn =
  9. to_lsn =
  10. last_lsn =
  11. compact =
  12. recover_binlog_info =

7.2 增量恢复:
7.2.1 取回完整备份(必须加参数 –redo-only)

  1. [root@idc1-slave1 ~]# innobackupex --decompress --parallel= /mysql-backup//--26_06--
  2. [root@idc1-slave1 ~]# find /mysql-backup//--26_06-- -name "*.qp" -delete
  3. [root@idc1-slave1 ~]# innobackupex --apply-log --redo-only --use-memory=4G /mysql-backup//--26_06--

7.2.2 合并第1个增量(必须加参数 –redo-only)

  1. [root@idc1-slave1 ~]# innobackupex --decompress --parallel= /mysql-backup//--26_06--
  2. [root@idc1-slave1 ~]# find /mysql-backup//--26_06-- -name "*.qp" -delete
  3. [root@idc1-slave1 ~]# innobackupex --apply-log --redo-only --use-memory=4G /mysql-backup//--26_06-- --incremental-dir=/mysql-backup//--26_06--

7.2.3 合并第2个增量(合并最后一个增量备份时不加 –redo-only)

  1. [root@idc1-slave1 ~]# innobackupex --decompress --parallel= /mysql-backup//--26_06--
  2. [root@idc1-slave1 ~]# find /mysql-backup//--26_06-- -name "*.qp" -delete
  3. [root@idc1-slave1 ~]# innobackupex --apply-log --use-memory=4G /mysql-backup//--26_06-- --incremental-dir=/mysql-backup//--26_06--
  1.  

7.2.4 准备完整备份(定稿完整备份时不加 –redo-only)

  1. [root@idc1-slave1 ~]# innobackupex --apply-log --use-memory=4G /mysql-backup//--26_06--

7.2.5 恢复完整备份(按照以上 常规方式,执行从–copy-back开始及之后的步骤)

CENTOS6.6下mysql5.7.11的percona-xtrabackup安装与备份的更多相关文章

  1. [转帖]CENTOS6.6下mysql5.7.11带boost和不带boost的源码安装

    CENTOS6.6下mysql5.7.11带boost和不带boost的源码安装 本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuir ...

  2. CENTOS6.6下mysql5.7.11带boost和不带boost的源码安装

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn Mysql5.7版本更新后有很多变化,比如json等,连安装都有变化 ...

  3. (转)CentOS 7 下 MySQL 5.7 配置 Percona Xtrabackup

    CentOS 7 下 MySQL 5.7 配置 Percona Xtrabackup 原文:http://qizhanming.com/blog/2017/05/10/install-percona- ...

  4. 小型网站MYSQL问题二:Percona Xtrabackup实现数据库备份和恢复

    1.安装软件仓库(不要问我为什么不用源码安装,好吧,其实我懒.) 1 2 3 4 5 6 7 8 wget https://www.percona.com/downloads/percona-rele ...

  5. MySQL5.7.11(ZIP)安装

    1.环境变量-系统变量: Path添加:;D:\worksoftware\mysql-5.7.11\bin 2.配置更改:my-default.ini,注意是ANSI编码 添加 #(mysql所在目录 ...

  6. Percona XtraBackup 安装介绍篇

    XtraBackup介绍 XtraBackup是Percona公司的开源项目,用以实现类似Innodb官方的热备份工具InnoDB Hot Backup的功能,它支持在线热备份(备份时不影响数据读写) ...

  7. Percona XtraBackup 关于 MySQL备份还原的详细测试

    一. Percona XtraBackup 的优点. (1)无需停止数据库进行InnoDB热备: (2)增量备份MySQL: (3)流压缩传输到其它服务器: (4)在线移动表: (5)能够比较容易地创 ...

  8. mysql数据库-备份与还原-Percona XtraBackup 2.4备份工具使用

    目录 xtrabackup 特点 备份生成的相关文件 xtrabackup 安装 xtrabackup 用法 1 备份 2 预备份 3 还原 4 其他 还原注意事项 xtrabackup实现完全备份及 ...

  9. Percona Xtrabackup 安装

    1.安装Percona Xtrabackup YUM Repository --安装repository [root@manager ~]# yum install https://www.perco ...

随机推荐

  1. Idea Maven创建Web项目

    1.创建Maven项目 1.1File->New->Project 1.2填写GroupId和ArtifactId 1.3直接Finish,然后等一会,等Maven加载完 完成以后的项目结 ...

  2. ios VS android

    本来是学习IOS的,但是最近接到的是有关于安卓的项目,害怕弄混,所以在这个技术博客里写一下对比. IOS                                                 ...

  3. Oracle问题之ORA-01031权限不足

    Oracle问题之ORA-01031权限不足 此时应该按照如下写: sqlplus /nolog conn / as sysdba shutdown immediate 本地以sysdba身份登录数据 ...

  4. linkin大话面向对象--方法详解

    1,方法的参数传递机制:值传递. 首先弄懂2个概念:形参和实参. 形参(形式参数):相当于函数(Java中也把函数称之为方法)中的局部变量,在函数被调用时创建,并以传入的实参作为起始值,函数调用结束时 ...

  5. Java项目专栏之数据库建表

    Java项目专栏之数据库建表 数据库建表前期准备 1. 安装mysql:数据库语言,语法和sql server差不太多,如果习惯于sql server可以不用mysql. 2. 安装navicat:可 ...

  6. Struts2.3.34+Hibernate 4.x+Spring4.x 整合二部曲之上部曲

    1 导入jar包 可以复制jar包或maven导入,本文最后会给出github地址 2 导入log4j.properties文件 og4j.appender.stdout=org.apache.log ...

  7. Notepad++ 运行java(转)

    Notepad++ 运行java java, 2013/05/04, 9 replies, 6,007 views 文章目录 Notepad++ for java 安装必须的程序 配置NppExec ...

  8. Java中的代码点和代码单元(转)

    文章来源:http://blog.csdn.net/weizhaozhe/article/details/3909079 这篇文章讲的很细,但是对于初学者也很难理解,在后面的笔记中,我会陈述自己的简单 ...

  9. https原理及实践

    转载请注明出处 安全知识 网络安全问题 数据机密性 在网络传输数据信息时,对数据的加密是至关重要的,否则所有传输的数据都是可以随时被第三方看到,完全没有机密性可言. 数据机密性解决问题思路 利用算法 ...

  10. canvas将图片转为base64

    最简例子 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta ...