环境:
        centerOS7
        percona 5.7
        xtrabackup  2.4(5.7只支持2.4已上的版本)
 
第一步:
 安装xtrabackup:
2:yum list | grep percona
3:安装:yum install percona-xtrabackup-24
 
修改配置文件
cat  /etc/yum.repos.d/percona-release.repo,然后将percona-testing-$basearch 和percona-testing-noarch设置 enabled = 1
 

第二步

备份还原的测试
首先创建数据库表,插入数据,做全备份
1:新建数据库qiandaitest,创建表users
| users | CREATE TABLE `users` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 |
 
 
insert into users values(1,'zhangsan');
 insert into users values(2,'lisi');
 
2:开始做全备份
 innobackupex --compress  --no-timestamp  --user=root --password=************* --databases qiandaitest  /backup/full/
备份qiandaitest数据库并且压缩备份,
现在我们再往表users中插入两条数据数据:
mysql> insert into users values(3,'wangwu');
Query OK, 1 row affected
mysql> insert into users values(4,'mazi');
Query OK, 1 row affected
 
 3:关停数据库进行备份恢复
首先要对完全备份做预备备份,预备备份就是重新应用日志,将从备份开始到结束的时间段里面没有提交的事物回滚,
innobackupex --decompress /backup/full/
但是还要注意一点就是要用--decompress进行解压的时候必须安装qpress
yum install qpress
如果不安全qpress的话--decompress就会失败,下面就开始应用备份
innobackupex --apply-log --redo-only --compress  --user=root --password=************  /backup/full/
 
关停数据库(注意还原的过程是要关闭数据库的):
service  mysql  stop 
[root@mysql41 full]# mkdir /newdatadiir
[root@mysql41 full]# vim /etc/my.cnf
将datadir指向新建的位置,因为xtrabackup进行恢复的时候要求必须datadir是空的才可以进行恢复.
[root@mysql41 full]# innobackupex --copy-back  /backup/full/
[root@mysql41 full]# cd /newdatadiir/
[root@mysql41 newdatadiir]# ls
ib_buffer_pool  ibdata1  qiandaitest  xtrabackup_binlog_pos_innodb  xtrabackup_info
可以看到文件已经恢复了,下面还要有一步赋予新目录给mysql用户的所有者权限
chown  -R mysql:mysql  /newdatadiir
然后提起数据库:
service  mysql  start
没有提起来出现以下的报错信息,想起来备份的时候是指定了databases进行备份,恢复的时候找不到系统数据库
2016-05-18T02:57:19.710025Z 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
2016-05-18T02:57:19.710078Z 0 [ERROR] Aborting
然后
[root@mysql41 mysql]# cp -a  mysql /newdatadiir
[root@mysql41 mysql]# service mysql start
Redirecting to /bin/systemctl start  mysql.service
[root@mysql41 mysql]# cp -a  performance_schema/ /newdatadiir
[root@mysql41 mysql]# cp -a  sys/ /newdatadiir
数据库已经提起来了.
 
4:mysqlbinlog进行日志恢复.
收先我们要查看一下xtrabackup_checkpoints里面的几个参数.
backup_type 是否是预备备份,我们已经--aplay-log了,所以现在显示是预备备份
from_lsn = 0      备份记录所有信息开始的位置
to_lsn = 2507172  备份开始的时间点位置
last_lsn = 2507188  备份结束的时间点位置
预备备份就是将to_lsn到last_lsn这段时间的日志应用了一遍而已.
 
完全备份恢复以后进行查看数据:
mysql> select * from users;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
|  2 | lisi     |
+----+----------+
看到数据是被分前的两条数据,现在开始用mysqlbinlog进行恢复:
[root@mysql41 full]# cat xtrabackup_binlog_pos_innodb 
binlog.000001    2008
我们发现是从2008的这个位置开始的
先查看一下日志文件
show binlog events in 'binlog.000001';
刚好看到binlog.000001下面对应的两条插入数据write_rows,刚好就是我们需要的.
下面进行恢复
 mysqlbinlog   --start-position=2008  --stop-position=2589 --user=root --password=*********** -d  qiandaitest  /log/mysql/binlog.000001 > /backup/qiandai1.sql
将qiandaitest的所有在2008和2589间的操作导入到一个sql文件,然后
mysql> use qiandaitest
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> source /backup/qiandai1.sql
查看一下数据:
mysql> select * from users;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
|  2 | lisi     |
|  3 | wangwu   |
|  4 | mazi     |
+----+----------+
4 rows in set (0.00 sec)
已经恢复了.
 
 
然后就是将他创建为一个定时作业定时每天执行一次全备份:
先创建一个脚本:vim  backup.sh
n/bash
cd /databak/data
find /databak/data  -mtime +2 -name "*.*" -exec rm -rf {} \;
mkdir `date -d "today" +"%Y%m%d"`
echo "You are in backup dir"
#cp /backup/* /oldbackup
echo "begin backup"
 
