Percona Xtrabackup备份mysql大数据库(完整备份与增量备份)
Percona Xtrabackup备份mysql大数据库(完整备份与增量备份)
Xtrabackup简介
Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁)。XtraBackup支持所有的Percona Server、MySQL、MariaDB和Drizzle。
XtraBackup优势 :
1、无需停止数据库进行InnoDB热备
2、增量备份MySQL
3、流压缩到传输到其它服务器
4、能比较容易地创建主从同步
5、备份MySQL时不会增大服务器负载
Xtrabackup安装
这里只介绍Ubuntu-12.04下的安装方法,其它系统的安装方法请参考http://www.percona.com/doc/percona-xtrabackup/2.1/installation.html
- apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
在/etc/apt/sources.list加入:
- deb http://repo.percona.com/apt precise main
- deb-src http://repo.percona.com/apt precise main
执行update及安装操作
- apt-get update
- apt-get install percona-xtrabackup
注:precise是Ubuntu-12.04的版本代号,如果是其它系统版本,需要更换。
Xtrabackup工具介绍
安装XtraBackup后,其实会有几个工具:
innobackupex:
这个是其实是下面三个工具的一个perl脚本封装,可以备份MyISAM, InnoDB, XtraDB表。
xtrabackup:
一个由C编译而来的二进制文件,只能备份InnoDB和XtraDB数据。
xbcrypt:
用来加密或解密备份的数据。
xbstream:
用来解压或压缩xbstream格式的压缩文件。
建议使用perl封装的innobackupex来作数据库备份,因为比较容易使用。所以下面只介绍innobackupex的使用。其它的使用参考:http://www.percona.com/doc/percona-xtrabackup/2.1/manual.html
innobackupex使用方法
完整的选项使用请执行innobackupex --help,这里只介绍使用常用的选项进行完整备份及增量备份和还原。
完整备份及还原
假如我们要备份centos和mysql数据库。
备份:
- innobackupex --user=root --password=root --defaults-file=/etc/mysql/my.cnf --include="centos.*|mysql.*" /data/mysql_backup
这样就会在/data/mysql_backup生成一个带时间的目录,如果不需要带时间,可以使用选项--no-timestamp。
如果想备份成压缩文件,可以使用如下语句:
- innobackupex --user=root --password=root --defaults-file=/etc/mysql/my.cnf --include="centos.*|mysql.*" --no-timestamp --stream=tar ./ | gzip - > www.centos.bz.tar.gz
还原:
假如完整备份的路径为/data/mysql_backup/full_backup,如果完整备份是压缩文件,需要先解压再还原。
- innobackupex --apply-log /data/mysql_backup/centos_full_backup
- innobackupex --copy-back --defaults-file=/etc/mysql/my.cnf /data/mysql_backup/centos_full_backup
- chown -R mysql:mysql /var/lib/mysql
增量备份及还原
增量备份是建立在完整备份的基础上的,所以首先确保已经完整备份了一次。
完整备份:
- innobackupex --user=root --password=root --include="centos.*" --no-timestamp /data/mysql_backup/centos_full_backup
现在完整备份的目录为/data/mysql_backup/centos_full_backup。
增量备份:
第一次增量备份:
- innobackupex --incremental /data/mysql_backup/inc/20130906 --no-timestamp --incremental-basedir=/data/mysql_backup/centos_full_backup --user=root --password=root --defaults-file=/etc/mysql/my.cnf
第二次增量备份:
- innobackupex --incremental /data/mysql_backup/inc/20130907 --no-timestamp --incremental-basedir=/data/mysql_backup/inc/20130906 --user=root --password=root --defaults-file=/etc/mysql/my.cnf
选项--incremental是指定作增量备份 --incremental-basedir选项是指定上一次增量备份的目录(如果是第一次作增量备份,则为完整备份的目录)。
还原:
增量备份的还原操作跟完整的还原有点不一样,首先必须使用--apply-log --redo-only对完整备份的目录及所有增量备份目录进行操作,然后就可以像还原完整备份时的操作了。
对每个备份目录作apply-log redo-only操作(包括完整备份)
- innobackupex --apply-log --redo-only /data/mysql_backup/centos_full_backup --user=root --password=root
- innobackupex --apply-log --redo-only /data/mysql_backup/centos_full_backup --incremental-dir=/data/mysql_backup/inc/20130906 --user=root --password=root
- innobackupex --apply-log --redo-only /data/mysql_backup/centos_full_backup --incremental-dir=/data/mysql_backup/inc/20130907 --user=root --password=root
下面就跟还原完整备份时一样了:
- innobackupex-1.5.1 --apply-log /data/mysql_backup/centos_full_backup --use-memory=1G --user=root --password=root
- innobackupex --copy-back --defaults-file=/etc/mysql/my.cnf /data/mysql_backup/centos_full_backup
转载请标明文章来源:《https://www.centos.bz/2013/09/percona-xtrabackup-mysql-backup/》
Percona Xtrabackup备份mysql大数据库(完整备份与增量备份)的更多相关文章
- MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份]
MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份] 1.Xtrabackup的安装 percona-xtrabackup-2.2.3-4982.el6.x86_ ...
- Percona XtraBackup 关于 MySQL备份还原的详细测试
一. Percona XtraBackup 的优点. (1)无需停止数据库进行InnoDB热备: (2)增量备份MySQL: (3)流压缩传输到其它服务器: (4)在线移动表: (5)能够比较容易地创 ...
- Mysql备份系列(3)--innobackupex备份mysql大数据(全量+增量)操作记录
在日常的linux运维工作中,大数据量备份与还原,始终是个难点.关于mysql的备份和恢复,比较传统的是用mysqldump工具,今天这里推荐另一个备份工具innobackupex.innobacku ...
- 如何备份MySql的数据库
如何备份MySql的数据库 应该说一般的数据库都有BackUp的需求, MySql备份数据库的方式很简单, 但是在网上说得云里雾里, 也应该是我对MySql数据库不熟悉. 目标(Target) : ...
- 使用Percona Xtrabackup创建MySQL slave库
一.使用Percona Xtrabackup创建MySQL slave库 MySQL Server 版本: Server version: 5.7.10-log MySQL Community Ser ...
- 如何用Percona XtraBackup进行MySQL从库的单表备份和恢复【转】
前提 应该确定采用的是单表一个表空间,否则不支持单表的备份与恢复. 在配置文件里边的mysqld段加上 innodb_file_per_table = 1 环境说明: 主库:192.168.0.1 从 ...
- Linux下备份Mysql所有数据库
需求:备份除了mysql系统数据库的所有数据库 以下为Shell脚本,只需要修改用户密码即可 MYSQL_USER=root MYSQL_PASS=123456 MYSQL_CONN="-u ...
- centos中创建自动备份Mysql脚本任务并定期删除过期备份
背景: OA系统数据库是mysql,引擎为myisam,可以直接通过拷贝数据库文件的方式进行备份 创建只备份数据库的任务: 创建保存mysql数据库备份文件的目录mysqlbak mkdir /hom ...
- shell脚本: 备份mysql远程数据库并清除一个月之前的数据
hxingxing-backup.sh: date="$(date +"%Y-%m-%d")"mysqldump -u root -h localhost -p ...
随机推荐
- centOS7 flask项目布署
先用1张图表示centOS布署flask的关键点,以及可能遇到的问题,及解决办法. 图片看不清,可以[下载]下来看,清晰度能够看清字 [目标] 局域网内,通过url可以访问flask编写的api 更新 ...
- nginx排查502错误
排查502错误1.查看/usr/local/nginx/conf/nginx.conf从而知道其错误日志在哪.重点查看其错误日志.2.如果是/tmp/dd.sock2017/05/01 18:48:3 ...
- npm link的作用
语法: 1. 在一个包目录下npm link (把当前的包目录软连接到global folder里面,把二进制文件也软连接到global的bin里面 这个prefix可以用npm config ls ...
- 理解ES6中的Iterator
一.为什么使用Iterator 我们知道,在ES6中新增了很多的特性,包括Map,Set等新的数据结构,算上数组和对象已经有四种数据集合了,就像数组可以使用forEach,对象可以使用for...in ...
- flutter dialog异常Another exception was thrown: Navigator operation requested with a context that does not include a Navigator
我在使用flutter里的对话框控件的时候遇到了一个奇怪的错误 Another exception was thrown: Navigator operation requested with a c ...
- Git配置用户名、邮箱
当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址. 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改. 否则,用户名会显示为unkno ...
- MySQL数据库生成数据库说明文档
在半年多前为一个MySQL数据库生成过数据库说明文档,今天要重新生成一份,但是发现完全不记得当时是怎么生成的,只能在网上搜索重来一遍,所以今天特意把这个过程记录一下. 一.安装 使用MySQL数据库表 ...
- Centos7 搭建pptp服务器
1.检查是否支持pptp 返回ok即表示支持 modprobe ppp-compress-18 && echo ok 2.安装ppp yum install -y ppp 3.安装pp ...
- spring - 第N篇 一些笔记
1.properties文件的引入 <bean id="propertyConfigurer" class="org.springframework.beans.f ...
- JGit、SvnKit - 版本提交日志(1)提取
1.相关开源jar包 1>使用JGIT访问git项目 2>使用SVNkit访问svn Git官方JGit使用教程指导 2.Git历史提交日志导出到文件 在项目根目录执行如下命令,将日志 ...