事务的定义?特点?
事务(TRANSACTION)是一系列数据库操作的集合,是实现数据库恢复和并发的基本单位,特点是ACID:
- Atomic:原子性,事务要么做完要么不做的特性
- Consistency:一致性,指事务的前后数据库都具有一致性,不因事务被中断等原因造成事务做了一半这种情况发生
- Isolation:隔离性,指事务之间不会互相影响、
- Durability:持久性,指事务一旦发生,所做的改变就永久生效
PS:造成事务ACID特性被破坏的因素1、事务并行;2、事务中断,处理这两个问题是保证ACID的基础
PS:AD是由恢复技术保证的;IC是由并发技术保证的
PS:直观上,事务类似一个有原子性的脚本
数据库常见故障?原因?解决?
| 种类 | 原因 | 解决办法 |
|---|---|---|
| 事务内部故障 | 算数溢出、并发导致死锁 | ROLLBACK(UNDO) |
| 系统故障 | 操作系统故障、电脑硬件故障、系统断电 | 对于事务已经开始但还没COMMIT:ROLLBACK 对于事务已经COMMIT但实际数据还在内存缓存没到硬盘的:REDO |
| 介质故障 | 超强磁场、物理碰撞 | 转储,即提前备份 |
| 计算机病毒 | 黑客 | 安装杀毒软件、防火墙等 |
冗余
冗余,redundancy,恢复技术的基本。数据库实现冗余(进而实现数据恢复)的具体方式有两种:
- 转储(即备份)
- 日志
静态转储和动态转储的区别?
转储期间能不能对数据库进行操作(执行事务)
PS:动态转储是基于日志才能实现的功能,它记录转储期间对于数据的操作
如何实现恢复数据库到半个月之前
-
物理备份:备份数据文件,将数据库的物理文件保存到一个目录。MySQL可以使用xtrabackup工具进行物理备份。占用的空间大
-
逻辑备份:MySQL中可以使用mysqlddump进行逻辑备份,主要是备份一个sql语句,在需要恢复时执行此SQL语句即可。逻辑备份的恢复速度快,占用空间小,更灵活。