xtrabakcup基本用法 安装、全量备份恢复、增量备份恢复
xtrabackup备份原理以及工作流程
备份流程日志分析:
1.##读取mysql配置文件
2.## 扫描innodb日志lsn并复制inndodb系统表空间
3.## 缓冲写出到数据文件并锁表
4.## 开始复制非innodb表及相关文件
5.## 结束复制非innodb表及相关文件
6.## 强制将commit log刷新到redo,保证事务是完整的
7.## 获取最新的lsn
8.## 释放锁
9.## 列出备份位置
10.## 列出binlog的位置
11.##备份mysql配置文件
11.##备份结束
备份原理
InnoDB引擎很大程度上与Oracle类似,使用redo,undo机制,XtraBackup在备份的时候,以read-write模式打开innodb的数据文件,然后对其进行复制。与此同时,XtraBackup还有另外一个线程监视着transactions log,一旦log发生变化,就把变化过的log pages复制走,直到全部innoDB数据文件复制完成之后,停止监控log buffer及日志复制。如果log buffer没有及时写出将被日志的循环写特性覆盖。xtrabackup在启动时会记住log sequence number(LSN),然后一页一页地复制InnoDB的数据。
xtrabackup在恢复期间对提交的事务前滚,未提交或失败的事务进行回滚,从而保证数据的一致性。因此对于InnoDB表在备份期间不会锁表。由于XtraBackup其内置的InnoDB库打开文件的时候是rw的,所以运行XtraBackup的用户,必须对InnoDB的数据文件具有读写权限。
补充:
在备份innodb page的过程中,XtraBackup每次读写1MB的数据,1MB/16KB=64个page。这个不可配置。读1MB数据之 后,XtraBackup一页一页地遍历这1MB数据,使用innodb的buf_page_is_corrupted()函数检查此页的数据是否正常, 如果数据不正常,就重新读取这一页,最多重新读取10次,如果还是失败,备份就失败了,退出。在复制transactions log的时候,每次读写512KB的数据。同样不可以配置。
安装和使用
一:安装依赖关系
1.rpm -qa |grep xtrabackup
2.wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
下载软件包并安装
3.wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm
4.yum -y install percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm
二:全量备份、恢复
创建备份目录 backup
全量备份:
xtrabackup --backup --target-dir=/dbdata/backup/ --user=root --password='!QAZ1qaz123' --host=127.0.0.1
全量恢复:
xtrabackup --prepare --target-dir=/dbdata/backup/ --数据保持一致性
mv data data_bak
xtrabackup --copy-back --target-dir=/dbdata/backup/ --配置文件定义data目录可以这样执行,会自动生成一个data目录,修改属主,属组后可启动数据库
三:增量备份、恢复
先做一个全量备份
xtrabackup --backup --target-dir=/dbdata/backup/base --user=root --password='!QAZ1qaz123' --host=127.0.0.1
第一次增量
xtrabackup --backup --target-dir=/dbdata/backup/inc1 --incremental-basedir=/dbdata/backup/base --user=root --password='!QAZ1qaz123' --host=127.0.0.1
第二次增量
xtrabackup --backup --target-dir=/dbdata/backup/inc2 --incremental-basedir=/dbdata/backup/inc1 --user=root --password='!QAZ1qaz123' --host=127.0.0.1
增量恢复
先执行数据一致性 prepare 注释:--apply-log-only 只恢复已提交的数据
prepare全量备份
xtrabackup --prepare --apply-log-only --target-dir=/dbdata/backup/base
prepare第一次增量
xtrabackup --prepare --apply-log-only --target-dir=/dbdata/backup/base --incremental-dir=/dbdata/backup/inc1
prepare第二次增量
xtrabackup --prepare --target-dir=/dbdata/backup/base --incremental-dir=/dbdata/backup/inc2
prepare完成后,进行恢复
xtrabackup --copy-back --target-dir=/dbdata/backup/base
注:执行这步时会根据配置文件自动创建一个数据目录,需修改属主属组方可启动数据库,至此增量恢复完成
xtrabakcup基本用法 安装、全量备份恢复、增量备份恢复的更多相关文章
- Centos 6.9 安装xtrabackup-2.4.8 通用包,yum安装,全量备份,增量备份
xtrabackup-2.4.8的安装及使用 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备 ...
- xtrabackup实现全量备份和增量备份
mysql增量和完全备份innobackupex2.1.9版本1 yum安装: 官网地址:https://www.percona.com/doc/percona-xtrabackup/LATEST/i ...
- [ Mongodb ] 全量备份和增量备份
1. 前言 由于线上的mongodb 数据体量越来越大,如果没有完善的备份方案,发生故障势必造成业务很长时间的暂停.参考了网上方案,写出以下总结和备份方案: 备份方案分为两种:全备和增量备份,二者结合 ...
- 【运维实战】利用tar -g 实现简单全量备份和增量备份(带演示)
备份产生 全量备份指完全备份,增量备份指针对上次至今的修改进行备份.linux提供tar -g可实现备份功能. 第一次运行 tar -g 备份存放目录/snapshot -czvf 备份存放目录/备 ...
- mysql的全量备份与增量备份
mysql的全量备份与增量备份 全量备份:可以使用mysqldump直接备份整个库或者是备份其中某一个库或者一个库中的某个表. 备份所有数据库:[root@my ~]# mysqldump -uroo ...
- VMware 虚拟化编程(11) — VMware 虚拟机的全量备份与增量备份方案
目录 目录 前文列表 全量备份数据的获取方式 增量备份数据的获取过程 前文列表 VMware 虚拟化编程(1) - VMDK/VDDK/VixDiskLib/VADP 概念简析 VMware 虚拟化编 ...
- mysql全量备份与增量备份
mysql全量备份与增量备份 1.全量备份 全量备份就是把数据库中所有的数据进行备份. 备份所有库: mysqldump -uroot -p456 -S /data/3306/mysql.sock ...
- Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份)
原文地址:http://www.tuicool.com/articles/RZRnq2 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对In ...
- Percona备份mysql全库及指定数据库(完整备份与增量备份)
Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份) Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对I ...
- MySQL集群-PXC搭建以及使用innobackupex工具进行全局备份和增量备份
环境:centos7 vm1:10.154.47.236 vm2:10.154.52.189 vm3:10.105.12.50 目的:pxc使用三个节点构建mysql集群,使用innobackupex ...
随机推荐
- [日常摸鱼]JSOI2008最大数
校运会的时候随手抽的题- 一句话题意 维护一个序列,初始为空,要求滋兹: 1.查询这个序列末尾$x$个数的最大值 2.设上一次查询的答案为$t$(如果还没查询$t=0$),在末尾插入一个数$(x+t) ...
- Ribbon提供的负载均衡算法IRule(四)
一.Ribbon算法的介绍 Ribbon的源码地址:https://github.com/Netflix/ribbon IRule:根据特定算法中从服务器列表中选取一个要访问的服务,Ribbon默认的 ...
- kali 2020安装docker
环境准备 kali虚拟机2020.01x64位版本 安装docker官方文档:https://docs.docker.com/engine/installation/linux/docker-ce/d ...
- #2020征文-手机#深鸿会深大小组:HarmonyOS手机游戏—数字华容道
目录: 前言 概述 正文 创建项目 实现初始界面布局 实现数字的随机打乱 实现滑动或点击调换数字 实现游戏成功界面 结语 源码包 前言 12月16号HarmonyOS2.0手机开发者Beta版已经发布 ...
- Geoserver 谷歌瓦片地图的使用 多级发布
下面,我来介绍一下如何在离线的情况下,在Geoserver 中配置出如同谷歌地图般绚丽的效果. 为了让大家有动力看我我接下来写的东西,我先把结果图给大伙儿展现一下: 正如上图所示,该地图是谷歌第四级的 ...
- 【进程/作业管理】篇章二:Linux系统作业控制(jobs)
作业:jobs 分类: 前台作业(foregroud):通过终端启动,且启动后会一直占据终端 后台作业(backgroud):可以通过终端启动,但启动后即转入后台运行(释放终端) 如何让作业运行于后台 ...
- Weblogic命令执行漏洞(CVE-2018-2628)复现
一.漏洞环境搭建 CVE-2018-2628影响的软件版本为: Weblogic 10.3.6.0 Weblogic 12.1.3.0 Weblogic 12.2.1.2 Weblogic 12.2. ...
- java有关静态代理及动态代理的实现
引言: 代理是基本的设计模式之一,它为你提供额外的或不同的操作而插入的用来代替实际对象的对象(委托对象).这些对象通常涉及到与实际对象的通信,因此代理通常充当中间人的角色.--JAVA编程思想 相关的 ...
- vue中的插值操作
mustache语法 1.将data的文本数据插入至html语句中,使用mustache语法. v-once指令 2.在某些情况下,我们不希望界面随意的跟随改变,这个时候我们可以使用v-once的指令 ...
- 容器编排系统K8s之NetworkPolicy资源
前文我们了解了k8s的网络插件flannel的基础工作逻辑,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14225657.html:今天我们来聊一下k8s上 ...