XtraBackup 介绍

Percona XtraBackup 是一款基于 MySQL 的服务器的开源热备份实用程序,在备份过程中不会锁定数据库。它可以备份来自 MySQL5.1,5.5,5.6 和 5.7 服务器上的 InnoDB,XtraDB 和 MyISAM 表的数据,以及带有 XtraDB 的 Percona 服务器。

Percona XtraBackup 为所有版本的 Percona Server,MySQL 和 MariaDB 进行 MySQL 热备份。它执行流,压缩和增量 MySQL 备份。

功能:

在不暂停数据库的情况下创建热的 InnoDB 备份

进行 MySQL 的增量备份

将压缩的 MySQL 备份传输到另一台服务器

在 MySQL 服务器之间移动表格

轻松创建新的 MySQL 复制从站

在不增加服务器负载的情况下备份 MySQL

Xtrabackup 特点:

(1) 备份过程快速、可靠

(2) 备份过程不会打断正在执行的事务

(3) 能够基于压缩等功能节约磁盘空间和流量

(4) 自动实现备份检验

(5) 还原速度快

XtraBackup 安装部署

1、下载源码包

说明 :Percona XtraBackup 8.0 版本是针对 MySQL8.0 版本使用的

注意:下载前首先查看使用系统的 libgcrypt 版本,下载对应的版本

[root@localhost ~]# yum list installed|grep libgcrypt

如果不是对应系统 libgcrypt 的版本,会出现如下报错:

innobackupex: error while loading shared libraries: libgcrypt.so.20: cannot open shared object file: No such file or directory

2、上传软件解压安装

2.1:上传

创建文件存储目录

[root@localhost ~]# mkdir /soft

使用 xftp 或者 lrzsz 命令等工具上传

2.2:解压

[root@localhost soft]# tar -zxvf percona-xtrabackup-2.4.14-Linux-x86_64.libgcrypt153.tar.gz

2.3:拷贝文件

[root@localhost ~]# cd /soft/percona-xtrabackup-2.4.14-Linux-x86_64/bin/

[root@localhost bin]# cp innobackupex /usr/bin/

[root@localhost bin]# cp xtrabackup /usr/bin

#查看版本

[root@localhost bin]# ./innobackupex --version

XtraBackup 命令介绍

xtrabackup 有两个主要的工具:xtrabackup、innobackupex

xtrabackup 只能备份 InnoDB 和 XtraDB 两种数据表

innobackupex 则封装了 xtrabackup,同时可以备份 MyISAM 数据表

Innobackupex 完整备份后生成了几个重要的文件:

xtrabackup_binlog_info:记录当前最新的 LOG Position

xtrabackup_binlog_pos_innodb:innodb log postion

xtrabackup_checkpoints: 存放备份的起始位置 beginlsn 和结束位置 endlsn,增量备份需要这个 lsn[增量备份可以在这里面看 from 和 to 两个值的变化]

innobackupex

xtrabackup 命令只备份数据文件,并不备份数据表结构(.frm),所以使用 xtrabackup 恢复的时候必须有对应表结构文件(.frm)。用 innobackupex 命令,此命令相当于冷备份,复制数据目录的索引,数据,结构文件,但会有短暂的锁表(时间依赖于 MyISAM 大小,对 MyISAM 进行锁表;MySQL 的 5.7 默认是 Innodb 引擎,但是系统表还是默认的 MyIASM 引擎,所以会对系统表进行短暂锁表操作)

参数介绍

--defaults-file:指定my.cnf参数文件的位置[my.cnf配置文件里必须指定datadir]

--apply-log:同xtrabackup的--prepare参数,一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据 文件仍处理不一致状态。--apply-log的作用是通过回滚未提交的事务及同步已经提交的事务至数据文件使数据文件处于一致性状态。

--copy-back:做数据恢复时将备份数据文件拷贝到MySQL服务器的datadir

--remote-host=HOSTNAME: 通过ssh将备份数据存储到进程服务器上

--stream=[tar]:备份文件输出格式, 该文件可在XtarBackup binary文件中获得. 在使用参数stream=tar备份的时候,你的xtrabackup_logfile可能会临时放在/tmp目录下,如果你备份的时候并发写入较大的话,xtrabackup_logfile可能会很大(5G+),很可能会撑满你的/tmp目录,可以通过参数--tmpdir指定目录来解决这个问题.

--tmpdir=DIRECTORY:当有指定--remote-host or --stream时, 事务日志临时存储的目录, 默认采用MySQL配置文件中所指定的临时目录tmpdir

--redo-only --apply-log:强制备份日志时只redo,跳过rollback,这在做增量备份时非常必要

--use-memory=*:该参数在prepare的时候使用,控制prepare时innodb实例使用的内存

--databases=LIST:列出需要备份的databases,如果没有指定该参数,所有包含MyISAM和InnoDB表的database都会被备份