innobackupex --compress  --no-timestamp --socket=/var/lib/mysql/mysql.sock  --user=root --password=*****   `date -d "today" +"%Y%m%d"`
 
echo "Your database backup successfully completed"
赋予执行权限:
chmod +x backup.sh
加入定时作业:
[root@mysql41 backup]# crontab -l
30 1 * * * /backup/backup.sh
 
另外:完整的恢复直接运行以下语句就可以:
mysqlbinlog   --start-position=712 --stop-position=1662 /log/mysql/binlog.000013|mysql -uroot -pTime.work.9818
 
 

基于percona 5.7的xtrabackup实践的更多相关文章

  1. MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份]

    MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份] 1.Xtrabackup的安装 percona-xtrabackup-2.2.3-4982.el6.x86_ ...

  2. (4.16)mysql备份还原——物理备份之XtraBackup实践

    关键词:XtraBackup实践,物理备份,xtrabackup备份,innobackupex备份 [1]如何使用? [3]系列:innobackupex --help |more [4]系列:xtr ...

  3. 基于 koajs 的前后端分离实践

    一.什么是前后端分离? 前后端分离的概念和优势在这里不再赘述,有兴趣的同学可以看各个前辈们一系列总结和讨论: 系列文章:前后端分离的思考与实践(1-6) slider: 淘宝前后端分离实践 知乎提问: ...

  4. 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)

    目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构   前言 学习Python也有一个半月时间了,学到现在感觉 ...

  5. 基于 Docker 的微服务架构实践

    本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 D ...

  6. 移动基于Percona XTRADB Cluster的大数据解决方式

    移动基于Percona XTRADB Cluster的大数据解决方式          一.移动的去IOE之旅      近期由于"棱镜门"事件的曝光.引起了国家对信息安全问题的注 ...

  7. 基于OpenNetVM配置环境的发包实践

    参考: openNetVM 基于OpenNetVM配置环境的发包实践 注意:本文并未对OpenNetVM的服务链进行测试,而是在借助OpenNetVM脚本环境的情况下,分别对Pktgen和MoonGe ...

  8. 基于OVS的VLAN虚拟化简易实践方案

    基于OVS的VLAN虚拟化简易实践方案 前言 本实验基于ovs的vlan流表匹配,根据端口进行vlan标签插入.手工配置ovs,使其具有vlan虚拟化方案. 实验拓扑 ---- ---- | h1 | ...

  9. 网易云基于 Kubernetes 的深度定制化实践

    本文由  网易云发布. 2017 年,Kubernetes 超越 Mesos 和 Docker Swarm成为最受欢迎的容器编排技术.网易云从 2015 下半年开始向 Kubernetes 社区贡献代 ...

随机推荐

  1. linux网卡驱动移植

    这里重要的是物理层PHY receiver,MAC(media access control)层,这里与软件中的协议栈不同,在硬件上MAC是PHY的下一层.DM9000A将MAC和PHY做到一起,也可 ...

  2. JSP 动作元素

    JSP动作元素 1.  动作元素分类 用来动态的包含文件.网页跳转及使用JavaBean组件等. 语法:<jsp:XXX />或者<jsp:XXX></jsp:XXX&g ...

  3. PAT (Basic Level) Practise:1022. D进制的A+B

    [题目连接] 输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数. 输入格式: 输入在一行中依次给出3个整数A.B和D. 输出格式: ...

  4. Flex Builder读书笔记(二)——MXML

    MXML类似于HTML,它提供各种标签来定义用户界面,但是它比HTML的结构更为严格,并拥有跟多的应用标签.MXML不仅包括可视标签,还包括不可视标签,如web service连接.数据绑定和动画效果 ...

  5. 第八课,T语言功能和参数(版本5.0)

    功能的理解 功能是TC移动项目应用的基本模块,通过对功能模块的调用实现特定的功能.TC综合开发工具中的功能相当于其它高级语言的子程序,在其他高级语言中,比如C,C++中,称为函数.允许用户建立自己定义 ...

  6. 【转载】7 Steps for Calculating the Largest Lyapunov Exponent of Continuous Systems

    原文地址:http://sprott.physics.wisc.edu/chaos/lyapexp.htm The usual test for chaos is calculation of the ...

  7. IAR for msp430 MDK中 warning: #223-D: function "xxx" declared implicitly 解决方法

    今天在EINT的范例里添加了一个函数,即eint.c中添加了一个datawrite()的函数,并在主函数main.c中调用,编译便警告 warning: #223-D: function " ...

  8. javaScript DOM JQuery AJAX

    http://www.cnblogs.com/wupeiqi/articles/5369773.html 一 JavaScript JavaScript是一门编程语言,浏览器内置了JavaScript ...

  9. Windows 10 解决 0x80070021 错误

    Windows 10 已经不支持 aspnet_regiis -i. 启动和关闭Windows功能中安装 ".NET Framework 4.6 高级服务" 即可解决. 以下是借鉴 ...

  10. openssl 心脏滴血

    yum -y update openssl openssl verson rpm -q --changelog openssl | grep CVE-