数据库恢复技术之事务
2017-03-14 10:30
197 查看
1.事务的基本概念
事务是用户定义的一个数据库操作序列,一个基本逻辑单元,这些操作要么全做,要么全不做。例如,在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或者整个程序。在SQL中定义事务的语句,主要包含以下三条:begin transaction
commit
rollback
事务通常以begin transaction开始,以commit,或者commit结束。commit表示提交,即提交事务的所有操作。rollback表示回滚,即在事务运行过程中,发生了某种故障,事务不能继续执行,则对已完成的操作全部撤销,回滚到事务开始时的状态。
2.事务的四大特性
毋庸置疑,ACID。分别为原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability)。原子性:事务是数据库的逻辑工作单元,包含的操作要么全做,要么全不做。
一致性:事务执行的结果必须是从一个一致性状态转换为另外一个一致性状态,即前后要保持一致。
隔离性:一个事务的执行不能被其他事务干扰。
持续性:指一个事务一旦提交,其对数据库中数据的改变就应该是持久性的。
3.故障的分类
主要分为事务内部故障,系统故障,介质故障,病毒等。事务内务故障:一般可以通过事务程序本身发现,但大多数是非预期的,不能由事务程序处理的。处理方式:事务发生故障,一般意味着事务没有达到预期的终点(commit,或者commit),导致数据库处于不正确的状态。一般通过事务撤销(UNDO)恢复操作来处理。
系统故障:指造成系统停止运转的任何事件,使得系统要重新启动。如:特定类型的硬件错误,操作系统故障,以及系统断电等。
介质故障:一般为硬故障,即外存故障,如磁盘损坏,磁头碰撞等。
4.恢复策略
首先,介绍两个相关概念——数据转储,日志文件。数据转储是数据库中采用的基本技术,即DBA定期地将整个数据库复制到磁带或者另一个磁盘上保存起来的过程。这些备用数据称为后援副本或者后备副本。
其中,包含静态转储和动态转储。静态转储是在系统中无运行事务时进行的转储操作。实现简单,但会降低数据的可用性。
动态转储,指在转储期间允许对数据库进行存取或修改,即转储和用户事务可以并发执行。
日志文件:用来记录事务对数据库更新操作的文件。
言归正传,下面介绍一下,事务故障恢复,系统故障恢复以及介质故障恢复。
事务故障恢复
恢复步骤:(1)反向扫描日志文件,查找该事务的更新操作。
(2)对该事务的更新操作执行逆操作。
(3)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。
(4)如此处理下去,直到读到此事务的开始标记,事务故障恢复就完成了。
系统故障恢复
恢复步骤:
(1)正向扫描日志文件,找到故障发生前已经提交的事务,将其事务标识记入重做队列(REDO)。同时,找出故障发生时尚未发生的事务,将其事务标识记
入撤销队列(UNDO)。
(2)对撤销队列中的各个事务进行撤销处理。
(3)对重做队列中的各个事务进行重做处理。
介质故障恢复
恢复步骤:重装数据库,然后重做已完成的事务。
相关文章推荐
- 数据库事务处理:事务基本特性、锁和数据库恢复技术
- Microsoft SQL Server数据库文件恢复技术
- 事务与数据库恢复原理
- 命令模式,数据库事务,命令的撤销恢复
- 数据库恢复技术
- 临危不惧:Oracle 11g数据库恢复技术
- 数据库误操作,如何恢复数据(SQL事务,或数据库还原)
- 浅析数据库事务中的故障恢复
- ORACLE数据库事务处理和故障恢复
- 数据库文件恢复技术
- SQL Server2000的事务备份与恢复,数据库的备份与恢复,还原点恢复
- SQL SERVER中的数据库恢复技术
- 数据库的卸载恢复技术
- 【PostgreSQL】postgreSQL数据库备份与恢复技术比较
- 数据库相关--关于数据库恢复技术技巧
- 技巧:通过事务日志将数据库恢复到某一时间点
- 用事务日志来恢复数据库
- SQL Server ->> 高可用与灾难恢复(HADR)技术之 -- Transaction Replication(事务复制)
- SQL Server2000的事务备份与恢复,此时的数据库状态为“正在装载”
- 对数据库的恢复技术的认识