MySQL 备份与恢复 - xtrabackup

【TODO-未整理、未实测】MySQL 备份与恢复 - xtrabackup 。

数据库备份恢复之XtraBackup概述及安装部署
一、xtrabackup工具介绍及备份过程概述
1.xtrabackup简介:
mysqldump备份方式是采用逻辑备份,其最大的缺陷就是备份和恢复速度都慢,对于一个小于50G的数据库而言,这个速度还是能够接受的,如果数据库非常大,那再使用mysqldump备份就不太适合了。
Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上唯一一个开源的能够对innodb和xtradb数据库进行物理热备的工具。
2.xtrabakcup特点:
1)备份过程快速,可靠;
  2)备份过程不会打断正在执行的事务(不需要锁表)
  3)能够给予压缩等功能节约磁盘空间和流量。
  4)自动实现备份检验;
  5)还原速度快;
  6)可以进行流传出备份,备份到另外一台机器上。
Xtrabackup中主要有包含两个工具:
1.innobackupex:是将xtrabackup进行封装的perl脚本,提供了备份myisam表的能力,
2.xtrabackup:是用于热备innodb,xtradb表中数据的工具,不能备份其他类型的表,也不能备份数据表结构;

【xtrabackup 全量备份恢复】

  1. 完全备份
    创建用于备份恢复的用户 pxb 并赋予权限
    create user pxb@‘localhost’ identified by ‘123456’;
    grant reload,process,lock tables,replication client on . to pxb@localhost;

创建存放目录
mkdir -pv /data/pxb

进行数据库全备(生成全备:/data/pxb/2017-04-24_02-46-11)
innobackupex --defaults-file=/etc/my.cnf --user=pxb --password=123456 --socket=/tmp/mysql.sock /data/pxb

  1. 全备恢复
    关闭数据库并删除数据文件
    /etc/init.d/mysqld stop
    cd /home/mysql
    mv data data_bak
    mkdir data

准备(prepare)一个完全备份:–apply-log ( /data/pxb/2017-04-24_02-46-11/ 为备份目录,执行之后 xtrabackup_checkpoints 文件中的 backup_type = full-prepared )
innobackupex --apply-log /data/pxb/2017-04-24_02-46-11/

执行恢复操作:
innobackupex --defaults-file=/etc/my.cnf --copy-back --rsync /data/pxb/2017-04-24_02-46-11/

更改 data/ 目录权限并启动mysql:
chown -R mysql:mysql data/
/etc/init.d/mysqld start

验证

【xtrabackup 增量备份恢复】
我们以之前做的全备为基准,在其基础上做增量备份:
增量备份1:(以全备为基准:/data/pxb/2017-04-24_02-46-11/)(生成增量1:/data/pxb/inc/2017-04-28_01-09-40)
innobackupex --defaults-file=/etc/my.cnf --user=pxb --password=123456 --socket=/tmp/mysql.sock --incremental /data/pxb/inc --incremental-basedir=/data/pxb/2017-04-24_02-46-11/ --parallel=2

增量备份2:(以增量1为基准:/data/pxb/inc/2017-04-28_01-09-40/)(生成增量2:/data/pxb/inc/2017-04-28_01-27-46)
innobackupex --defaults-file=/etc/my.cnf --user=pxb --password=123456 --socket=/tmp/mysql.sock --incremental /data/pxb/inc --incremental-basedir=/data/pxb/inc/2017-04-28_01-09-40/ --parallel=2

增量备份的恢复
增量备份的恢复需要有3个步骤
1恢复完全备份
2恢复增量备份到完全备份(开始恢复的增量备份要添加–redo-only参数,到最后一次增量备份要去掉–redo-only)
3对整体的完全备份进行恢复,回滚未提交的数据
##准备一个全备##
innobackupex --apply-log --redo-only /data/pxb/2017-04-24_02-46-11/

##将增量1应用到完全备份##
innobackupex --apply-log --redo-only /data/pxb/2017-04-24_02-46-11/ --incremental-dir=/data/pxb/inc/2017-04-28_01-09-40/

##将增量2应用到完全备份,注意不加 --redo-only 参数了##
innobackupex --apply-log /data/pxb/2017-04-24_02-46-11/ --incremental-dir=/data/pxb/inc/2017-04-28_01-27-46/

##把所有合在一起的完全备份整体进行一次apply操作,回滚未提交的数据##
innobackupex --apply-log /data/pxb/2017-04-24_02-46-11/

关闭数据库并删除数据文件
/etc/init.d/mysqld stop
cd /home/mysql
mv data data_bak2
mkdir data

执行恢复操作:
innobackupex --defaults-file=/etc/my.cnf --copy-back --rsync /data/pxb/2017-04-24_02-46-11/

更改 data/ 目录权限并启动mysql:
chown -R mysql:mysql data/
/etc/init.d/mysqld start

验证



扫码关注微信公众号 程序员35 ,获取最新技术干货,畅聊 #程序员的35,35的程序员# 。独立站点:https://cxy35.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值