与冷备份正好相反,热备份是在数据库处于运行状态时直接备份,不影响现有业务的正常进行。热备份又细分为逻辑备份和裸文件备份,下面我们介绍逻辑备份和冷备份以及它们常用的备份和恢复的方法。

逻辑备份

逻辑备份的最大优点就是对于各种存储引擎,都可以用同样的方法来备份。而冷备份则不同,不同的存储引擎的备份方法也各不相同。因此,对于不同存储引擎混合的数据库,用逻辑备份会更简单一些。

逻辑备份可以说是最简单,也是目前中小型系统最常用的备份方法。逻辑备份主要有以下几种方法:

1)mysqldump
mysqldump 是 MySQL 自带的逻辑备份工具。它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,然后将查询出的数据转换成对应的 INSERT 语句。当我们需要还原恢复这些数据时,只要执行这些 INSERT 语句,就能将对应的数据还原。所以有的资料也将这种备份方式称为 INSERT 备份。

恢复数据时可以使用 mysql -uroot -p <backup.sql 直接调用备份文件执行所有命令,将数据完全恢复到备份时候的状态。如果已经连接上了 MySQL 服务器,那么可以通过 source /path/backup.sql 来进行恢复。
我们在《MySQL mysqldump备份数据库》和《MySQL恢复数据库》中详细介绍了上面所讲的备份和恢复数据的方法。

2)SELECT INTO…OUTFILE
SELECT INTO…OUTFILE 语句可以把表数据导出到一个文本文件中,且能将数据库中的表数据以特定分隔符进行分隔后记录在文本文件中,以达到逻辑备份的效果。

这种备份方式与 mysqldump 方法相比,使用的存储空间更小,数据格式更加清晰明确,编辑方便。但是这种方法只能导出或导入数据的内容,不包括表的结构,如果表的结构文件损坏,则必须先恢复原来的表的结构。而且这种方法不能在同一个备份文件中存在多个表的备份数据,增加了文件维护和恢复的成本。

这种备份方法恢复起来会稍微麻烦一点,需要一个表一个表通过相关命令来进行恢复。当然如果是通过脚本来实现自动多表恢复也是比较方便的。恢复方法有 2 个,一个是通过 MySQL 的 LOAD DATA INFILE 命令来恢复数据,另一种方法就是通过 MySQL 提供的使用工具 mysqlimport 来进行恢复。
我们在《MySQL导出表数据》和《MySQL数据库恢复(LOAD DATA)》中详细介绍了上面所讲的备份和恢复数据的方法。

3)mydumper
mydumper 是针对 MySQL 数据库备份的一个轻量级第三方的开源工具,备份方式为逻辑备份。它支持多线程,备份速度远高于原生态的 mysqldump 以及其它众多优异特性。与其配套的相应恢复数据为 myloader 工具。DBA 称 mydumper 和 myloader 为备份界的“小钢炮”。

我们可以看出所谓的逻辑备份就是备份 SQL 语句,然后恢复数据时执行备份 SQL,从而实现数据库数据的重现。逻辑备份完成后所形成的文件都可以直接编辑。

逻辑备份的作用如下:

  • 通过逻辑备份,我们可以仅仅恢复备份中的部分数据而不需要全部恢复。不会影响不相关的数据;
  • 通过全库的逻辑备份,我们可以在新的 MySQL 环境下完全重建出一个与备份时完全一样的数据库,并且不受平台类型限制;
  • 通过特定条件的逻辑备份,我们可以将某些特定数据轻松迁移(或者同步)到其它的 MySQL 或另外的数据库环境。

裸文件备份

裸文件备份主要在底层复制数据文件,所以备份速度要比逻辑备份更快。

我们利用 Percona 公司发布的一个 XtraBackup 热备份工具来完成裸文件备份,它是 Percona 公司的开源项目,据官方介绍它是世界上唯一 一款开源的能够对 InnoDB 和 XtraDB 数据库进行热备的工具。

它的优点就是备份与恢复过程的速度很快,安全可靠,而且在备份过程中不会缩表,不影响现有业务。但它目前还是不能对表结构文件和其它非事务类型的表进行备份。

