前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >xtrabackup 实现MySQL数据库备份

xtrabackup 实现MySQL数据库备份

作者头像
剧终
发布2020-08-26 22:16:25
1.1K0
发布2020-08-26 22:16:25
举报
文章被收录于专栏:Linux学习日志Linux学习日志

Xtrabackup介绍

Percona XtraBackup是一款基于MySQL的服务器的开源热备份实用程序,在备份过程中不会锁定数据库。它可以备份来自MySQL5.1,5.5,5.6和5.7服务器上的InnoDB,XtraDB和MyISAM表的数据,以及带有XtraDB的Percona服务器。

XtraBackup 有两个工具:xtrabackup 和 innobackupex Xtrabackup 本身只能备份InnoDB和XtraDB,不能备份MyISAM; innobackupex 它是封装了xtrabackup的perl脚本,覆盖了xtrabackup的功能。 它不但可以备份nnodb和xtradb两种引擎的表,还可以备份myisam引擎的表(在备份myisam表时需要加一个读锁)。

Xtrabackup特点

代码语言:javascript
复制
备份过程快速、可靠;
备份过程不会打断正在执行的事务;
能够基于压缩等功能节约磁盘空间和流量;
自动实现备份检验;
还原速度快;

安装xtrabackup

代码语言:javascript
复制
yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
yum update percona-release
yum install percona-xtrabackup-24 -y

主数据库全量备份

全量备份命令

代码语言:javascript
复制
innobackupex  --defaults-file=/etc/my.cnf --user=root --password=Aa123456  /we/
请输入图片描述
请输入图片描述

从备份过程截图可以看出会创建一个时间的目录 这里面就是相关的备份文件,同样也可以看到我们创建的库的名称

请输入图片描述
请输入图片描述

恢复误删除数据

恢复数据之前需要保证数据目录是空的状态

代码语言:javascript
复制
innobackupex --defaults-file=/etc/my.cnf --copy-back /we/2020-07-01_08-37-39/
请输入图片描述
请输入图片描述

修改数据文件权限

代码语言:javascript
复制
chown -R mysql:mysql /data/mysql

重启从数据库

代码语言:javascript
复制
systemctl restart mysqld

查看数据库

请输入图片描述
请输入图片描述

恢复成功

增量备份

代码语言:javascript
复制
创建用于增量备份的数据,用来模拟删除掉了全备份后的数据,能否通过增量备份文件来恢复
--incremental /we/   指定增量备份文件备份的目录
--incremental-basedir    指定上一次全备或增量备份的目录
代码语言:javascript
复制
innobackupex --defaults-file=/etc/my.cnf --user=root --password=Aa123456 /we/

创建数据库,然后备份

代码语言:javascript
复制
mysql> create database wee;
innobackupex --defaults-file=/etc/my.cnf --user=root --password=Aa123456--incremental /we/ --incremental-basedir=/we/2020-07-01_09-47-34

再次创建数据库,然后备份

代码语言:javascript
复制
mysql> create database weee;
innobackupex --defaults-file=/etc/my.cnf --user=root --password=Aa123456--incremental /we/ --incremental-basedir=/we//we/2020-07-01_09-56-15/

这个时候在/we下面应该有当前时间的三个目录,时间有一点差别而已

请输入图片描述
请输入图片描述

模拟数据丢失 删除一个数据库来测试增量恢复

代码语言:javascript
复制
mysql> drop database we;

增量还原,同步开始合并 回滚未提交的事务及同步已经提交的事务至数据文件使得数据文件处于一致性状态

代码语言:javascript
复制
innobackupex  --apply-log  --redo-only /we/2020-07-01_09-47-34/
innobackupex  --apply-log  --redo-only /we/2020-07-01_09-47-34/ --incremental-dir /we/2020-07-01_09-56-15/
innobackupex  --apply-log  --redo-only /we/2020-07-01_09-47-34/ --incremental-dir /we/2020-07-01_09-57-18/

提示

代码语言:javascript
复制
/we/2020-07-01_09-47-34/ 全备份目录
/we/2020-07-01_09-56-15/ 第一次增量备份产生的目录
/we/2020-07-01_09-57-18/ 第二次增量备份产生的目录

恢复数据

代码语言:javascript
复制
innobackupex --defaults-file=/etc/my.cnf --copy-back /we/2020-07-01_09-47-34/
chown -R mysql:mysql /data/mysql/
systemctl restart mysqld

验证数据是否存在

请输入图片描述
请输入图片描述

其它命令

单数据库备份

代码语言:javascript
复制
innobackupex --defaults-file=/etc/my.cnf --user=root --password=Aa123456 --database=we /we/

多个数据库备份

代码语言:javascript
复制
innobackupex --defaults-file=/etc/my.cnf --user=root --password=Aa123456 --include='we.*|wee.*' /we/

多个数据库表备份

代码语言:javascript
复制
innobackupex --defaults-file=/etc/my.cnf --user=root --password=Aa123456 --include='we.tableb|wee.tableb' /we/
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Xtrabackup介绍
  • 安装xtrabackup
  • 主数据库全量备份
  • 恢复误删除数据
  • 增量备份
  • 其它命令
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档