一、数据库恢复目标:
1、减少发生故障——事务
2、出现故障进行故障恢复——恢复策略+数据库更新规则+三种更新策略
二、事务
事务简单的说就是一组操作的集合,而这一组操作是一个整体,即要么同时都完成要么同时都完成不了。
四大特性:ACID
1 原子性,即事务内部的操作要么都成功要么都不成功。
2 一致性,就是事务执行前后都会是合法的数据状态,不会违背任何数据的完整性约束。
3 隔离性,并发的事务之间不能相互干扰
4 持久性,只要事务成功完成,它对数据库的影响是持久的。
三、恢复策略
数据库对此有以下三种策略:
1、周期性转储,就是一段时间对数据库进行一次备份
2、周期性转储+增量转储,记录了自从上次备份之后变化的那一部分的记录,也就是增量转储的部分。增量转储也是周期性存储的,转储点到故障点之间依然有数据丢失的部分
3、周期性转储+日志
最重要的便是 周期性转储+日志。
首先日志要存储事务的TID(事务唯一性),以便知道到底是哪个事务;其次日志要记录这个事务修改数据库之前的内容,和修改数据库之后的内容,即要记录旧值和新值。这样在遇到恢复的时候,如果之前没有写完,找到新值写完就可以恢复;如果之前写到一半故障了,找到旧值就可以恢复了。