Mysql备份与恢复(1)---物理备份
数据库对企业来说最重要的莫过于其中的数据,所以做好数据库的备份是一个不可或缺的工作。数据库及时备份可以帮助我们在数据库出现异常宕机时及时的使用备份数据进行恢复工作,将因为数据库宕机产生的影响降低到最小。所以,本篇文章主要数据库数据备份与恢复进行介绍。由于MyISAM存储引擎中备份数据是将表保存到单独的文件所以比较简单,所以这里我主要针对InnoDB存储引擎介绍备份与恢复机制。
全量备份与增量备份的区别
全量备份:
每次备份都进行全量备份,所以如果数据量大的情况下,进行全量备份会消耗较多的时间且对数据库压力比较大,但是由于全量备份每次都是最新的备份,所以恢复数据的时候效率更快。
增量备份:
只备份每天增量的日志,所以备份时效率更高对数据库压力也较小,但是恢复回复数据时就需要从全量备份日志加上每天的增量日志去进行恢复数据,所以恢复数据效率比较低。
Mysql数据备份大致分为2类:物理备份与逻辑备份。本篇文章我们先看看物理备份。
物理备份
物理备份分为热备份和冷备份。
冷备份
冷备份是最简单的备份方式,其实就是在备份数据时停掉Mysql服务,然后将data目录下的数据文件拷贝到备份地址进行存储。当Mysql出现宕机时,将备份文件拷贝到data目录替换即可完成数据恢复。但是一般情况下不使用冷备份的方式,因为生产环境下一般都有业务在跑,所以不可能每次备份都停止Mysql服务去进行备份工作。
热备份
快照备份
物理备份一般还有一种方式就是热备份,热备份相比于冷备份的好处在哪呢?热备份可以在Mysql服务开启的情况下执行备份操作,只是在热备份时会添加只读这类型的限制。热备份第一种介绍的备份方式就是快照备份。快照备份其实就是将所有的数据文件放置在同一个分区,然后对这个分区进行快照备份,但是快照备份只能存储在本地磁盘,如果本地磁盘出现故障,则可能出现快照备份数据的丢失。正是由于可能存在磁盘损坏导致数据丢失的情况下,所以生产环境下一般也不会使用热备份去备份数据。
xtrabackup备份
热备份另一种方式就是xtrabackup工具备份。xtrabackup工具2.3版本以下无法备份MyISAM存储引擎,它可以备份5.1到5.7之间版本的InnoDB存储引擎的数据。xtrabackup工具是基于InnoDB存储引擎的crash-recovery功能,先复制物理文件,再根据log进行恢复,保证数据一致性。接下来我们可以一起看看xtrabackup工具如何进行备份工作。
使用wget下载xtrabackup工具并使用yum命令安装:

