Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁)。XtraBackup支持所有的Percona Server、MySQL、MariaDB和Drizzle。
1. Xtrabackup介绍
1.1 官网地址 https://www.percona.com/downloads/XtraBackup/LATEST/
1.2 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写).
1.3 Xtrabackup有两个主要的工具:xtrabackup、innobackupex
1.3.1 xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表
1.3.2 innobackupex则封装了xtrabackup,是一个脚本封装,所以能同时备份处理innodb和myisam,但在处理myisam时需要加一个读锁
2. 下载Xtrabackup
2.1 要区分机器的32为还是64位
# yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr bison libtool ncurses-devel zlib-devel libgcrypt-devel # yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm # yum install -y xtrabackup
3. 全备数据
3.1 备份命令
# innobackupex --user=root --socket=/tmp/mysql.sock --password=x13966498715 /data/backup
3.2 在/data/backup 目录下会生成2016-05-25_10-51-39目录,备份会在该目录下生成一个按照时间命名的文件夹。用 --no-timestamp 参数可以指定到自己想要的备份文件夹,不受时间命名的文件夹限制。
3.3 还原数据
# service mysqld stop # rm -rf /data/mysql/* # innobackupex --apply-log /data/backup/2016-05-25_10-51-39 # 利用 --apply-log的作用是通过回滚未提交的事务及同步已经提 交的事务至数据文件使数据文件处于一致性状态。生成ib_logfile文件 # innobackupex --defaults-file=/etc/my.cnf --copy-back /data/backup/2016-05-25_10-51-39/ # 还原备份 # chown -R mysql:mysql /data/mysql #备份回来的时候默认是root组 # service mysqld restart
4. 增量备份(基于全备)
4.1 查看全备份点(注意观察全备的备份点以及增量备份的备份点)
# cat xtrabackup_checkpoints backup_type = full-backuped from_lsn = 0 to_lsn = 230159176 last_lsn = 230159176
4.2 增量备份
# innobackupex --user=root --socket=/tmp/mysql.sock --password=x13966498715 --incremental-basedir=/data/backup/2016-05-25_14-44-26 --incremental /data/backup/increment
4.3 增量备份还原
# service mysqld stop # rm -rf /data/mysql/* # innobackupex --apply-log /data/backup/2016-05-25_10-51-39 # 还原全备 # innobackupex --apply-log /data/backup/2016-05-25_10-51-39/ --incremental-dir=/data/backup/increment/2016-05-25_14-44-26/ # 第一次的 增量备份应用日志,应用完日志后,将合并到全备上,恢复使用全备恢复 # innobackupex --defaults-file=/etc/my.cnf --copy-back /data/backup/2016-05-25_10-51-39/ # 还原备份 # chown –R mysql:mysql /data/mysql #备份回来的时候默认是root组 # service mysql restart
5. 特别说明
5.1 说实在的不得不被xtrabackup给坑了,xtrabackup2.1 版本之后的更高版本不支持i386,一开始下载的高版本全部安装不了,(真心把我折磨的要死)。最后硬是看了官网的英文文档(https://www.percona.com/doc/percona-xtrabackup/2.1/installation/yum_repo.html)才晓得,希望大家不要走弯路,如果自己机子是32位机子千万不要下载高版本!最后提醒大家的是官网上的东西的好好看看。
5.2 在家里笔记本安装的时候(64位)发现报
Finished Dependency Resolution Error: Package: percona-xtrabackup-24-2.4.3-1.el6.x86_64 (percona-release-x86_64) Requires: libev.so.4()(64bit) You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
这个错误 从 http://rpmfind.net/linux/rpm2html/search.php?query=libev.so.4()(64bit) 下载一个 libev-4.03-3.el6.x86_64.rpm 并且执行
rpm -ivh libev-4.03-3.el6.x86_64.rpm
顺利安装完成
参考链接
http://www.cnblogs.com/zhoujinyi/p/4088866.html?utm_source=tuicool&utm_medium=referral
http://www.drupal001.com/2014/02/percona-xtrabackup-mysql/
http://www.ithao123.cn/content-2883279.html # 解决 innobackupex: Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup' (using password: NO).Failed to connect to MySQL server to detect version.
结束语
本文有任何错误,或有任何疑问,欢迎留言说明。
网友最新评论