数据备份与恢复
一、备份简介
2.1 备份分类
2.2 备份工具
二、mysqldump
2.1 常用参数
2.2 全量备份
2.3 增量备份
三、mysqlpump
3.1 功能优势
3.2 常用参数
四、Xtrabackup
4.1 在线安装
4.2 全量备份
4.3 增量备份
五、二进制日志的备份
一、备份简介
2.1 备份分类
按照不同的思考维度,通常将数据库的备份分为以下几类:
物理备份 与 逻辑备份
- 物理备份:备份的是完整的数据库目录和数据文件。采用该模式会进行大量的 IO 操作,但不含任何逻辑转换,因此备份和恢复速度通常都比较快。
- 逻辑备份:通过数据库结构和内容信息来进行备份。因为要执行逻辑转换,因此其速度较慢,并且在以文本格式保存时,其输出文件的大小大于物理备份。逻辑备份的还原的粒度可以从服务器级别(所有数据库)精确到具体表,但备份不会包括日志文件、配置文件等与数据库无关的内容。
全量备份 与 增量备份
- 全量备份:备份服务器在给定时间点上的所有数据。
- 增量备份:备份在给定时间跨度内(从一个时间点到另一个时间点)对数据所做的更改。
在线备份 与 离线备份
- 在线备份:数据库服务在运行状态下进行备份。此时其他客户端依旧可以连接到数据库,但为了保证数据的一致性,在备份期间可能会对数据进行加锁,此时客户端的访问依然会受限。
- 离线备份:在数据库服务停机状态下进行备份。此备份过程简单,但由于无法提供对外服务,通常会对业务造成比较大的影响。
2.2 备份工具
MySQL 支持的备份工具有很多种,这里列出常用的三种:
- mysqldump:这是 MySQL 自带的备份工具,其采用的备份方式是逻辑备份,支持全库备份、单库备份、单表备份。由于其采用的是逻辑备份,所以生成的备份文件比物理备份的大,且所需恢复时间也比较长。
- mysqlpump:这是 MySQL 5.7 之后新增的备份工具,在 mysqldump 的基础上进行了功能的扩展,支持多线程备份,支持对备份文件进行压缩,能够提高备份的速度和降低备份文件所需的储存空间。
- Xtrabackup:这是 Percona 公司开发的实时热备工具,能够在不停机的情况下进行快速可靠的热备份,并且备份期间不会间断数据库事务的处理。它支持数据的全备和增备,并且由于其采用的是物理备份的方式,所以恢复速度比较快。
二、mysqldump
2.1 常用参数
mysqldump 的基本语法如下:
# 备份数据库或数据库中的指定表
mysqldump [options] db_name [tbl_name ...]
# 备份多个指定的数据库
mysqldump [options] --databases db_name ...
# 备份当前数据库实例中的所有表
mysqldump [options] --all-databases