生产环境mysql快速备份工具XtraBackup使用案例

Mysql的备份有很多种方式,最常用的应该是mysqldump了,将数据库导出一个 sql文件,还原的时候source db.sql 就欢快的执行了。小伙伴愉快的布上一个shell脚本,配上cron,幸福的看着每天备份文件的生成,倍感安全。假如一个mysql超过了10G呢? 请相信我,导出的时间需要好几个小时,那还原呢,时间会更长。我曾经用sql还原一个6G的数据库,用了3个多小时。

mysqldump这种逻辑备份的缺点就不多说了,说说xtrabackup,又是PERCONA,就冲这个名号,值得信赖。官方说明:

1、快速可靠

2、备份过程中不中断事务处理

3、节约磁盘空间和网络带宽

4、自动备份验证

5、由于快速还原而带来的高可用行

上面说的,反正我是信了,还是那个6G多的库,全备用了5分钟,还原也只用了5分钟。兄弟们,记住一点,要是真到了用备份来还原数据的时候,你还原几个小时,老板会有想法的!呵呵。

操作系统:CentOS release 6.5

Mysql: 5.6.21

一、安装

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
yum install percona-xtrabackup

二、开始使用


xtrabackup包含innobackupex,xtrabackup,xbcrypt,xbstream这几个工具。Innobackupex支持MyISAM,InnoDB。所有,我选择使用innobackupex。

1.创建备份用户,你懂的,最小权限

mysql> create user‘bkuser‘@‘localhost‘ identified by ‘bk2015‘;
Query OK, 0 rows affected (0.16sec)
mysql> grant reload,locktables,replication client on *.* to ‘bkuser‘@‘localhost‘;
Query OK, 0 rows affected (0.00sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01sec)


2.使用innobackupex进行数据库全备

innobackupex --user=bkuser--password=bk2015 /mnt/backups

--user 提供连接数据库的用户名

--password 连接数据库的密码

/mnt/backups 备份文件的存储路径

命令执行完成后在/mnt/backups目录下生成了2015-02-03_15-11-51目录,该目录就是我们当前数据库的一个完整备份。该目录是innobackupex自动生成的目录,有一个参数可以控制该选项--no-timestamp,如果加上该参数,将不会自动生成目录,备份创建在提供的路径下。该参数在脚本中使用比较方便。

 

3.使用完整备份进行数据库还原

    

还原准备工作

innobackupex --apply-log/mnt/backups/2015-02-03_15-11-51

--apply-log 创建的备份中可能有些未提交的事务,需要回滚或者从日志进行回放

 

还原

停止mysql服务,

service mysqld stop

备份原有的mysql数据目录

mv /mnt/data/mysql /mnt/data/mysql20150203

执行还原操作

innobackupex --copy-back/mnt/backups/2015-02-03_15-11-51/

改变目录权限,启动服务

chown –R mysql.mysql /mnt/data/mysql

service mysqld start

4.innobackupex增量备份

增量备份需要一次完成备份为基础,在全备的基础上,下次备份仅备份当前时间到上次完备基础上变化的数据。最大的好处是节约磁盘空间。当然,不好的地方是还原,还原的流程将变的复杂

4.1 首先进行全备

innobackupex --user=bkuser --password=bk2015 /mnt/backups

在备份目录2015-02-03_15-11-51中有个xtrabackup-checkpoints,内容如下:

backup_type = full-backuped

from_lsn = 0

to_lsn = 1291135

创建增量备份

innobackupex --incremental /mnt/backups --incremental-basedir=/mnt/backups/2015-02-03_15-11-51

--incremental 使用该参数创建增量备份

--incremental-basedir 指定上一次备份的目录,比如这是完整备份后的第一次增备,该目录是完备的目录,如果这是第二次增备,则该目录是第一次增备的目录

检查增备目录的文件中的xtraback_checkpoint文件内容,会发现,lsn发生了变化

backup_type = incremental
from_lsn = 1291135
to_lsn = 1352113

5.增量备份的还原

5.1 还原准备工作

流程: --apply-log 应用到全备目录,第一次增备,第二增备……第N次增备,全部应用完成后相当于全备+所有增备 的一个新的全备。

innobackupex --apply-log --redo-only BASE-DIR
innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1
innobackupex --apply-log BASE-DIR --incremental-dir=INCREMENTAL-DIR-2

