xtrabackup 备份恢复测试过程

参考:

http://blog.csdn.net/justdb/article/details/17054579# MySQL备份与恢复之percona-xtrabackup软件的使用

http://blog.csdn.net/justdb/article/details/17054667# MySQL备份与恢复之percona-xtrabackup实现增量备份及恢复

http://devliangel.blog.51cto.com/469347/1374232# 使用innobackupex在线增量备份及恢复mysql数据库

http://www.percona.com/doc/percona-xtrabackup/2.2/# 官方使用手册文档

http://blog.chinaunix.net/uid-20785090-id-4212816.html# xtraBackup备份原理剖析

http://blog.csdn.net/tianlesoftware/article/details/7028733 # MySQL 数据文件 说明

xtrabackup 备份恢复测试过程

1、安装

cd /data/soft

wget http://www.percona.com/redir/downloads/XtraBackup/LATEST/binary/redhat/6/x86_64/percona-xtrabackup-2.2.6-5042.el6.x86_64.rpm

yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL

rpm -ivh percona-xtrabackup-2.2.6-5042.el6.x86_64.rpm

2、完全备份及恢复

# mysql备份用户授权

mysql> grant select,show view,Replication client,SUPER,RELOAD  on *.* to ‘backup‘@‘127.0.0.1‘ identified by ‘passwd‘;flush privileges;

完全备份

innobackupex --host=127.0.0.1  --port=3306 --user=backup --password=‘passwd‘ --no-lock --defaults-file=/usr/local/services/mysql/etc/my.cnf --parallel=4   /data/backup

完全恢复

#检查及准备备份完的数据 --use-memory 参数默认100M, 表示可以给innobackupex使用的内存,越多越好

innobackupex --parallel=4 --use-memory=1G --apply-log  /data/backup/2014-11-18_15-52-40

#恢复

innobackupex  --defaults-file=/usr/local/services/mysql/etc/my.cnf   --parallel=4 --copy-back  /data/backup/2014-11-18_15-52-40

chown mysql:mysql /data/mysql_data -R

service mysql start

3、增量备份及恢复

#针对已经备份的目录进行增量备份

innobackupex --host=127.0.0.1  --port=3306 --user=backup --password=‘passwd‘ --no-lock --defaults-file=/usr/local/services/mysql/etc/my.cnf  --incremental /data/backup/ --incremental-dir /data/backup/2014-11-18_15-52-40

#再次插入数据

# 再次增量备份

innobackupex --host=127.0.0.1  --port=3306 --user=backup --password=‘passwd‘ --no-lock --defaults-file=/usr/local/services/mysql/etc/my.cnf  --incremental /data/backup/ --incremental-dir /data/backup/2014-11-18_18-11-35

#再次插入数据

# 再次增量备份

innobackupex --host=127.0.0.1  --port=3306  --user=backup --password=‘passwd‘ --no-lock --defaults-file=/usr/local/services/mysql/etc/my.cnf  --incremental /data/backup/ --incremental-dir /data/backup/2014-11-18_18-14-56

#模拟数据丢失

service mysql stop

