(1)备份介绍

(2)下载安装xtrabackup

官网:https://www.percona.com/downloads/XtraBackup/LATEST/

我选择yum安装,centos版本7

wget http://www.percona.com/downloads/percona-release/redhat/0.1-4/\
percona-release-0.1-4.noarch.rpm
rpm -ivH percona-release-0.1-4.noarch.rpm
yum install percona-xtrabackup-24 -y

(3)完全备份与恢复

1)完全备份

  • 创建备份账户
mysql> grant reload,process,lock tables,replication client on *.* to backup@localhost identified by 'backup';
mysql> flush privileges;
  • 创建完全备份目录
mkdir /mysql/backup-full -pv
  • 完全备份
方式一:innobackupex --user=backup --password=backup --host=127.0.0.1 /mysql/backup-full/
方式二:innobackupex --defaults-file=/etc/my.cnf --user=backup --password=backup --socket=/tmp/mysql.sock /mysql/backup-full/
生成目录:/mysql/backup-full/2018-04-24_11-16-17/

2)完全备份恢复

  • 停止服务删除数据目录
systemctl stop mysqld
rm -rf /data/mydata/*
  • 恢复
innobackupex --apply-log /mysql/backup-full/2018-04-24_11-16-17/
innobackupex --copy-back /mysql/backup-full/2018-04-24_11-16-17/
  • 授权与恢复
chown -R mysql.mysql /data/mydata/
systemctl start mysqld

(4)增量备份与恢复

注意:增量备份目录我这里放在/mysql/目录下,完全备份目录放在/mysql/backup-full/目录下

1)完全增量备份

注意:增量备份目录我这里放在/mysql/目录下,完全备份目录放在/mysql/backup-full/目录下

  • 准备环境
mysql> create database testdb;
mysql> create table testdb.test(id int);
mysql> insert into testdb.test values(1);
  • 完全备份:4月24日
innobackupex --defaults-file=/etc/my.cnf --user=backup --password=backup --socket=/tmp/mysql.sock  /mysql/backup-full/
目录下生成:/mysql/backup-full/2018-04-24_12-15-09/
  • 第一次增量备份:4月25日增量备份1

    修改时间为4月25日:date -s "20180425"
插入数据:mysql> insert into testdb.test values(2);

innobackupex --defaults-file=/etc/my.cnf --user=backup --password=backup --socket=/tmp/mysql.sock --incremental /mysql/ --incremental-basedir=完全备份

基准是完全备份:/mysql/backup-full/2018-04-24_12-15-09/
innobackupex --defaults-file=/etc/my.cnf --user=backup --password=backup --socket=/tmp/mysql.sock --incremental /mysql/ --incremental-basedir=/mysql/backup-full/2018-04-24_12-15-09/

生成增量备份目录:/mysql/2018-04-25_00-01-14/

  • 第二次增量备份:4月26日增量备份2

    修改时间为4月26日:date -s "20180426"
再次插入数据:mysql> insert into testdb.test values(3);

innobackupex --defaults-file=/etc/my.cnf --user=backup --password=backup --socket=/tmp/mysql.sock --incremental /mysql/ --incremental-basedir=上一次增量备份

基准是上一次增量备份:/mysql/2018-04-25_00-01-14/
innobackupex --defaults-file=/etc/my.cnf --user=backup --password=backup --socket=/tmp/mysql.sock --incremental /mysql --incremental-basedir=/mysql/2018-04-25_00-01-14/

生成增量备份目录:/mysql/2018-04-26_00-00-59/

2)增量恢复

  • 停止服务删除数据
systemctl stop mysqld
rm -rf /data/mydata/*
  • 数据恢复

    innobackupex --apply-log --redo-only 完整备份目录

    innobackupex --apply-log --redo-only 完整备份目录 --incremental-dir=第一次增量备份目录

    innobackupex --apply-log --redo-only 完整备份目录 --incremental-dir=第二次增量备份目录

    innobackupex --copy-back 完整备份
innobackupex --apply-log --redo-only /mysql/backup-full/2018-04-24_12-15-09/
innobackupex --apply-log --redo-only /mysql/backup-full/2018-04-24_12-15-09/ --incremental-dir=/mysql/2018-04-25_00-01-14/
innobackupex --apply-log --redo-only /mysql/backup-full/2018-04-24_12-15-09/ --incremental-dir=/mysql/2018-04-26_00-00-59/
innobackupex --copy-back /mysql/backup-full/2018-04-24_12-15-09/
  • 目录授权与启动mysql
chown -R mysql.mysql /data/mydata/
systemctl start mysqld

(5)差异备份恢复

注意:差异备份的基准永远根据上一次完全备份

1)差异备份

  • 准备环境
mysql> create database testdb;
mysql> create table testdb.test(id int);
mysql> insert into testdb.test values(1);
  • 完整备份:20180424(date -s "20180424")
innobackupex --defaults-file=/etc/my.cnf --user=backup --password=backup --socket=/tmp/mysql.sock  /mysql/backup-full/
生成目录:ll /mysql/backup-full/2018-04-24_00-00-08/
  • 插入一条数据
mysql> insert into testdb.test values(2);
  • 差异备份1:20180425(date -s "20180425")

    innobackupex --defaults-file=/etc/my.cnf --user=backup --password=backup --socket=/tmp/mysql.sock --incremental /mysql/ --incremental-basedir=完整备份目录
innobackupex --defaults-file=/etc/my.cnf --user=backup --password=backup --socket=/tmp/mysql.sock --incremental /mysql/  --incremental-basedir=/mysql/backup-full/2018-04-24_00-00-08/
生成目录:/mysql/2018-04-25_00-01-51/
  • 插入一条数据
mysql> insert into testdb.test values(3);
  • 差异备份2:20180426(date -s "20180426")

    innobackupex --defaults-file=/etc/my.cnf --user=backup --password=backup --socket=/tmp/mysql.sock --incremental /mysql/ --incremental-basedir=完整备份目录
innobackupex --defaults-file=/etc/my.cnf --user=backup --password=backup --socket=/tmp/mysql.sock --incremental /mysql/  --incremental-basedir=/mysql/backup-full/2018-04-24_00-00-08/
生成目录:/mysql/2018-04-26_00-00-15/

2)差异备份恢复

  • 停止数据和删除数据目录
systemctl stop mysqld
rm -rf /data/mydata/*
  • 数据恢复

    innobackupex --apply-log --redo-only 完整备份目录

    innobackupex --apply-log --redo-only 完整备份目录 --incremental-dir=某个差异备份目录

    innobackupex --copy-back 完整备份目录
innobackupex --apply-log --redo-only  /mysql/backup-full/2018-04-24_00-00-08/
innobackupex --apply-log --redo-only /mysql/backup-full/2018-04-24_00-00-08/ --incremental-dir=/mysql/2018-04-26_00-00-15/
innobackupex --copy-back /mysql/backup-full/2018-04-24_00-00-08/
  • 目录授权与启动数据库
systemctl start mysqld
chown -R mysql.mysql /data/mydata/
systemctl start mysqld

(十一)mysql备份之物理备份xtrabackup的更多相关文章

  1. Mysql备份与恢复(1)---物理备份

    数据库对企业来说最重要的莫过于其中的数据,所以做好数据库的备份是一个不可或缺的工作.数据库及时备份可以帮助我们在数据库出现异常宕机时及时的使用备份数据进行恢复工作,将因为数据库宕机产生的影响降低到最小 ...

  2. 说明Oracle数据库逻辑备份和物理备份的方式。

    说明Oracle数据库逻辑备份和物理备份的方式. 解答:Oracle备份包括逻辑备份和物理备份. 1).逻辑备份 数据库的逻辑备份包含读一个数据库记录集和将记录集写入文件. a.输出(Export)输 ...

  3. ORACLE数据库的备份分为物理备份和逻辑备份两种。

    物理备份是将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带.可以使用 Oracle 的恢复管理器(Recovery Manager,RMAN)或操作系统命令进行数据库的物 ...

  4. (4.15)mysql备份还原——物理备份之XtraBackup的下载与安装

    关键词:mysql物理备份,XtraBackup,XtraBackup安装,XtraBackup下载 实践链接:https://www.cnblogs.com/gered/p/11147193.htm ...

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

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

  6. MYSQL的备份与恢复--物理备份xrabackup

    目录 1.数据库完整备份与恢复 (1)环境准备 (2)完全备份恢复流程 2.数据库增量备份与恢复 (1)增量和差异概述 (2)增量备份和恢复 3.数据库差异备份与恢复 4.简单命令进行物理备份 5.实 ...

  7. mysqldump 逻辑备份和物理备份

    逻辑备份 逻辑备份是备份sql语句,在恢复的时候执行备份的sql语句实现数据库数据的重现. 工具:mysqldump 特点: 1.可移植性比较强 2.备份和恢复的花费时间长,不适用于大型业务系统 物理 ...

  8. mysql 开发进阶篇系列 48 物理备份与恢复(xtrabackup 的增量备份与恢复,以及备份总结)

    一.增量备份概述 xtrabackup  和innobackupex  二个工具都支持增量备份,这意味着能复制自上次备份以来更改的数据.可以在每个完整备份之间执行许多增量备份,因此,您可以设置一个备份 ...

  9. MySQL 物理备份工具-xtrabackup

    安装 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum -y install perl ...

随机推荐

  1. 【PHP】- 全局变量global和$GLOBALS的区别

    1.global global关键字的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件. 但是在函数体内定义的global变量, ...

  2. (转)Loadrunner监控Linux的17个指标

    1.Average load:Average number of processes simultaneously in Ready state during the last minute.   上 ...

  3. 全局 Ajax 事件处理器

    jQuery中将Ajax请求和响应分成了若干(5)个阶段 并且允许开发者在Ajax请求和响应的不同阶处理不同的逻辑, 这些方法用于注册事件处理器,用来处理页面上的任何 Ajax 请求,当某些事件触发后 ...

  4. 【bzoj4619】[Wf2016]Swap Space 贪心

    题目描述 你有许多电脑,它们的硬盘用不同的文件系统储存数据.你想要通过格式化来统一文件系统.格式化硬盘可能使它的容量发生变化.为了格式化,你需要买额外的硬盘.当然,你想要买容量最小的额外储存设备以便省 ...

  5. 【ZJ选讲·调整】

    给出n个点,m条有向边(带正权),起点S,终点T.(n<=2000,m<=30000) 再给出一个k,表示可以把最多k条边的权值调整为任意非负整数.(k<=100) 问是否可以通 ...

  6. Mysql History list length 值太大引起的问题

    1. 环境 Mysql 主从 Mysql版本:5.1.49-log 系统:Red Hat Enterprise Linux Server release 5.4  64bit 2. 表面现象 数据库操 ...

  7. 模拟实现jdk动态代理

    实现步骤 1.生成代理类的源代码 2.将源代码保存到磁盘 3.使用JavaCompiler编译源代码生成.class字节码文件 4.使用JavaCompiler编译源代码生成.class字节码文件 5 ...

  8. JQuery如何监听DIV内容变化

    这几天在做一个微博的接入,需要判断微博是否被关注,要检查微博标签的DIV是否有“已关注”的字符,但这个DIV的内容是微博JSSDK动态生 成.$("#id").html()是获取不 ...

  9. bzoj 1588 裸平衡树

    //By BLADEVIL #include <cstdio> #include <set> #define inf 1<<30 using namespace s ...

  10. linux下ntp服务器搭建方法

    环境 软件:fedora14,装在virtualbox虚拟机上 硬件:x86 具体步骤 检查是否安装了ntp 运行如下命令: rpm -qa | grep ntp 如果有如下输出,表示有安装ntp 服 ...