MySQL备份恢复工具xtrabackup
1、简介
XtraBackup是Percona提供的一个开源的、免费的MySQL数据库备份工具,它能够对InnoDB和XtraDB数据库进行热备份,据官方介绍,XtraBackup具有以下特点:
1. 备份过程快速、可靠;
2. 备份过程不会打断正在执行的事务;
3. 能够基于压缩等功能节约磁盘空间和流量;
4. 自动实现备份检验;
5. 恢复速度快。
2、安装XtraBackup
最新版本可以从https://www.percona.com/software/percona-xtrabackup获得。
# yum install https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.2.10/binary/redhat/6/x86_64/percona-xtrabackup-2.2.10-1.el6.x86_64.rpm
3、创建所需用户
# 创建具有所需完整备份最低权限的数据库用户示例:
mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cret';
mysql> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';
mysql> FLUSH PRIVILEGES;
4、完全备份
# innobackupex --user=DBUSER --password=DBUSERPASS /path/to/BACKUP-DIR/
# 检查输出最后一行的确认消息
innobackupex: Backup created in directory ’/path/to/BACKUP-DIR/2013-03-25_00-00-09’
innobackupex: MySQL binlog position: filename ’mysql-bin.000003’, position 1946
111225 00:00:53 innobackupex: completed OK!
5、准备(Prepar)一个完全备份
# innobackupex --apply-log /path/to/BACKUP-DIR
111225 1:01:57 InnoDB: Shutdown completed; log sequence number 1609228
111225 01:01:57 innobackupex: completed OK!
# 注意:在实现"准备"的过程中,innobackupex通常还可以使用--use-memory选项来指定其可以使用的内存的大小,默认为100M。如果有足够的内存可用,可以多划分一些内存给prepare的过程,以提高完成速度。
6、从一个完全备份中恢复
# innobackupex命令的--copy-back选项用于执行恢复操作,通过复制所有数据相关的文件到mysql服务器的DATADIR目录中来执行恢复过程。
# innobackupex --copy-back /path/to/BACKUP-DIR
# 如果执行正确,会出现类似几行
innobackupex: Finished copying back files.
111225 01:08:13 innobackupex: completed OK!
# 注意:删除数据目录之前,先停止mysqld服务,然后直接用命令恢复启动即可,不需要重新初始化数据库。当数据恢复到DATADIR目录后,还需要确保所有数据文件的属主和属组均为正确的用户,否则,在启动mysqld之前还需要事先修改数据文件的属主和属组。
# chown -R mysql:mysql /data/mysql
7、增量备份
# 每个InnoDB的页面都会包含一个LSN信息,每当相关的数据发生改变,相关的页面的LSN就会自动增长。这也是InnoDB表可以进行增量备份的基础,即innobackupex通过备份上次完全备份之后发生改变的页面来实现。
创建一个增量备份(需要做一个完全备份为基础):
# innobackupex --user=DBUSER --password=DBUSERPASS --incremental /data/backups --incremental-basedir=BASEDIR
# 其中,BASEDIR指的是完全备份所在的目录,此命令执行结束后,innobackupex命令会在/backup目录中创建一个新的以时间命名的目录以存放所有的增量备份数据。另外,在执行过增量备份之后再一次进行增量备份时,其--incremental-basedir应该指向上一次的增量备份所在的目录。
# 注意:增量备份仅能应用于InnoDB或XtraDB表,对于MyISAM表,执行增量备份其实进行的是完全备份。
8、准备增量备份
# "准备"增量备份与完全备份有点不同,需要注意的是:
1. 需要在每个备份(包括完全和各个增量备份)上,将已经提交的事务进行"重放"。"重放"之后,所有的备份数据合并到完全备份上;
2. 基于所有的备份将未提交的事务进行"回滚"。
操作步骤:
# innobackupex --apply-log --redo-only BASE-DIR
120103 22:00:12 InnoDB: Shutdown completed; log sequence number 1291135
120103 22:00:12 innobackupex: completed OK!
# innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1
120103 22:08:43 InnoDB: Shutdown completed; log sequence number 1358967
120103 22:08:43 innobackupex: completed OK!
# innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-2
completed OK!
# 其中BASE-DIR指的是完全备份所在的目录,而INCREMENTAL-DIR-1指的是第一次增量备份的目录,INCREMENTAL-DIR-2指的是第二次增量备份的目录,其它依次类推,如果有多次增量备份,每一次都要执行如上操作。
转载于:https://blog.51cto.com/yuyucat/1655474
MySQL备份恢复工具xtrabackup相关推荐
- Mysql备份工具xtrabackup 8 安装图解
Mysql备份工具xtrabackup安装图解 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. 注: 当前操作系统CentOS 8.M ...
- MySQL备份Percona Xtrabackup安装和卸载
MySQL备份Percona Xtrabackup安装和卸载 Percona XtraBackup 安装介绍篇 XtraBackup介绍 XtraBackup是Percona公司的开源项目,用以实现类 ...
- 青蛙学Linux—MySQL备份工具XtraBackup
XtraBackup是Percona公司开发的一款免费开源的MySQL备份工具.与上一篇介绍的mysqldump不同,XtraBackup可以对MySQL进行物理备份(备份的是MySQL的文件而不是生 ...
- mysql备份工具Xtrabackup增量备份还原图解
Xtrabackup增量备份还原图解 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. XtraBackup是Percona 提供的免费 ...
- mysql 备份工具xtrabackup全备与还原图解
目录 xtrabackup备份还原图解 声明 准备 验证思路 用户赋权 备份前状态 全备 还原 还原前 还原中 还原后 问题数据目录不为空 xtrabackup备份还原图解 声明 本文的数据来自网络, ...
- MySQL备份恢复之XtraBackup
一. 简介 我们知道,针对InnoDB存储引擎,MySQL本身没有提供合适的热备工具,ibbackup虽是一款高效的首选热备方式,但它是是收费的.好在Percona公司给大家提供了一个开源.免费的Xt ...
- Mysql 备份工具XtraBackup增量备份
安装:[url]http://donald-draper.iteye.com/admin/blogs/2314832[/url] 全量备份:[url]http://donald-draper.itey ...
- Mysql 备份工具XtraBackup全量备份
Percona安装:[url]http://donald-draper.iteye.com/admin/blogs/2314832[/url] 命令介绍: The database user used ...
- mysql备份数据库怎么还原数据库文件_mysql如何备份和还原数据库文件
MySQL使用命令备份和还原数据库 这篇文章主要介绍了MySQL使用命令备份和还原数据库,本文使用Mysql内置命令实现备份和还原,比较简单,需要的朋友可以参考下 数据库在使用当中都会有数据库备份工作 ...
最新文章
- 如何用C语言改变宏定义的大小,C语言中宏定义使用的小细节
- 说好的敬畏每一行代码呢?Antd代码彩蛋炸翻一圈人
- 一文看懂物联网完整产业链条
- html图片宽度高度等比例绽放,css图片自动绽放大小,左右,上下居中
- jmeter模拟压测真实复杂用户场景,阶梯螺纹线程组Stepping Thread Group终极线程Ultimate Thread Group并发线程Concurrency Thread Group
- mysql 锁设置密码_[转载]mysql锁小结
- web 前端必备学习指南-精华
- 中望cad自定义快捷键命令_中望CAD快捷键命令大全
- gitlab hook declined错误
- windows清理缓存性能加速
- SNK 推出NEOGEO mini 投币配件,还能当作存钱罐?
- ♥️Javascript之DOM♥️
- 10543: 孤岛症候群
- 微信趣味地区一键设置,安排
- android系统级别应用开发要点
- 51单片机+PCF8591的多波形发生器仿真程序(正弦波 三角波等可调)
- python 知识点视频,Python超详细入门教程-Python基础视频教程-千锋教育视频资源库...
- 2022医院三基考试加血提分每日一练及答案
- vue(移动端)使用高德地图实现精准定位
- centOS7.2.1511 bit64位 浏览器不能上网
热门文章
- 小技巧 —— linux中怎么简单的复制5000个数字
- ubuntu18.04(python3.6)安装pip3报错:ImportError: cannot import name 'sysconfig'
- 【转】每天读一遍,思考一下:我是否浮躁?
- matlab实战中一些重要的函数总结
- 解决Android中No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse问题...
- QThread使用——关于run和movetoThread的区别
- .NET中的IO操作基础介绍
- C++编程思想重点笔记(下)
- WINCE--编译环境一二三(转摘)
- db4o Tutorial 中文翻译(十一)