数据备份的重要性:
备份的主要目的是灾难恢复;在生产环境中,数据的安全性至关重要;任何数据的丢失都可能产生严重的后果。
造成数据丢失的原因:
程序错误;人为操作错误;运算错误;磁盘故障;灾难和盗窃。
数据库备份的分类:
从物理与逻辑的角度,备份可分为物理备份和逻辑备份。
从数据库的备份策略角度,备份可分为完全备份,差异备份和增量备份。
物理备份:
对数据库操作系统的物理文件(如数据文件、日志文件等)的备份
物理备份方法:
冷备份(脱机备份):是在关闭数据库的时候进行的
热备份(联机备份):数据库处于运行状态,依赖于数据库的日志文件
温备份:数据库锁定表格(不可写入但可读)的状态下进行备份操作
逻辑备份:
对数据库逻辑组件(如:表等数据库对象)的备份
表示为逻辑数据库结构这种类型的备份适用于可以编辑数据值或表结构。
逻辑备份的方法:
完全备份:每次对数据库进行完整的备份
差异备份:备份自从上次完全备份之后被修改过的文件
增量备份:只有在上次完全备份或者增量备份后被修改的文件才会被备份
从数据库的备份策略角度,备份可分为
1.完全备份:
完全备份过程:
每次都进行完全备份,会导致备份文件占用巨大的空间,并且有大量的重复数据。
恢复时直接把文件导入进去即可。
2.差异备份:
差异备份过程:
每次差异备份,都会备份上一次完全备份之后的数据,可能会出现备份重复数据,导致占用大量额外的磁盘空间。
恢复时先恢复完全备份,再恢复导入差异备份的数据。
3.增量备份:
每次增量备份数据都是备份上一次完全备份或者增量备份之后的数据,不会出现重复数据,也不会占用额外的磁盘空间。
恢复时需要完全恢复,再增量恢复(次序)。
常见的备份方法:
物理备份(完全备份):
备份时数据库处于关闭状态,直接打包数据库文件;备份速度快,恢复时也是最简单的
专用备份工具mydump或mysqlhotcopy(完全备份,逻辑备份):
Mysqldump常用的逻辑备份工具(导出为sql脚本);mysqlhotcopy仅拥有备份myisam和archiv表;启用二进制日志进行增量备份(增量备份);进行增量备份,需要刷新二进制日志。
第三方工具备份:
免费的mysql热备份软件percona xtrabackup(阿里云的工具:dts,支持热迁移)。
Mysql完全备份:
完全备份介绍:
完全备份是对整个数据库,数据库结构和文件结构的备份;保存的是备份完成时刻的数据库;是差异备份与增量备份的基础。
完全备份的优缺点:
优点:备份与恢复操作简单方便
缺点:数据存在大量的重复;占用大量的备份空间;备份与恢复时间长。
完全备份的方法:
物理冷备份与恢复:1.关闭mysql数据库2.使用tar命令直接打包数据库文件夹3.直接替换现有mysql目录即可。
Mysqldump备份与恢复:1.mysql自带的备份工具,可方便实现对mysql的备份2.可以将指定的库,表导出为sql脚本3.使用命令mysql导入备份的数据。
Mysql增量备份与恢复:
增量备份产生的原因:
使用mysqldump进行完全备份存在的问题:备份数据中有重复数据;备份时间与恢复时间过长
增量备份是什么:
是自上一次备份后增加、变化的文件或者内容
增量备份的特点:
没有重复数据,备份量不大,时间短;恢复需要上次完全备份及完全备份之后所有的增量备份才能恢复,而且要对所有增量备份进行逐个反推恢复。
增量备份的过程:
mysql没有提供直接的增量备份方法;可通过mysql提供的二进制日志间接实现增量备份。
Mysql二进制日志对备份的意义:
二进制日志保存了所有更新或者可能更新数据库的操作;二进制日志在启动mysql服务器后开始记录,并在文件达到max_binlog_siza所设置的大小或者接收到flush logs命令后重新创建新的日志文件;只需定时执行flush logs方法重新创建新的日志,生成二进制文件序列,并及时把这些日志保存到安全的地方就完成了一个时间段的增量备份。
增量备份的方式:
一般恢复:将所有备份的二进制日志内容全部恢复
基于位置恢复:数据库在某一时间点可能既有错误的操作也有正确的操作;可以基于精准的位置跳过错误的操作。
基于时间点恢复:跳过某个发生错误的时间点实现数据恢复。
Mysql日志管理
Mysql的日志默认保存位置为/usr/local/mysql/data
Mysql的日志配置文件为/etc/my.cnf