BASE-DIR 全备目录
INCREMENTAL-DIR-1 第一次增备
INCREMENTAL-DIR-2 第二次增备

--redo-only 重要,每次增备都需要指定该参数,除了最后一次。否则未提交的事务将执行rollback。

以上步骤完成后,再次执行

innobackupex --apply-log BASE-DIR

剩下的步骤按照全备的方式还原即可

时间: 2024-10-06 23:12:18

生产环境mysql快速备份工具XtraBackup使用案例的相关文章

mysql物理备份工具Xtrabackup安装配置

mysql物理备份工具Xtrabackup安装配置 1????Xtrabackup工具介绍 Xtrabackup是一个对InnoDB做物理数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品. Xtrabackup有两个主要的工具:xtrabackup.innobackupex (1)xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表. (2)innobackupex是用来备份非Inn

Linux环境mysql快速备份及迁移

在项目实施的过程中,经常会面临数据库迁移,导出和导出数据,如果用普通的mysql客户端备份,时间较长且容易出错.那么mysql快速备份及迁移,就成为数据库迁移的重中之重. 下面介绍我在项目实现过程中用到的方法. 1.为了方便,这边直接将需要执行的SQL语句写成脚本dbbak.sh.脚本内容如下: #!/bin/sh #bak dir BACKUP_ROOT=备份路径 BACKUP_FILEDIR=$BACKUP_ROOT #current date DATE=$(date +%Y%m%d) ##

Mysql第三方备份工具Xtrabackup使用说明

1.Xtrabackup安装 1)yum安装方式: yuminstallhttp://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm yumlist | grep percona yuminstall xtrabackup 2)apt安装方式: apt-keyadv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EF

数据库 之 备份工具Xtrabackup进行MySQL备份

1  概述 1.1  简介 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. PXB(Percona XtraBackup)是物理备份,是基于复制文件备份,备份时可以远程操作,基于mysql协议远程连接,需要备份的主机不用安装PXB,但是,执行恢复数据操作时mysql服务不能启动,所以恢复时只能本地恢复,而且在本地的服务器上要安装PXB PXB在恢复增量数据时,先合并第一次增量到全量

MySQL Study之--MySQL innodb引擎备份工具XtraBackup之一(Install)

MySQL Study之--MySQL innodb引擎备份工具XtraBackup之一(Install) Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品. Xtrabackup有两个主要的工具:xtrabackup.innobackupex (1)xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表 (2)innobackupex-1.5

MySQL备份工具XtraBackup的使用

xtrabackup简介 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具.特点: (1)备份过程快速.可靠: (2)备份过程不会打断正在执行的事务: (3)能够基于压缩等功能节约磁盘空间和流量: (4)自动实现备份检验: (5)还原速度快: 官方下载地址:地址,你可以通过此链接下载最新版. #wget https://www.percona.com/downloads/XtraBac

mysql5.7 innodb数据库备份工具Xtrabackup的安装

mysql5.7 innodb数据库备份工具Xtrabackup的安装     wget mhttps://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.7/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.7-1.el6.x86_64.rpm Mysql5.7需要安装XtraBackup 2.4.1以上版本 官网地址 https://www.percona.com/down

mysql的备份: Xtrabackup的使用方法

Xtrabackup: Xtrabackup的优点:1.快速 ,支持并行备份.--parallel=8 2.在线备份备份,不阻塞读写(INNODB),对MYISAM添加全局锁3.支持在线搭建主从复制 Xtrabackup的基本实用方法: -- 全备innobackupex --defaults-file=/etc/my.cnf --user=root  --socket=/var/lib/mysql/mysql.sock --parallel=8 /home/backup/ /home/back

MySQL Study之--Mysql数据库备份工具(mysqldump)

MySQL Study之--Mysql数据库备份工具(mysqldump) 对于Mysql Database的备份方式有很多种,此次文档主要介绍mysqldump工具: mysqldump:      mysqldump工具很多方面类似相反作用的工具mysqlimport.它们有一些同样的选项.但mysqldump能够做更多的事情.它可以把整个数据库装载到一个单独的文本文件中.这个文件包含有所有重建您的数据库所需要的SQL命令.这个命令取得所有的模式(Schema,后面有解释)并且将其转换成DD