rm -rf /data/mysql_data/*

#三次增量备份数据合并到全备份中去

innobackupex  --apply-log --redo-only --incremental /data/backup/2014-11-18_15-52-40 --incremental-dir /data/backup/2014-11-18_18-11-35

innobackupex  --apply-log --redo-only --incremental /data/backup/2014-11-18_15-52-40 --incremental-dir /data/backup/2014-11-18_18-14-56

innobackupex  --apply-log --redo-only --incremental /data/backup/2014-11-18_15-52-40 --incremental-dir /data/backup/2014-11-18_18-17-07

#恢复整合后的全备数据

#检查及准备备份完的数据

innobackupex --parallel=4 --use-memory=1G --apply-log  /data/backup/2014-11-18_15-52-40

#恢复

innobackupex   --defaults-file=/usr/local/services/mysql/etc/my.cnf   --parallel=4 --copy-back  /data/backup/2014-11-18_15-52-40

chown mysql:mysql /data/mysql_data -R

service mysql start

4、单数据库备份及恢复

#指定数据库备份

innobackupex --host=127.0.0.1  --port=3306  --user=backup --password=‘passwd‘ --no-lock --defaults-file=/usr/local/services/mysql/etc/my.cnf --parallel=4  --databases=‘test_backup5‘  /data/backup

#模拟表数据丢失

mysql > drop test_backup5 MyClass;

mysql > create table MyClass(  id int(4) not null primary key auto_increment,   name char(20) not null,  sex int(4) not null default ‘0‘,   degree double(16,2));

ALTER TABLE test_backup5.MyClass IMPORT TABLESPACE:

# 恢复指定库表数据

#指定数据库恢复检查及导出表空间文件

innobackupex --apply-log --export /data/backup/2014-11-19_18-05-35

# 删除表空间

mysql > use test_backup5;

mysql >  ALTER TABLE  test_backup5.MyClass DISCARD TABLESPACE;

#复制需要导入的表空间文件到相应数据库目录,复制MyClass.ibd 和 MyClass.cfg (mysql5.6以前的版本是.exp)

cp /data/backup/2014-11-19_18-05-35/test_backup5/{MyClass.ibd,MyCLass.cfg} /data/mysql_data/test_backup5

# 导入表空间

mysql > use test_backup5;

mysql >  ALTER TABLE  test_backup5.MyClass IMPORT TABLESPACE;

5、使用定制的xtrabackup备份及恢复脚本 + binlog备份恢复

为简化操作编写了三个脚本,各脚本中有数据库及备份目录参数设置(附件有下载链接)

脚本列表说明:

#全数据库备份脚本 用法: ./xtrabackup_backup.sh

xtrabackup_backup.sh

#全数据库导入脚本 用法: ./xtrabackup_all_import.sh <BAK_IMPORT_DATETIME>

xtrabackup_all_import.sh

#单数据库导入脚本 用法: ./xtrabackup_import <BAK_IMPORT_DATETIME> <DBNAME>

xtrabackup_import.sh

#备份及恢复过程如下

# 完全备份数据表结构,此处省略过程(注意,备份表结构需加-R(备份函数及存储过程) --no-data(不备份数据))

# 完全备份数据,使用备份脚本

sudo sh xtrabackup_backup.sh

# 备份目录在为

# innobackupex: Backup created in directory ‘/data/backup/2014-12-01_16-51-00‘

# binlog信息在 xtrabackup_binlog_info 或 xtrabackup_info 中

# innobackupex: MySQL binlog position: filename ‘mysql-bin.000006‘, position 191, GTID of the last change ‘7d481ded-790b-11e4-9d81-00e081e00029:1-178‘

# Game数据库,表cGameServerList 修改一条、添加一条数据、删除一条数据 (三次修改数据,为binlog恢复验证做准备)

# 此处省略过程

# 删除Game数据库

drop database Game

# binlog日志生成新文件

mysql -uroot -e "flush logs;"

# 查看binlog新日志名称

mysql -uroot -e "show binary logs;"|tail

# 创建数据库,并导入表结构

mysql -uroot -e "create database Game"

mysql -uroot Game < Game-nodata.sql

# 用xtrabackup 单库恢复Game, 执行恢复脚本 ,输入参数 恢复备份目录及恢复数据库 (注意:mysiam 引擎表或在现有的innodb表基础上恢复,需要重启mysql服务)

sudo sh  xtrabackup_import.sh 2014-12-01_16-51-00 Game

#检查cGameServerList 表数据正常

# 通过binlog 恢复从定时备份到drop 数据库前的数据

# 查看xtrabackup备份的binlog-info 备份时 MySQL binlog position: filename ‘mysql-bin.000009‘, position 191

# 查看drop database Game 时 MySQL binlog position

sudo /usr/local/services/mysql/bin/mysqlbinlog --start-position=191  /data/mysql_data/mysql-bin.000006|grep -B 10 -i ‘DROP DATABASE‘

#备份现有binlog

cp /data/mysql_data/mysql-bin* /data/mysqlbinlogbak/

#初始化binlog,清空现有的mysqlbinlog日志,如果不执行这步,导入不了最后需要执行的binlog中的数据记录

mysql -uroot -e "reset master"

#导入需要恢复的binlog(按备份的position 至drop 前的position 恢复),如果需要恢复多个mysql-bin 文件,执行多条下面命令

sudo /usr/local/services/mysql/bin/mysqlbinlog /data/mysqlbinlogbak/mysql-bin.000009 --start-position=191 --stop-position=2814 | mysql -uroot

#再次检查cGameServerList 表数据正常,发现这次数据为做过三次修改的数据,到现在为止,全部数据恢复正常

6、从数据库使用参数 --slave-info --safe-slave-backup 记录备份时的slave状态,注意:slave信息备份需要的backup备份账户有 SUPER 权限 

时间: 2024-10-06 00:12:42

xtrabackup 备份恢复测试过程的相关文章

xtrabackup备份恢复测试 -转

Chinaunix首页 | 论坛 | 认证专区 | 博客 登录 | 注册 博文      博主 王恒-Henryhengwang.blog.chinaunix.net 我的项目:https://github.com/HengWang/ ChinaUnix博客技术文章推荐标准和规范 有奖征集:文集--博客系列博文管理 CU博客频道6月技术图书有奖试读活动 首页 | 博文目录 | 关于我 king_wangheng 博客访问: 486455 博文数量: 117 博客积分: 1715 博客等级: 上尉

使用xtrabackup备份恢复Mariadb数据库

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

innobackupex xtrabackup 备份恢复mysql数据

复制地址:https://www.linuxyw.com/download/xtrabackup.pdf http://www.linuxyw.com Email:[email protected] xtrabackup 对 MySQL 数据库的备份及恢复 此文档,只是简单地研究了下,用于数据库全备和增备,效果不错 因为目前对此软件未有需求,所以,文档并不完善,等有时间了,再进行完善吧 此文档资料,互联网收集而成 本人博客: http://www.linuxyw.com xtrabackup x

Xtrabackup 备份恢复

一.Xtrabackup 说明及安装 一.Xtrabackup 说明及安装 二.Xtrabackup 全备份及恢复 三.Xtrabackup 全备和增量备份及恢复 四.Xtrabackup 部分全备和增量及恢复 一.Xtrabackup 说明及安装 1.Xtrabackup 介绍及说明 Percona XtraBackup是世界上唯一开放源码的免费MySQL热备份软件,可以执行非阻塞 InnoDB和XtraDB数据库的备份.使用Percona XtraBackup,您可以实现以下好处: 快速可靠

MySQL之Xtrabackup备份恢复数据库-简介

一.Xtrabackup介绍 1.Xtrabackup是什么 Xtrabackup 是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品. Xtrabackup 有两个主要的工具:xtrabackup.innobackupex xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表. innobackupex是参考了InnoDB Hotbackup的innoback脚

XtraBackup备份恢复模拟实践

XtraBackup是Percona公司开发的一款很好用的数据备份工具,支持对InnoDB引擎数据的热备份,对MyISAM引擎的数据做备份时需要锁表,详细信息参见官网或其他资源.[XtracBackup官网] 1. 实验环境 1.1 系统环境: 操作系统:CentOS 6.5 64位 主机地址:10.0.0.26 主机名:mysql01 mysql版本:mysql-5.6.36 XtraBackup版本:2.4.12 2. 软件安装 2.1 安装mysql服务 MySQL服务详细安装过程请参考上

mysql xtrabackup 备份恢复实现分享

Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具 简介 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具.特点: (1)备份过程快速.可靠: (2)备份过程不会打断正在执行的事务: (3)能够基于压缩等功能节约磁盘空间和流量: (4)自动实现备份检验: (5)还原速度快: X

mysql xtrabackup 备份恢复实现,mysql命令备份数据库,打包压缩数据库

简介 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具.特点: (1)备份过程快速.可靠: (2)备份过程不会打断正在执行的事务: (3)能够基于压缩等功能节约磁盘空间和流量: (4)自动实现备份检验: (5)还原速度快: Xtrabackup中包含两个工具: * xtrabackup - 用于热备份innodb, xtradb表的工具,不能备份其他表. * innobackupex

Xtrabackup备份恢复

完全备份+两次增量备份 --> 新主机恢复 环境: CentOS7.4 x 2 MariaDB-5.5.5 zabbix数据 EPEL源 Xtrabackup工具包 一.两台主机分别安装Xtrabackup wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm yum