CENTOS6.6下mysql5.7.11的percona-xtrabackup安装与备份
本文来自我的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、安装依赖包
yum -y install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bison libtool ncurses-devel libgcrypt-devel libev-devel libcurl*
yum -y install perl-Time-HiRes
yum -y install perl-DBI
yum -y install perl-DBD-MySQL
yum install perl-IO-Socket-SSL cd /usr/local
wget http://dist.schmorp.de/libev/libev-4.22.tar.gz
tar xvzf libev-4.22.tar.gz
cd libev-4.22
./configure
make
make install
2、编译安装percona-xtrabackup
此处要注意xtrabackup的版本支持mysql哪个版本,可以到xtrabackup官网查看文档,我此处的版本支持mysql5.7.11
cd /usr/local
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.2/source/tarball/percona-xtrabackup-2.4.2.tar.gz
tar -zxvf percona-xtrabackup-2.2..tar.gz
cd percona-xtrabackup-2.2./
cmake -DBUILD_CONFIG=xtrabackup_release -DWITH_MAN_PAGES=OFF && make -j4 --DINSTALL_LAYOUT=/usr/local/xtrabackup
make
make install
这样是默认装到/usr/local/xtrabackup目录下的。
3、加入环境变量
# vi ~/.bash_profile
export PATH=/usr/local/xtrabackup/bin:$PATH
# source ~/.bash_profile
4、备份测试
- 在Master和Slave上安装xtrabackup:
注意:此处备份是根据主从环境来的,[参考来源]http://heylinux.com/archives/3777.html
- 在Master和Slave上创建一个用于备份的用户backup-user:
mysql> CREATE USER 'backup-user'@'localhost' IDENTIFIED BY 'backup-pass';
mysql> GRANT SUPER, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'backup-user'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> EXIT;
- 在Master上备份
# 常规方式
[root@idc1-master1 ~]# innobackupex --defaults-file=/etc/my_3308.cnf --user=backup-user --password=backup-pass --no-lock --use-memory=4G /mysql-backup/ [root@idc1-master1 ~]# ls -rt1 /mysql-backup// | tail -n
--26_03-- # 压缩打包方式
[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 [root@idc1-master1 ~]# ls -rt1 /mysql-backup// | tail -n
--26_03--.xbstream
- 在Slave上备份
# 常规方式
[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/ [root@idc1-slave1 ~]# ls -rt1 /mysql-backup// | tail -n
--26_03-- # 压缩打包方式
[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 [root@idc1-slave1 ~]# ls -rt1 /mysql-backup// | tail -n
--26_03--.xbstream
- 在Master上恢复
[root@idc1-master1 ~]# /etc/init.d/mysql_3308 stop [root@idc1-master1 ~]# mv /opt/mysql_3308/data /opt/mysql_3308/data_broken
[root@idc1-master1 ~]# mkdir /opt/mysql_3308/data # 常规方式
[root@idc1-master1 ~]# innobackupex --apply-log --use-memory=4G /mysql-backup//--26_03--
[root@idc1-master1 ~]# innobackupex --copy-back --use-memory=4G /mysql-backup//--26_03-- --defaults-file=/etc/my_3308.cnf # 压缩打包方式
[root@idc1-master1 ~]# mkdir -p /mysql-backup//--26_03--
[root@idc1-master1 ~]# xbstream -x < /mysql-backup//--26_03--.xbstream -C /mysql-backup//--26_03--
[root@idc1-master1 ~]# innobackupex --decompress --parallel= /mysql-backup//--26_03--
[root@idc1-master1 ~]# find /mysql-backup//--26_03-- -name "*.qp" -delete
[root@idc1-master1 ~]# innobackupex --apply-log --use-memory=4G /mysql-backup//--26_03--
[root@idc1-master1 ~]# innobackupex --copy-back --use-memory=4G /mysql-backup//--26_03-- --defaults-file=/etc/my_3308.cnf [root@idc1-master1 ~]# chown -R mysql:mysql /opt/mysql_3308/data [root@idc1-master1 ~]# /etc/init.d/mysql_3308 start
- 在Slave上恢复
[root@idc1-slave1 ~]# /etc/init.d/mysql_3308 stop [root@idc1-slave1 ~]# mv /opt/mysql_3308/data /opt/mysql_3308/data_broken
[root@idc1-slave1 ~]# mkdir /opt/mysql_3308/data # 常规方式
[root@idc1-slave1 ~]# innobackupex --apply-log --use-memory=4G /mysql-backup//--26_03--
[root@idc1-slave1 ~]# innobackupex --copy-back --use-memory=4G /mysql-backup//--26_03-- --defaults-file=/etc/my_3308.cnf # 压缩打包方式
[root@idc1-slave1 ~]# mkdir -p /mysql-backup//--26_03--
[root@idc1-slave1 ~]# xbstream -x < /mysql-backup//--26_03--.xbstream -C /mysql-backup//--26_03--
[root@idc1-slave1 ~]# innobackupex --decompress --parallel= /mysql-backup//--26_03--
[root@idc1-slave1 ~]# find /mysql-backup//--26_03-- -name "*.qp" -delete
[root@idc1-slave1 ~]# innobackupex --apply-log --use-memory=4G /mysql-backup//--26_03--
[root@idc1-slave1 ~]# innobackupex --copy-back --use-memory=4G /mysql-backup//--26_03-- --defaults-file=/etc/my_3308.cnf [root@idc1-slave1 ~]# chown -R mysql:mysql /opt/mysql_3308/data [root@idc1-slave1 ~]# /etc/init.d/mysql_3308 start [root@idc1-slave1 ~]# cd /opt/mysql_3308/data
# 从Master的备份中恢复时查看 xtrabackup_slave_info
[root@idc1-slave1 data]# cat xtrabackup_binlog_pos_innodb
./bin-log-mysqld. # 从Slave的备份中恢复时查看 xtrabackup_slave_info
[root@idc1-slave1 data]# cat xtrabackup_slave_info
CHANGE MASTER TO MASTER_LOG_FILE='bin-log-mysqld.000222', MASTER_LOG_POS= [root@idc1-slave1 data]# mysql_3308 -uroot -p
mysql> change master to
master_host='idc1-master1',
master_port=,
master_user='backup-user',
master_password='backup-pass',
master_log_file='bin-log-mysqld.000222',
master_log_pos=; mysql> start slave;
mysql> show slave status\G;
mysql> exit;
- 增量备份与恢复
增量备份的原理是,基于一个现有的完整备份,针对InnoDB-based表仅备份增量的部分,针对MyISAM表则仍然保持全量备份。
备份环境:
在Slave服务器上进行
备份策略:
每天1次完整备份 + 每天2次增量备份
具体步骤:
7.1 增量备份
7.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/ [root@idc1-slave1 ~]# ls -rt1 /mysql-backup// | tail -n
--26_06-- [root@idc1-slave1 ~]# cat /mysql-backup//--26_06--/xtrabackup_checkpoints
backup_type = full-backuped
from_lsn =
to_lsn =
last_lsn =
compact =
recover_binlog_info =
7.1.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-- [root@idc1-slave1 ~]# ls -rt1 /mysql-backup// | tail -n
--26_06-- [root@idc1-slave1 ~]# cat /mysql-backup//--26_06--/xtrabackup_checkpoints
backup_type = incremental
from_lsn =
to_lsn =
last_lsn =
compact =
recover_binlog_info =
7.1.3 进行第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 --compress --compress-threads= --incremental /mysql-backup/ --incremental-basedir=/mysql-backup//--26_06-- [root@idc1-slave1 ~]# ls -rt1 /mysql-backup// | tail -n
--26_06-- [root@idc1-slave1 ~]# cat /mysql-backup//--26_06--/xtrabackup_checkpoints
backup_type = incremental
from_lsn =
to_lsn =
last_lsn =
compact =
recover_binlog_info =
7.2 增量恢复:
7.2.1 取回完整备份(必须加参数 –redo-only)
[root@idc1-slave1 ~]# innobackupex --decompress --parallel= /mysql-backup//--26_06--
[root@idc1-slave1 ~]# find /mysql-backup//--26_06-- -name "*.qp" -delete
[root@idc1-slave1 ~]# innobackupex --apply-log --redo-only --use-memory=4G /mysql-backup//--26_06--
7.2.2 合并第1个增量(必须加参数 –redo-only)
[root@idc1-slave1 ~]# innobackupex --decompress --parallel= /mysql-backup//--26_06--
[root@idc1-slave1 ~]# find /mysql-backup//--26_06-- -name "*.qp" -delete
[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)
[root@idc1-slave1 ~]# innobackupex --decompress --parallel= /mysql-backup//--26_06--
[root@idc1-slave1 ~]# find /mysql-backup//--26_06-- -name "*.qp" -delete
[root@idc1-slave1 ~]# innobackupex --apply-log --use-memory=4G /mysql-backup//--26_06-- --incremental-dir=/mysql-backup//--26_06--
7.2.4 准备完整备份(定稿完整备份时不加 –redo-only)
[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安装与备份的更多相关文章
- [转帖]CENTOS6.6下mysql5.7.11带boost和不带boost的源码安装
CENTOS6.6下mysql5.7.11带boost和不带boost的源码安装 本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuir ...
- CENTOS6.6下mysql5.7.11带boost和不带boost的源码安装
本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn Mysql5.7版本更新后有很多变化,比如json等,连安装都有变化 ...
- (转)CentOS 7 下 MySQL 5.7 配置 Percona Xtrabackup
CentOS 7 下 MySQL 5.7 配置 Percona Xtrabackup 原文:http://qizhanming.com/blog/2017/05/10/install-percona- ...
- 小型网站MYSQL问题二:Percona Xtrabackup实现数据库备份和恢复
1.安装软件仓库(不要问我为什么不用源码安装,好吧,其实我懒.) 1 2 3 4 5 6 7 8 wget https://www.percona.com/downloads/percona-rele ...
- MySQL5.7.11(ZIP)安装
1.环境变量-系统变量: Path添加:;D:\worksoftware\mysql-5.7.11\bin 2.配置更改:my-default.ini,注意是ANSI编码 添加 #(mysql所在目录 ...
- Percona XtraBackup 安装介绍篇
XtraBackup介绍 XtraBackup是Percona公司的开源项目,用以实现类似Innodb官方的热备份工具InnoDB Hot Backup的功能,它支持在线热备份(备份时不影响数据读写) ...
- Percona XtraBackup 关于 MySQL备份还原的详细测试
一. Percona XtraBackup 的优点. (1)无需停止数据库进行InnoDB热备: (2)增量备份MySQL: (3)流压缩传输到其它服务器: (4)在线移动表: (5)能够比较容易地创 ...
- mysql数据库-备份与还原-Percona XtraBackup 2.4备份工具使用
目录 xtrabackup 特点 备份生成的相关文件 xtrabackup 安装 xtrabackup 用法 1 备份 2 预备份 3 还原 4 其他 还原注意事项 xtrabackup实现完全备份及 ...
- Percona Xtrabackup 安装
1.安装Percona Xtrabackup YUM Repository --安装repository [root@manager ~]# yum install https://www.perco ...
随机推荐
- 转载]浅析DEDECMS织梦留言板调用网站head.htm以及自定义的方法
原文地址:浅析DEDECMS织梦留言板调用网站head.htm以及自定义的方法作者:it_wang 今天,一个客户朋友问到织梦留言板如何调用head.htm以及自定义,企业网站源码之前有摸索过,但是没 ...
- Web API <五> 序列化
在 Asp.Net Web Api 中提供了两种 媒体类型格式化器(mime-type formatter),分别用于支持 JSON 和 XML 数据的格式化处理.默认两种格式化器已集成到了 Asp. ...
- Log4j扩展使用--日志格式化器Layout
Layout:格式化输出日志信息 OK,前面我已经知道了.Appender必须使用一个与之相关联的Layout,这样才能知道怎样格式化输出日志信息. 日志格式化器Layout负责格式化日志信息,方法l ...
- Linkin大话eclipse快捷键
刚来这家公司的时候,作为菜鸟的我在帮别人调试代码的时候,有人说我快捷键使用的很熟悉. 呵呵,工欲善其事必先利其器,以下这些快捷键是最常用的也是要必须记住的. [Ctrl开头] Ctrl+1:快速修复 ...
- XML,HTML,XHTML
对于上面3种技术,我们经常使用到,这里具体的做一个总结,来对比一下这3个东西. 什么是XML? XML即Extentsible Markup Language(可扩展标记语言),是用来定义其它语言的一 ...
- PHP 构造方法 __construct()(转)
PHP 析构方法 __destruct() 构造方法是类中的一个特殊方法.当使用 new 操作符创建一个类的实例时,构造方法将会自动调用,其名称必须是 __construct() . 在一个类中只能声 ...
- awk 里的substr()
awk 里的substr函数用法举例: 要截取要截取的内容1: F115!16201!1174113017250745 10.86.96.41 211.140.16.1 200703180718F12 ...
- Spring Cache For Redis
一.概述 缓存(Caching)可以存储经常会用到的信息,这样每次需要的时候,这些信息都是立即可用的. 常用的缓存数据库: Redis 使用内存存储(in-memory)的非关系数据库,字符串.列 ...
- Java NIO 之 Buffer
Java NIO 之 Buffer Java NIO (Non Blocking IO 或者 New IO)是一种非阻塞IO的实现.NIO通过Channel.Buffer.Selector几个组件的协 ...
- 基于 HTML5 WebGL 的 3D SCADA 主站系统
这个例子的初衷是模拟服务器与客户端的通信,我把整个需求简化变成了今天的这个例子.3D 的模拟一般需要鹰眼来辅助的,这样找产品以及整个空间的概括会比较明确,在这个例子中我也加了,这篇文章就算是我对这次项 ...