使用xtrabackup备份,命令为:
xtrabackup --backup --user=root --password='123' --target-dir=/backups/**

可以看到,全量备份完成会显示当前备份的lsn号,下次进行增量备份就只会备份lsn大于此页的数据。我们可以查看下我们刚才全量备份的数据:

可以发现目录刚好和我们的数据库一一对应,每个文件夹中实际上就是对应数据库的备份数据。我们可以注意到根目录下还有几个文件,接下来我们来看下这几个文件的具体用途:
ibdata1:共享表空间文件,创建数据库时如果开启innodb_file_per_table参数,才可以使用xtrabackup工具备份单个数据库,否则默认都是全部数据库都进行备份。
backup-my.cnf:此文件存储一些my.cnf的有关于备份的配置信息。
xtrabackup_binlog_info:这个文件是用来记录备份开始时二进制文件的位置。
xtrabackup_checkpoints:这个文件记录备份的一些基本信息:比如备份开始和结束的lsn号,是全量备份还是增量备份等信息。
xtrabackup_info:这个文件记录备份的概要信息。
xtrabackup_logfile:备份的日志。
- 将经过backup的数据进行prepare得到完整可用的数据,使用命令:
- xtrabackup --prepare --use-memory=100M --target-dir=/backups

这里对命令几个参数做下解释:
--use-memory:该参数不带则默认prepare操作占用100M内存,如果数据量大我们可以将use-memory指定更大的内存加快prepare工作。
--target-dir:备份文件所在路径,我是放在/backups/。
- 恢复数据,恢复数据必须保证mysql中data目录不能存在任何数据,否则会报错。恢复数据实际上就是将备份数据拷贝到Mysql的data目录下,恢复数据使用--copy-back参数。使用命令:
- xtrabackup --copy-back --datadir=/var/lib/mysql --target-dir=/backups/
这里对命令几个参数做下解释:
--datadir:--datadir有两个方法进行配置:可以在my.cnf文件中指定,如果my.cnf文件没有指定该参数则恢复文件时必须指定--datadir参数。
--target-dir:备份文件所在路径,我是放在/backups/。
接下来演示下如何进行数据恢复:
停止数据库服务并且清掉data目录下所有数据:
systemctl stop mysqld.service && rm -rf /var/lib/mysql/*
恢复数据:
- xtrabackup --copy-back --datadir=/var/lib/mysql --target-dir=/backups/

最后,重启数据库:
- systemctl start mysqld.service
到这里备份数据就成功进行恢复到数据库中了。当然更常用的备份方式其实是逻辑备份,使用Mysql自带mysqldump工具进行备份操作,关于逻辑备份的知识将在下一篇进行讲解。
欢迎关注公众号:程序猿周先森。

欢迎关注公众号:程序猿周先森。文章原创于微信公众号,本平台不定时更新。
Mysql备份与恢复(1)---物理备份的更多相关文章
- Mysql备份与恢复(2)---逻辑备份
数据库及时备份可以帮助我们在数据库出现异常宕机时及时的使用备份数据进行恢复工作,将因为数据库宕机产生的影响降低到最小.上一篇针对使用xtrabackup工具进行物理备份和数据恢复做了一个详细讲解,本篇 ...
- Data Base mysql备份与恢复
mysql 备份与恢复 为什么要备份: 由于系统使用到了MySQL 数 据库,所以每天的工作,就设计到了MySQL数据库的备份问题.但如果每天手工来做MySQL数据库的定时备份,工作量不说,时间还不 ...
- MYSQL的备份与恢复--物理备份xrabackup
目录 1.数据库完整备份与恢复 (1)环境准备 (2)完全备份恢复流程 2.数据库增量备份与恢复 (1)增量和差异概述 (2)增量备份和恢复 3.数据库差异备份与恢复 4.简单命令进行物理备份 5.实 ...
- mysql 开发进阶篇系列 48 物理备份与恢复(xtrabackup 的增量备份与恢复,以及备份总结)
一.增量备份概述 xtrabackup 和innobackupex 二个工具都支持增量备份,这意味着能复制自上次备份以来更改的数据.可以在每个完整备份之间执行许多增量备份,因此,您可以设置一个备份 ...
- MySQL的备份与恢复理解与备份策略
MySQL的备份主要分为逻辑备份和物理备份 逻辑备份 在MySQL中逻辑备份的最大优点是对各种存储引擎都可以用同样的方法来备份.而物理备份则不同,不同的存储引擎有着不同的备份方法.Mysql中的逻辑备 ...
- (4.16)mysql备份还原——物理备份之XtraBackup实践
关键词:XtraBackup实践,物理备份,xtrabackup备份,innobackupex备份 [1]如何使用? [3]系列:innobackupex --help |more [4]系列:xtr ...
- Mysql不锁表备份之Xtrabackup的备份与恢复
一.Xtrabackup介绍 MySQL冷备.热备.mysqldump都无法实现对数据库进行增量备份.如果数据量较大我们每天进行完整备份不仅耗时且影响性能.而Percona-Xtrabackup就是为 ...
- 使用 xtrabackup 进行MySQL数据库物理备份
0. xtrabackup的功能 能实现的功能: 非阻塞备份innodb等事务引擎数据库. 备份myisam表会阻塞(需要锁). 支持全备.增量备份.压缩备份. 快速增量备份(xtradb,原理类似于 ...
- mysql之使用xtrabackup进行物理备份、恢复、在线克隆从库、在线重做主从
注:图片来自<深入浅出MySQL 数据库开发 优化与管理维护 第2版> 物理备份和恢复 1.冷备份:停掉mysql再备份,一般很少用,因为很多应用不允许长时间停机,停机备份的可以直接CP数 ...
随机推荐
- Chrome接口请求一直是pending状态,但接口实际上是正常的
1.现象 个别机器突然出现Chrome访问我司产品异常,本该通过接口获取的数据没有呈现,之前都是好好的,而且其他机器同样用同版本Chrome访问正常. 出现问题的机器重装Chrome问题依然存在,直到 ...
- 神经网络入门——7or 感知器
OR 感知器 OR 感知器与 AND 感知器很类似,在下图中,OR 感知器与 AND 感知器有相同的分割线,只是 OR 感知器分割线下移了一段距离.对权重或者偏置做怎样的设置可以实现这个效果?用下面的 ...
- 排他网关(ExclusiveGateWay)
网关(ExclusiveGateWay) 作者:邓家海2018年3月11日 00:13:25 情景:某一家公司最近在给一个单位做一个财务审批的OA.具体需求是这样的:当部门申请的金额小于一万块的时候, ...
- SuperSocket通过证书文件启用 TLS/SSL
你需要通过下面的步骤修改配置文件来使用你准备好的证书文件: 在server节点设置security属性: 在server节点下增加certificate子节点: 最后配置应该像这样: <serv ...
- 【转载】Windows平台分布式架构实践 - 负载均衡
概述 最近.NET的世界开始闹腾了,微软官方终于加入到了对.NET跨平台的支持,并且在不久的将来,我们在VS里面写的代码可能就可以通过Mono直接在Linux和Mac上运行.那么大家(开发者和企业)为 ...
- 7种最常见的Hadoop和Spark项目
7种最常见的Hadoop和Spark项目 如果您的Hadoop项目将有新的突破,那么它必定与下边介绍的七种常见项目很相像. 有一句古老的格言是这样说的,如果你向某人提供你的全部支持和金融支持去做一些不 ...
- springmvc 过滤器和拦截器
1. 拦截器: interceptor 过滤器(filter)与拦截器(intercepter)相同点:1) 都可以拦截请求,过滤请求2) 都是应用了过滤器(责任链)设计模式 2.区别: 1) fi ...
- java final域
public final class ThreeStooges { /* * stooges是Set<String>类型的引用,final限定该引用成员属性stooges被赋初值后,就不能 ...
- ES6 set和map数据结构对对象数组去重简单实现
自从有了es6的set数据结构,数组的去重可以简单用一行代码实现,比如下面的方式 let arr = [1, 2, 2, 3, 4] function unique (arr) { return [. ...
- 「THUPC 2019」不等式 / inequality
https://loj.ac/problem/6620 高中数学好题.. |kx+b|的函数图像很直观,直接考虑函数图像: 一定只有一段极小值点! 这个点就是最小值了 特点:斜率为0! 而且发现,如果 ...