5、MySQL热备份及恢复相关推荐

  1. 2.5.1 MySQL数据库备份恢复基础讲解

    MySQL数据库备份恢复基础 MySQL常见的故障类型 对于用户来说,数据库中保存的数据通常至关重要,所以要采取各种手段来防止各种可能的数据损失和数据故障. DBA主要任务就是维持数据库的高可靠性运行 ...

  2. MySQL备份和恢复:mysqldump工具用法详述

    MariaDB/MySQL备份和恢复(一):mysqldump工具用法详述 分类: 数据库系列 本文原创地址在博客园:https://www.cnblogs.com/f-ck-need-u/p/901 ...

  3. Mysql数据库备份恢复

    目录 前言 一.数据备份的重要性 二.数据库备份的分类 1. 物理备份 2. 逻辑备份 2.1 完全备份 2.2 差异备份 2.3 增量备份 备份方式比较 如何选择逻辑备份策略 三.常见的备份方法 1 ...

  4. mysql备份数据库语句6_13.4 MySQL用户管理;13.5 常用sql语句;13.6 MySQL数据库备份恢复...

    扩展 : SQL语句教程 什么是事务?事务的特性有哪些? 根据binlog恢复指定时间段的数据 mysql字符集调整 使用xtrabackup备份innodb引擎的数据库  innobackupex  ...

  5. mysql用户管理,常用sql语句,mysql数据库备份恢复

    2019独角兽企业重金招聘Python工程师标准>>> mysql用户管理 grant all on . to 'user1' identified by 'passwd'; gra ...

  6. Mysql使用binlog恢复数据解决误操作问题的两种方法

    Mysql使用binlog恢复数据解决误操作问题的两种方法 参考文章: (1)Mysql使用binlog恢复数据解决误操作问题的两种方法 (2)https://www.cnblogs.com/Data ...

  7. MySQL用户管理、常用SQL语句、MySQL数据库备份恢复

    mysql用户管理 1.创建一个普通用户并授权 [root@gary-tao ~]# mysql -uroot -p'szyino-123' Warning: Using a password on ...

  8. 13.4 MySQL用户管理;13.5 常用sql语句;13.6 MySQL数据库备份恢复

    扩展 : SQL语句教程 http://www.runoob.com/sql/sql-tutorial.html 什么是事务?事务的特性有哪些? http://blog.csdn.net/yenang ...

  9. MySQL 备份和恢复

    MySQL 备份和恢复 本文讨论 MySQL 的备份和恢复机制,以及如何维护数据表,包括最主要的两种表类型:MyISAM 和 Innodb,文中设计的 MySQL 版本为 5.0.22. 目前 MyS ...

最新文章

  1. C++ 各种构造函数
  2. mysql中所有时间类型_MySQL 中的日期时间类型
  3. destoon实现调用热门关键字的方法
  4. 【转】 UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合
  5. java 字节输出流_Java IO详解(三)------字节输入输出流
  6. 【成长之路】JavaScript中,模拟 call 的底层实现
  7. mysql教程实验4.1_【MySQL】数据库课程实验
  8. 保持Service不被Kill掉的方法--双Service守护 Android实现双进程守护 2
  9. python内置模块在哪个文件夹_用 Python 内置模块处理 ini 配置文件
  10. vscode,js代码片段配置
  11. python平均值和加权平均值
  12. Python安全之使用Python进行MD5解密
  13. “神棍节”背后的故事
  14. java watcher service_GitHub - sinix/watcher: watcher(守望者)提供java应用暴露监控/健康检查的能力。...
  15. GeoServer中的WPS服务
  16. 基于自适应巡视算法的工业物联网异常行为检测
  17. Golang 协程顺序打印
  18. 一位十万粉博主的运营之路
  19. cts测试如何跳过某个模块不测过
  20. 讲座录播|图数据库中的子图匹配算法-邹磊

热门文章

  1. 成功解决TypeError: __init__() got an unexpected keyword argument 'indices'
  2. Windows系统下使用protobuf:protobuf的简介、安装、使用方法之详细攻略
  3. BigData:绘制2018年福布斯中国富豪榜人名坐标地图(解决多个人名显示在同一个家乡地点)
  4. Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.
  5. Linux下 WRF Domain Wizard 使用教程(PART1:下载+安装)
  6. ES6入门之对象扩展
  7. 单点系统架构的可用性与性能优化
  8. parseInt(),parseFloat(),parse()
  9. EasyUI中datagrid的行编辑模式中,找到特定的Editor,并为其添加事件
  10. zoj 3351 Bloodsucker(概率 dp)