xtrabackup备份与恢复
来源:互联网 发布:tidb 源码分析 编辑:程序博客网 时间:2024/06/04 19:55
mysqldump备份方式是采用逻辑备份,其最大的缺陷就是备份和恢复速度都慢,对于一个小于50G的数据库而言,这个速度还是能接受的,但如果数据库非常大,那再使用mysqldump备份就不太适合了。
Xtrabackup是由percona提供的mysql数据库备份工具,这是一款开源的能够对innodb和xtradb数据库进行热备的工具。
特点:
(1)备份过程快速、可靠;
(2)备份过程不会打断正在执行的事务;
(3)能够基于压缩等功能节约磁盘空间和流量;
(4)自动实现备份检验;
(5)还原速度快;
XtraBackup现在最新版本为2.4.7,官方也提供了2.4的版本可供下载,官方链接地址:https://www.percona.com/downloads/XtraBackup/LATEST/可以下载源码编译安装,也可以下载适合的RPM包或使用yum进行安装,如果没有需要特殊定制的,建议直接使用RPM安装或者直接使用二进制文件也可。
一、安装
#下载wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.7/binary/tarball/percona-xtrabackup-2.4.7-Linux-x86_64.tar.gz#解压tar xf percona-xtrabackup-2.4.7-Linux-x86_64.tar.gz -C /optmv percona-xtrabackup-2.4.7-Linux-x86_64 xtrabackup#配置环境变量echo "PATH=/opt/xtrabackup/bin:$PATH" >> /etc/profilesource /etc/profile
二、备份
1.为了数据库的暗转首先要为备份用户设置最小权限
mysql> CREATE USER ‘bkpuser’@’localhost’ IDENTIFIED BY ‘youpasswd’;
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM ‘bkpuser’;
mysql> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON . TO ‘bkpuser’@’localhost’;
mysql> FLUSH PRIVILEGES;
2.完全备份
innobackupex –user=DBUSER –password=DBUSERPASS /path/to/BACKUP-DIR/
3.增量备份
innobackupex –incremental /backup –incremental-basedir=BASEDIR
BASEDIR指的是完全备份所在的目录,此命令执行结束后,innobackupex命令会在/backup目录中创建一个新的以时间命名的目录以存放所有的增量备份数据。
另外,在执行过增量备份之后再一次进行增量备份时,其–incremental-basedir应该指向上一次的增量备份所在的目录。
4.恢复备份
准备阶段(prepare)
一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。
需要在每个备份(包括完全和各个增量备份)上,将已经提交的事务进行“重放”。“重放”之后,所有的备份数据将合并到完全备份上。
执行完全备份的redo:innobackupex --apply-log --redo-only BASE-DIR接着执行第一个增量:innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1而后是第二个增量:innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-2.....以此类推
还原数据阶段
还原时只需要还原完全备份即可
innobackupex –copy-back /path/to/BACKUP-DIR
三、Xtrabackup的“流”及“备份压缩”功能
Xtrabackup对备份的数据文件支持“流”功能,即可以将备份的数据通过STDOUT传输给tar程序进行归档,而不是默认的直接保存至某备份目录中。要使用此功能,仅需要使用–stream选项即可。如:
innobackupex --stream=tar /backup | gzip > /backup/`date +%F_%H-%M-%S`.tar.gz例如:innobackupex --user=backuser --password=youpassword --host=127.0.0.1 --port=3306 --stream=tar /backup_test/ | gzip > /backup/`date +%F_%H-%M-%S`.tar.gz
甚至也可以使用类似如下命令将数据备份至其它服务器:
innobackupex --stream=tar /backup | ssh user@backup.host "cat - > /backups/`date +%F_%H-%M-%S`.tar"
同时,innobackupex备份的数据文件也可以存储至远程主机,这可以使用–remote-host选项来实现:
innobackupex --remote-host=root@backup.host /path/IN/REMOTE/HOST/to/backup
- xtrabackup备份与恢复
- xtrabackup备份与恢复
- xtrabackup备份与恢复
- xtrabackup备份与恢复数据库
- Xtrabackup<四、备份与恢复>
- Xtrabackup 流备份与恢复
- xtrabackup增量备份与恢复
- xtrabackup安装备份与恢复
- mysql备份与恢复-xtrabackup
- 使用xtrabackup来备份与恢复数据库
- MySQL在线备份与恢复工具 --> Xtrabackup
- Xtrabackup备份恢复常用命令与压缩测试
- Percona Xtrabackup myql 快速备份与恢复
- xtrabackup备份恢复测试
- xtrabackup备份恢复测试
- mysql xtrabackup备份恢复
- xtrabackup备份恢复测试
- xtrabackup备份恢复测试
- LSA5 中FA地址为非0的情况
- 一个脚本搞定开发环境tomcat的部署更新,配置文件替换,图片备份等等
- 前端进阶之路--七大境界
- 设计模式之原型模式(Prototype)
- Java 并行程序设计模式 (Master-Worker模式)
- xtrabackup备份与恢复
- flask中request的一些疑惑
- [数据库事务与锁]详解五: MySQL中的行级锁,表级锁,页级锁
- Preference、PreferenceActivity,PreferenceFragment
- Java获取客户端提交参数乱码解决办法
- C++类实现顺序表和双向链表
- LeetCode 11. Container With Most Water
- 1.Arcgis图层与服务
- 深度学习论文随记(四)ResNet 残差网络-2015年Deep Residual Learning for Image Recognition