前期准备
至少准备两台虚拟机完成Mysql的相关操作!
在生产环境中,数据的安全性至关重要,任何数据的丢失都可能产生严重的后果。
造成数据丢失的原因:
- 程序错误
- 人为操作错误
- 运算错误
- 磁盘故障:
- 解决措施:raid5、raid10,上传云,复制备份
- 灾难和盗窃
- 容灾(了解):是一个旨在确保业务连续性的系统工程,它涉及IT系统的设计和实施,以防止用户业务系统受到各种灾难的影响和破坏。
一、数据库备份的分类
1.1 从物理和逻辑上来划分
- 物理备份:数据库操作系统的物理文件(如数据文件、日志文件等)的备份
- 物理备份方法:
- 冷备份(脱机备份):是在关闭数据库时进行操作的
- 热备份(联机备份):数据库处于运行状态,依赖于数据库的日志文件
- 温备份:数据库锁定表格(可读不可写)的状态下进行备份操作
- 物理备份方法:
- 逻辑备份:对数据库逻辑组件的备份
1.1.1 逻辑备份的格式
mysqldump -u -p --databases 库1 库2 > xxx.sql
mysqldump -u -p --all-databases > xxx.sql
mysqldump -u -p 库1 表1 标2 > xxx.sql
1.2 数据库备份策略划分
- 完全备份:每次对数据库进行完整的备份
- 完全备份过程:每次都进行完全备份,会导致备份文件占用巨大的空间,并且有大量的重复数据;恢复时,直接把文件导入进去即可。
- 差异备份:每次自从上次完全备份之后被修改过的文件
- 差异备份过程:上一次差异备份都会备份上一次完全备份之后的数据,可能会出现备份重复数据,也会导致占用额外的磁盘空间;恢复时,先恢复完全备份,之后再导入差异备份的数据
- 增量备份:只有在上次完全备份或者增量备份后被修改的文件才会被备份
- 增量备份过程:每次增量备份的数据都是备份在上一次完全备份或者增量备份之后的数据,不会出现重复数据,也不会占用额外的磁盘空间;恢复时,需要完全恢复然后再做增量恢复
1.3 常见的备份方法
-
物理冷备
-
备份时数据库处于关闭状态,直接打包数据库文件
-
备份速度开,恢复时也是最简单的
-
-
专用备份工具mydump或mysqlhotcopy
-
mysqldump常用的逻辑备份工具
-
mysqlhotcopy仅拥有备份MyISAM和ARCHIVE表
-
-
启用二进制日志进行增量备份
-
进行增量备份,需要刷新二进制日志
-
-
第三方工具备份
-
免费的MySQL热备份软件
-
二、MySQL完全备份与恢复
格式:
mysql -u -p < xxx.sql 恢复库
mysql -u -p 库名 < xxx.sql 恢复表
2.1 数据库完全备份分类
2.1.1 物理冷备份与恢复
-
关闭mysql数据库
-
使用tar命令直接打包数据库文件夹
-
直接替换现有mysql目录即可
2.1.2 mysqldump备份与恢复
-
mysql自带的备份工具,可方便实现对mysql的备份
-
可以将指定的库、表导出为SQL脚本
-
可以命令mysql导入备份的数据
2.1.2.1 完全备份 MySQL 服务器中所有的库
2.1.2.2 完全备份一个或多个完整的库
2.1.2.3 完全备份指定库中的部分表
2.1.2.4 查看备份文件
2.2 使用mysqldump导出的文件,可使用导入的方法
- source命令
- mysql命令
三、mysql增量备份与恢复
3.1 MySQL数据库增量恢复
- 一般恢复
- 基于位置恢复
- 基于时间点恢复
3.2 实际操作
二进制日志(binlog)有3种不同的记录格式: STATEMENT (基于SQL语句)、ROW(基于行)、MIXED(混合模式),默认格式是STATEMENT。
3.3 二进制日志中需要关注的部分
- at :开始的位置点
- end_log_pos:结束的位置
- 时间戳
- SQL语句
生成新的二进制日志文件