使用XtraBackup工具实现数据库备份

一:安装XtraBackup软件包

1)安装依赖包perl-DBD-MySQL perl-Digest-MD5 libev

# yum -y install perl-DBD-MySQL perl-Digest-MD5 #rpm –ivh libev-4.15-1.el6.rf.x86_64.rpm

2)安装percona-xtrabackup

#rpm -ivh percona-xtrabackup-*.rpm

(需要安装包的童鞋可后台留言)

二:使用XtraBackup执行数据库备份

--host 主机名

--port 3306

--user 用户名

--password 密码

--databases="库名"

--databases="库1 库2"

--databases="库.表"

--no-timestamp 不用日期命名备份文件存储的子目录,使用备份的数据库名做备份目录名

--no-timestmap 不使用日期命名备份目录名

1)做一个完整备份(用日期命名)

#innobackupex --user=root --password=1234567 /backup/mysql –no-timestamp

确认备份好的文件数据:

#ls /backup/

2)做一个增量备份(基于前一步的完整备份)

随意做一些新增或更改库表的操作,比如在db1库中新建一个mytb的表:

mysql> USE db1;

mysql> CREATE TABLE mytb(id int(4), name varchar(24));

mysql> INSERT INTO tb1 VALUES(1,'bon'),(2,'bo');

以前一次保存到/backup的完整备份为基础,做一个增量备份,保存到/incr01/,指定增量备份参照的基本目录(完整备份目录)需要用到选项--incremental-basedir

#innobackupex --user=root --password=12345678 --incremental /incr01 --incremental-basedir=/backup/ --no-timestamp

确认备份好的文件数据:

# ls /incr01/

对比完整备份、增量备份的大小:

# du -sh /backup/ /incr01/

三:准备用于恢复的数据库目录

1)准备恢复“完整备份”

#innobackupex --user=root --password=12345678 --apply-log --redo-only /backup/

准备恢复“增量备份”

#innobackupex --user=root --password=12345678 --apply-log --redo-only /backup/ --incremental-dir=/incr01

2)关闭mysql服务,并将/var/lib/mysql/下的文件删除,假设数据被删除。

#systemctl stop mysqld #rm -rf /var/lib/mysql

3)恢复“完整备份+增量备份”

# innobackupex --user=root --password=12345678 --copy-back /backup/

4)修改/var/lib/mysql/下文件属主与属组,查看数据:

#chown -R mysql:mysql /var/lib/mysql #systemctl start mysqld.service #mysql -uroot -p12345678 -e "select * from db1.tb1"

原文发布于微信公众号 - 吴柯的运维笔记(wukeyy18s)

原文发表时间:2017-09-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小狼的世界

重新认识wget

Wget是平时经常会用到的一个工具,这个工具其实有着非常丰富的参数和配置,能够实现很强大的功能。比较常用的一个就是抓站或者为网站做镜像。

12010
来自专栏python学习之旅

Python笔记(十二):操作数据库

(一)      前言     本文说明如何连接Oracle、MySQL、sqlserver,以及执行sql、获取查询结果等。 (二)      DB-API ...

39990
来自专栏PHP在线

MySQL事务隔离级别详解

SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销...

43570
来自专栏Laoqi's Linux运维专列

Ansible roles搞定LAMP架构

14220
来自专栏沈唁志

如何在CentOS 7上安装PostgreSQL关系数据库

PostgreSQL关系数据库系统是一个功能强大的,可扩展的,并符合标准的开源数据库平台。本指南将帮助您在CentOS 7 Linode上安装和配置Postgr...

19420
来自专栏腾讯技术工程官方号的专栏

鹅厂 TDSQL XA 事务隔离级别的奥秘

TDSQL XA 全局事务(global transaction)是指用户客户端连接到 TDSQL XA 分布式数据库系统后发起和执行的事务,也就是 TDSQL...

52020
来自专栏喵了个咪的博客空间

基于PhalApi2的Redis拓展

基于PhalApi2的Redis拓展 ? 前言 Redis在PHP开发中运用场景已经无处不在,小到简单缓存大到数据库或消息队列都可以使用Redis来进行实现,基...

31950
来自专栏Python

mysql数据备份与恢复

MySQL数据备份与恢复 #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境。但不能恢复到异构系统中如Windows。 #2. 逻辑备份: 备份的是建...

41260
来自专栏LanceToBigData

MySQL(十五)之数据备份中mysqldump详解

前言   其实前面一篇数据备份已经是非常的详细了,这里我想单独的讲解一下mysqldump,相信很多程序员都是用过这个命令的! 一、MySQL数据库的备份与还原...

34980
来自专栏程序你好

如何在SQL Server中将表从一个数据库复制到另一个数据库

26840

扫码关注云+社区

领取腾讯云代金券