1.安装工具

需要在被备份的mysql数据库上安装第三方备份工具percona-xtrabackup,此程序需要的rpm包较多。所以我们需要下载此安装包

percona-xtrabackup-24-2.4.15-1.el7.x86_64.rpm

(适用于mysql5.7版本)

下载地址
https://repo.percona.com/yum/release/7/RPMS/x86_64/percona-xtrabackup-24-2.4.15-1.el7.x86_64.rpm

2.下载后上传到需要备份的服务器

去对应的目录

[root@localhost mnt]# ll
总用量 7712
drwxr-x--- 5 root root 87 10月 13 21:36 mysqlbak
-rw-r--r-- 1 root root 7893808 10月 12 10:15 percona-xtrabackup-24-2.4.15-1.el7.x86_64.rpm [root@localhost mnt]# yum install -y percona-xtrabackup-24-2.4.15-1.el7.x86_64.rpm 出现complete!才算安装完成 验证是否安装完成 输入
innobackupex –version
出现版本号则安装OK

全备

1.安装完成后我们进行数据库备份执行以下命令

(注意mysql数据库的密码要写正确才能进行备份)

参数--backup 为我们需要备份的目录.出现completedOK!备份完成
innobackupex --defaults-file=/etc/my.cnf --user=root --password="***" --socket=/tmp/mysql.sock --backup /mnt/mysqlbak/

可以看到整个备份过程:连接数据库,开始拷贝redo log,拷贝innodb表文件,锁表、拷贝非innodb表文件,停止拷贝redo log,解锁。

2.查看备份的数据

cd /mnt/mysqlbak && ll

这个是第一次全备

其中,mysql/, performance_schema/, sys/ ,school/ 下存放的是数据库文件。

backup-my.cnf,备份命令用到的配置选项信息;

ib_buffer_pool, buffer pool 中的热数据,当设置 innodb_buffer_pool_dump_at_shutdown=1 ,在关闭 MySQL 时,会把内存中的热数据保存在磁盘里 ib_buffer_pool 文件中,位于数据目录下。

ibdata1,备份的共享表空间文件;

xtrabackup_binlog_info,mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置;

xtrabackup_checkpoints,备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN(日志序列号)范围信息;

xtrabackup_info,记录备份的基本信息,uuid、备份命令、备份时间、binlog、LSN、以及其他加密压缩等信息。

xtrabackup_logfile,备份的重做日志文件。

3.进入数据库,删除一个测试库

4.删除school库

5.备份数据目录

创建一个数据目录

将/var/lib/mysql/data/ 目录下的所有文件移到备份目录去

6.恢复数据库

恢复数据之前要先关闭数据库

  • 首先执行以下命令,此命令是告诉系统我们要在此备份基础上启动mysql服务

    其中/mnt/mysqlbak/2022-10-14_10-59-30就是前面备份的数据库

innobackupex --apply-log --use-memory=500M /mnt/mysqlbak/2022-10-14_10-59-30

直到出现completed OK!

#--apply-log ( /data/pxb/2017-04-24_02-46-11/ 为备份目录,执行之后 xtrabackup_checkpoints 文件中的 backup_type = full-prepared )

7.执行命令恢复数据库

innobackupex --defaults-file=/etc/my.cnf --copy-back /mnt/mysqlbak/2022-10-14_10-59-30

直到出现completed OK!才算恢复完成

恢复后,一定要去数据目录,把所有的文件修改用户为mysql

8.验证数据库是否恢复成功

登录数据库后 show databases;


增量备份

我们刚才已经有了全量备份。现在我们创建一些新的表插入一些数据进行增量备份;

1.登录数据库

创建一个表,插入数据
use school;
create table t1(id int);
insert into t1 values(1);
insert into t1 values(11);

2.备份增量

现在进行第一次增量备份;其中标红的为全量备份的目录,----incremental后面为我们的增量备份的目录

innobackupex --defaults-file=/etc/my.cnf --user=root --password="***" --incremental /mnt/mysqlbak --socket=/tmp/mysql.sock --incremental-basedir=/mnt/mysqlbak/2022-10-14_10-59-30

出现completed ok!就是备份完成

--incremental 表示告诉mysql进行增量备份
--incremental-basedir 告诉MySQL基于哪个位置点进行增量备份

3.再插入一些数据

insert into t1 VALUES (2);
insert into t1 VALUES(22);

4.进行第二次增量备份

红色为我们上次增量备份的目录

innobackupex --defaults-file=/etc/my.cnf --user=root --password="***" --incremental /mnt/mysqlbak --socket=/tmp/mysql.sock --incremental-basedir=/mnt/mysqlbak/2022-10-14_16-02-08

出现completed ok! 为备份完成

现在查看备份目录,已经有一次全备,两次增备的数据

5.删除数据

mysql> drop table t1;
Query OK, 0 rows affected (0.01 sec)

6.关闭mysql

[root@localhost mysql]# service mysql stop
Shutting down MySQL.... SUCCESS! [root@localhost mysql]# mv data/* bak/ #将数据目录下的文件移走备份目录下去

7.恢复数据

执行以下命令,应用全量备份。目录为全量备份的目录

 #准备一个全备
