数据库系统概述之数据库恢复技术

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Mind_programmonkey/article/details/86172672

第十章  数据库恢复技术

1.事务

事务是用户定义的一个数据库操作序列,这些操作要么全做要么全部做,是一个不可分割的工作单位。

 

2.COMMIT和ROLLBACK

COMMIT表示提交,即提交事务的所有操作,将事务中所有对数据库的更新写回到磁盘上的物理数据库中去。

ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤销,回滚到事务开始时的状态。

 

3.事务的ACID特性

原子性(Atomicity):要么全做,要么全部做

一致性(Consistency):从一个一致性状态到另一个一致性状态

隔离性(Isolation):一个事务的执行不能被其他事务干扰

持续性(Durability):事务一旦提交,改变是永久的

 

4.事务故障的种类

事务内部的故障(系统做撤销操作);

系统故障(对未完事务做撤销操作,对已完成的事务做重做操作)

介质故障(DBA介入,重做最近转储的数据库副本和日志文件副本,重做已完成的事务)

 

5.建立冗余数据的技术

数据转储和登记日志文件

 

6.数据转储

数据转储即数据库管理员定期将整个数据库复制到磁带、磁盘或其他存储介质上保存起来的过程。这些备用的数据称为后备副本。当数据库遭到破坏后可以将后备副本重新装入,但重装后的副本只能将数据库恢复到转储时的状态。

转储可分为静态转储和动态转储。静态转储时在系统中无运行事务时进行的转储操作。即转储操作开始的时刻数据库处于一致状态,而转储期间不允许(或)不存在对数据库的任何存取、修改活动。显然,静态转储得到的一定是一个数据一致性的副本。动态转储时指转储期间允许对数据库进行存取或修改。即转储和用户事务可以并发执行。

数据转储方法可以分为4类:动态海量转储、动态增量转储、静态海量转储、静态增量转储。

 

7.日志文件

日志文件是用来记录事务对数据库的更新操作的文件。

日志文件的作用:日志文件在数据库恢复中起着非常重要的作用,可以用来进行事务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复。具体作用有:

a.事务故障恢复和系统故障恢复必须用日志文件

b.在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库

c.在静态转储方式中也可以建立日志文件,当数据库毁坏后可重新装入后援副本,把数据库恢复到转储结束时刻的正确状态,然后利用日志文件把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤销处理。

登记日志文件必须遵循的两条原则:

a.登记的次序严格按并发事务执行的时间次序

b.必须先写日志文件,后写数据库

 

8.登记日志文件时为什么必须先写日志文件,后写数据库

a.写数据库和写日志文件时两个不同的操作;

b.在这两个操作之间可能发生故障;

c.如果先写数据库修改,而在日志文件没有登记这个修改,则以后就无法恢复这个修改操作。

d.如果先写日志文件,但没有修改数据库,按日志文件恢复时,只不过是多执行了一次不必要的UNDO操作,并不影响数据库的正确性。

 

9.针对不同的故障,给出恢复的策略和方法

发生事务故障时,系统做撤销操作;

发生系统故障时,对未完成事务做撤销操作,对已完成的事务重做

发生介质故障时,需要DBA介入,重做最近转储的数据库副本和日志文件时,重做已完成的事务。

猜你喜欢

转载自blog.csdn.net/Mind_programmonkey/article/details/86172672