数据备份
重要性
- 在生产环境中,数据的安全性至关重要
- 任何数据的丢失都可能产生严重的后果
造成数据丢失的原因
1、程序错误
2、认为操作错误
3、运算错误
4、磁盘故障
5、灾难和盗窃
数据库备份的分类
物理备份
对数据库操作系统的物理文件(如数据文件、日志文件等)的备份
方法
- 冷备份(脱机备份):是在关闭数据库的时候进行的
- 热备份(联机备份):数据库处于运行状态,依赖于数据库的日志文件
- 温备份:数据库锁定表格(不可写入但可读)的状态下进行备份操作
逻辑备份
逻辑备份是对数据库组件的备份,表示为逻辑数据库结构
这种类型的备份适用于可以编辑数据值或表结构
从数据库的备份策略角度看,备份又可分为完全备份、差异备份和增量备份
完全备份
每次对数据进行完整备份,即对整个数据库、数据库结构和文件结构的备份,保存的是备份完成时刻的数据库,是差异备份与增量备份的基础完成备份的备份与恢复操作都非常简单方便,但是数据存在大量的重复并且会占用大量的磁盘空间,备份时间也长
差异备份
备份那些自从上次完成备份之后被修改过的所有文件,备份的时间节点是从上次完整备份起,备份数据量会越来越大。恢复数据是只需要恢复上次的完全备份与最佳的一次差异备份。
增量备份
只有那些在上次完全备份或者增量 备份后被修改的文件才会被备份以上次完整备份或上次增量备份的时间为时间点,仅备份者之间的数据变化,因而备份的数据量小,占用空间小,备份速度快,但恢复时需要上次的完整备份开始到最后一次增量备份之间的所有增量依次恢复,如中间某次的备份数据损坏,将导致数据的丢失。
- 删除表
- 二进制恢复
[root@localhost ~]# mysqlbinlog --no-defaults /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p
Enter password:
常见的备份方法
物理冷备
备份时数据库处于关闭状态,直接打包数据库文件,备份速度快恢复时也是最简单的。
专用备份工具mysqldump 或mysqlhotcopy
mysqldump 常用的逻辑备份工具
mysqlhotcopy 仅拥有备份 MyISAM 和 ARCHIVE 表
启用二进制日志进行增量备份
进行增量备份,需要刷新二进制日志。
** 第三方工具备份**
免费的MySQL 热备份软件 Percona XtraBackup mysqlbackup
MySQL完全备份
是对整个数据库、数据库结构和文件结构的备份
保存的是备份完成时刻的数据库
是差异备份与增量备份的基础
优点
备份与恢复操作简单方便
缺点
数据存在大量的重复
占用大量的备份空间
备份与恢复时间长
数据库恢复
日志
MySQL 的日志默认保存位置为 /usr/local/mysql/data
日志的类型与作用
redo 重做日志
作用:确保日志的持久性,防止在发生故障,脏页未写入磁盘。重启数据库会进行redo log执行重做,达到事务一致性
undo回滚日志
作用:保证数据的原子性,记录事务发生之前的一个版本,用于回滚,innodb事务可重复读和读取已提交,隔离级别就是通过mvcc+undo实现
errorlog 错误日志
作用:MySQL本身启动,停止,运行期间发生的错误信息
slow query log 慢查询日志
作用:记录执行时间过长的sql,时间阈值可以配置,只记录执行成功另一个作用:在于提醒优化
bin log 二进制日志
作用:用于主从复制,实现主从同步
relay log 中继日志
作用: 用于数据库主从同步,将主库发来的bin log保存在本地,然后从库进行回放
general log 普通日志
作用:记录数据库的操作明细,默认关闭,开启后会降低数据库性能