innobackupex --apply-log --redo-only --use-memory=500M /mnt/mysqlbak/2022-10-14_10-59-30
>出现completed ok 为备份完成 ---
#将增量1应用到完全备份
innobackupex --apply-log --redo-only --use-memory=500M /mnt/mysqlbak/2022-10-14_10-59-30 --incremental-dir=/mnt/mysqlbak/2022-10-14_16-02-08
#incremental-dir 为增量备份的数据
>出现completed ok 为备份完成 ---
#再执行应用第二个增量备份。最后一个增量备份,不需要加redo-only选项
innobackupex --apply-log --use-memory=500M /mnt/mysqlbak/2022-10-14_10-59-30 --incremental-dir=/mnt/mysqlbak/2022-10-14_16-29-56
#最后一个增量备份,不需要加redo-only选项
>出现completed ok 为备份完成 ---
#执行全量恢复
innobackupex --defaults-file=/etc/my.cnf --copy-back /mnt/mysqlbak/2022-10-14_10-59-30
>出现completed ok 为备份完成

8.启动mysql

启动之前需要将数据目录的用户调整为mysql

数据恢复成功

参考https://www.cnblogs.com/waynechou/p/xtrabackup_backup.html

Xtrabackup使用帮助的更多相关文章

  1. Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复

    Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...

  2. mysqldump和xtrabackup备份原理实现说明

    背景: MySQL数据库备份分为逻辑备份和物理备份两大类,犹豫到底用那种备份方式的时候先了解下它们的差异: 逻辑备份的特点是:直接生成SQL语句,在恢复的时候执行备份的SQL语句实现数据库数据的重现. ...

  3. xtrabackup 使用说明(续)

    背景: 关于物理备份工具xtrabackup的一些说明可以先看之前写过的文章说明:xtrabackup 安装使用.现在xtrabackup版本升级到了2.4.4,相比之前的2.1有了比较大的变化:in ...

  4. Percona XtraBackup 备份原理说明【转】

    本文来自:http://mysql.taobao.org/monthly/2016/03/07/ 前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MyS ...

  5. XtraBackup出现 Can't connect to local MySQL server through socket '/tmp/mysql.sock'

    Xtrabackup做备份时遇到下面错误信息MySQL server: Can't connect to local MySQL server through socket '/tmp/mysql.s ...

  6. MySQL 使用XtraBackup的shell脚本介绍

    mysql_backup.sh是关于MySQL的一个使用XtraBackup做备份的shell脚本,实现了简单的完整备份和增量备份.以及邮件发送备份信息等功能.功能目前还比较简单,后续将继续完善和增加 ...

  7. Xtrabackup 安装使用

    一 简介:      Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品.它能对Inno ...

  8. 「转」xtrabackup新版详细说明

    声明:本文由我的同事@fiona514编写,是我看过的最用心的中文说明介绍,强烈推荐大家学习使用. Percona Xtrabackup 2.4.1 编译及软件依赖 centos5,6 需要升级cma ...

  9. 利用xtrabackup备份mysql数据库

    利用xtrabackup备份mysql数据库 一.安装1.直接下载二进制文件wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2. ...

  10. MySQL5.6下使用xtrabackup部分备份恢复到MySQL5.7

    现有需求:需要备份MySQL5.6环境下的部分表到MySQL5.7环境下并进行恢复 通过xtrabackup 实现部分备份有三种方式: 参考链接:http://blog.csdn.net/zhu197 ...

随机推荐

  1. OSI七层模型与TCP/IP协议

    作者:菘蓝 时间:2022/9/1 ================================================================================== ...

  2. C语言小游戏:贪吃蛇

    #include <graphics.h> #include <conio.h> #include <stdio.h> #define WIDTH 40 //设置宽 ...

  3. npm 和 maven 使用 Nexus3 私服 | 前后端一起学

    前文<Docker 搭建 Nexus3 私服 >介绍了在 docker 环境下安装 nexus3 以及 nexus3 的基本操作和管理,本文分别介绍 npm(前端)和 maven(后端)如 ...

  4. php统计IP PV和今日访问量统计方法

    php引用,在wordpress主题中 $getroot=$_SERVER['DOCUMENT_ROOT']; require_once("$getroot/countstart.php&q ...

  5. Python入门系列(十一)一篇搞定python操作MySQL数据库

    开始 安装MySQL驱动 $ python -m pip install mysql-connector-python 测试MySQL连接器 import mysql.connector 测试MySQ ...

  6. FreeSql 导入数据的各种场景总结 [C#.NET ORM]

    前言 导入数据这种脏活.累活,相信大家多多少少都有经历,常见的场景有: 同服务器从A表导数据到B表 批量导入新数据 批量新增或更新数据 跨服务器从A表导数据到B表 每种场景有自己的特点,我们一般会根据 ...

  7. Java 函数式编程

    由 JS 转 Java,写惯了 React,习惯了函数式,因此转 Java 时也是先学函数式. 语法糖「Syntactic Sugar」 起初,Java 的函数式看起来是匿名类的一个语法糖. Stre ...

  8. Linux下进行Oracle数据库安装

    一般来说我们Windows下进行安装Oracle都很简单,但Linux下却要输入很多命令,以下的安装步骤是本人经过多次安装Linux下的Oracle经验,希望能帮到大家 一.在Linux服务器上创建o ...

  9. Ceph分布式存储详述

    存储发展史 企业中使用存储按照其功能,使用场景,一直在持续发展和迭代,大体上可以分为四个阶段: DAS:Direct Attached Storage,即直连存储,第一代存储系统,通过SCSI总线扩展 ...

  10. tcp_tw_recycle参数引发的系统问题

    文章转载自: https://blog.csdn.net/zhuyiquan/article/details/68925707