--slave-info:备份从库, 加上--slave-info备份目录下会多生成一个xtrabackup_slave_info 文件, 这里会保存主日志文件以及偏移, 文件内容类似于:CHANGE MASTER TO MASTER_LOG_FILE='', MASTER_LOG_POS=0

--socket=SOCKET:指定mysql.sock所在位置,以便备份进程登录mysql.

--no-timestamp:不建立以时间命名的目录

innobackupex 使用

1、对某个数据库进行全部备份的命令介绍

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --database=dbname --stream=tar /tmp/data/ 2>/tmp/data/error.log|gzip 1>/tmp/data/test.tar.gz

说明:

--database=dbname 单独对指定数据库做备份 ,若是不添加此参数那就是对全库做备份

2>/tmp/data/error.log 标准错误输出信息写入日志中

1>/tmp/data/test.tar.gz 打包压缩存储到该文件中

2、对数据库的全部备份与恢复

下面开始测试 xtrabackup 的全部备份

2.1:备份 MySQL 全部数据库

[root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --socket=/data/mysql/mysql.sock /mysql_data_bak/

注意:

--defaults-file必须放置命令行的第一个位置,不然报以下错误

xtrabackup: Error: --defaults-file must be specified first on the command line

2.2:查看备份数据

指定的备份目录下会生成一个以时间命名的文件夹,备份数据备份在此目录下

[root@localhost mysql_data_bak]# ll

total 20

drwxr-x--- 6 root root 4096 Jul 1 16:15 2019-07-01_16-15-32

[root@localhost mysql_data_bak]# cd 2019-07-01_16-15-32/

2.3:数据文件一致性

利用 --apply-log 的作用是通过回滚未提交的事务及同步已经提交的事务至数据文件处于一致性状态; 把已提交的事务合并到 ibdata 文件

[root@localhost ~]# innobackupex --apply-log /mysql_data_bak/2019-07-01_16-15-32/

查看数据是否有变化,对比之前多几个个文件

2.4:全库恢复

2.4.1:关闭数据库

[root@localhost ~]# systemctl stop mysqld

2.4.2:将原数据目录备份

[root@localhost ~]# mv /data/mysql{,bak}

[root@localhost ~]# ls /data/

mysqlbak#已经更改,此时数据库无法使用

2.4.3:创建新的 Datadir

[root@localhost ~]# mkdir /data/mysql

注意:与/etc/my.cnf 文件定义的 datadir 路径一致,不然数据库起不来

2.4.4:恢复数据

[root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --copy-back /mysql_data_bak/2019-07-01_16-15-32/

2.4.5:重新授权 Datadir 目录

[root@localhost ~]# chown -R mysql. /data/mysql

2.4.6:启动数据库

[root@localhost ~]# systemctl start mysqld

2.5:登入数据库查看

[root@localhost ~]# mysql -uroot –p

mysql> show databases;

mysql> use yptms;

mysql> show tables;

3、对某一个库进行全备与恢复

3.1:备份数据库

先进入 MySQL 里创建一个测试数据库,然后导入一些数据或者自己创建

3.2:备份 yptms 整个数据库

[root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --host=11.18.198.91 --databases=yptms /mysql_data_bak/

3.3:查看备份文件

[root@localhost ~]# cd /mysql_data_bak/

[root@localhost mysql_data_bak]# ll -h

total 16K

drwxr-x--- 3 root root 149 Jul 1 16:00 2019-07-01_16-00-28

注意:指定的备份目录下会生成一个以时间命名的文件夹,备份数据备份在此目录下

[root@localhost mysql_data_bak]# cd 2019-07-01_16-00-28/

3.4:数据文件一致性

利用 --apply-log 的作用是通过回滚未提交的事务及同步已经提交的事务至数据文件处于一致性状态; 把已提交的事务合并到 ibdata 文件

[root@localhost ~]# innobackupex --apply-log /mysql_data_bak/2019-07-01_16-15-32/

3.5:恢复数据库

注意:innobackupex 不能通过命令恢复指定的数据库,只能在恢复时停止数据库,然后将当前的 datadir 目录重新命名,然后新建一个数据目录(必须是/etc/my.cnf 文件中指定的 datadir 路径和名称);最后数据恢复至新建的 datadir 中后,再将旧的 datadir 目录下的其他数据库和文件拷贝至新建的 datadir 目录下,然后在启动数据库(不建议这么操作,数据量大时建议全备后然后全库恢复,保证数据的一致)

3.5.1:停止数据库

[root@localhost ~]# systemctl stop mysqld

3.5.2:重命名原数据目录

[root@localhost ~]# mv /data/mysql /data/mysql_bak

3.5.3:恢复数据库

[root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --copy-back /mysql_data_bak/2019-07-01_16-00-28/

执行上面的命令需要保证数据目录是空的,否则会失败,因为目录里有 binlog 日志,要么移走,要么就用手动复制需要的文件。所以说日志不要和数据放在一起!

3.5.4:数据目录授权

[root@localhost ~]# chown –R mysql. /data/mysql

3.6:启动数据库

[root@localhost ~]# systemctl start mysqld

3.7:检查数据

[root@localhost ~]# mysql –uroot –p

mysql xtrabackup_MySQL 数据热备工具 XtraBackup 的介绍及使用相关推荐

  1. (4.14)mysql备份还原——mysql物理热备工具之ibbackup

    关键词:mysql热备工具,ibbackup,mysql物理备份工具 1. 准备 ibbackup 是 InnoDB 提供的收费工具,它支持在线热备 InnoDB 数据,主要有以下特性: * Onli ...

  2. 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变...

    [Mysql主从复制] 解决的问题 数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了. 负载均 ...

  3. ubuntu mysql双主热备配置_MySql双主热备配置

    用四台服务器配置MySql双主热备配置 主机1服务器ip:192.168.31.208 主机2服务器ip:192.168.31.133 从机1服务器ip:192.168.31.121 从机2服务器ip ...

  4. mysql的双机热备自动切换_Mysql双机热备配置(超详细多图版)

    一.双击热备介绍 1.基本概念 双机热备特指基于高可用系统中的两台服务器的热备(或高可用),双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active- ...

  5. 企鹅电竞登录鉴权系统架构与核心数据热备容灾方案

    文章目录 0.前言 1.术语说明 2.登录鉴权系统架构 3.登录鉴权关键路径梳理与优化 4.核心数据热备容灾 4.1 需求背景 4.2 其它系统容灾方案 4.2.1 NOW 直播评论容灾架构 4.2. ...

  6. mysql数据库双机热备

    一.Mysql双机热备要求: 数据库版本要高于5.1 从数据库版本要大于或者等于主数据库版本 工具:navicat 二.Mysql双机热备步骤: 主服务器ip:192.168.1.55(mysql5. ...

  7. keepalived mysql双主架构图_基于keepalived Mysql双主热备配置

    基于keepalived双主热备: 一.环境: OS:CentOS 6.5 X64 DB Version:Percona Mysql 5.7.15-9-log 路径:/app/mysql57 数据文件 ...

  8. mysql主从配置 热备_MYSQL 主从热备方式配置

    MySQL数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题.还好MySQL数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库中.实现MySQL数据库的热备 ...

  9. mysql之 percona-xtrabackup 2.4.7安装(热备工具)

    准备:os是centos6.7,提前下载并上传 percona-xtrabackup 安装包,下载网址为: https://www.percona.com/downloads/XtraBackup/L ...

最新文章

  1. ie浏览器在线使用_全球浏览器5月份市场份额公布!Chrome和Edge浏览器迎来新一轮“撕X”大战...
  2. Salesforce 小知识:大量“子记录”的处理方法
  3. python全局变量global线程安全_对python多线程与global变量详解
  4. Java实现Oracle数据库导入
  5. OpenCv —— 检测车牌号(附完整源码)
  6. 王道计算机考研图书勘误表公布!
  7. [置顶] 我也来学习nodejs 没有就自己来 色色实现迷你 MVC
  8. 电脑COM串口管理芯片75232、75185及电路(两者可代换)
  9. HDUOJ_2567_寻梦
  10. 新手搭建网站后视频资源在网站上是如何存储的?
  11. mysql ssd 应用_MySQL Disk--SSD 特性
  12. ETCD 源码学习--Watch(client)
  13. 如何做用户画像分析?
  14. 【项目管理】项目进度管理
  15. 为什么pLC工程师如此年轻,他们的经验毫无价值?
  16. Android短信收发
  17. 使用python3 爬取豆瓣电影热映和即将上映
  18. 那些年啊,那些事——一个程序员的奋斗史 ——123
  19. 决策树算法分析天气、周末和促销活动对销量的影响
  20. latex写姓名_用Latex写学术论文:作者(Author)摘要(Abstract)

热门文章

  1. 鄂汇办2021高考成绩查询,湖北省2021年高考成绩发布时间和填报志愿时间安排
  2. 【LOJ#2236】【洛谷P3258】松鼠的新家【LCA】【树上差分】
  3. Golang net/http 请求处理流程分析
  4. 十大经典排序算法(Java实现)
  5. 如何实现点击表格行会出现变色并跳转
  6. Linux常用命令——文件目录类
  7. 不对代码做测试就像“上完厕所不洗手”
  8. 【写博客常用】sublime 快捷键
  9. 《破壁MySQL》 - MySQL索引
  10. 运营商 html劫持 原理,域名劫持、运营商流量劫持的现象及分析