💾事务的𝗔𝗖𝗜𝗗属性
- 原子性:事务里的操作要么全部执行,要么全不执行
- 一致性:执行结果让数据库从一个一致性状态变化到另一个一致性状态
- 隔离性:并发执行的事务互不干扰
- 持续性:一旦提交,其结果就不可被其他操作或故障所改变
💾事务的ACID属性遭到破坏的因素
- 多个事务执行时,不同事务交叉执行
- 事务在运行当中被强行停止
💾故障
- 事务内部故障:除以0等等
- 系统故障:断电、DBMS的Bug、CPU故障
- 介质故障:划盘了
- 计算机病毒:遭到黑客攻击
💾数据库恢复
原理简单,可以用冗余两个字来概括。
数据转储
转储方式 | 转储状态 | |
---|---|---|
动态 | 静态 | |
海量 | 动态海量转储 | 静态海量转储 |
增量 | 动态增量转储 | 静态增量转储 |
- 增量转储:仅转储上次更新过的数据
- 海量转储:每次转储整个库
登记日志文件
日志内容包括:
- 各个事务的开始标记;
- 各个事务的结束标记;
- 各个事务的全部更新操作。
为了保证数据库可恢复,还要:
- 等级严格按照并发事务执行的时间次序;
- 先写日志后写数据库。
💾SQL server恢复模式
恢复模式 | 可以恢复到故障时间点 | 自动收缩日志 | 支持的备份模式 |
---|---|---|---|
简单 | 完整备份、差异备份 | ||
完整 | 完整备份、差异备份、日志备份 | ||
大容量日志 |