数据库恢复技术

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


1.试述事务的概念及事务的四个特性

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

原子性:事务是数据库的逻辑工作单位,事务中的一系列操作要么全做要么全不做

一致性:事务执行的结果必须是使其从一个一致性状态变为另一个一致性状态,一致性状态是指事务中只包含成功事务提交的结果。当数据库系统运行发生故障,一部分事务只完成一半就被迫终止,但已完成的部分已经提交至物理数据库,此时数据库就处于一种不一致状态。

隔离性:是指一个事务的执行不能被其他事务所干扰,一个事务的内部的数据和操作与其他事务是隔离的,并发执行的各事务之间不能相互干扰。

持续性:是指一个事务一但提交,它对数据库中数据的改变就应该是持久性的,其他任何操作或故障都不应对其结果有任何影响

2.针对事务故障,试给出恢复的策略和方法。

事务故障恢复是由DBMS自动完成的,对用户是透明的。

策略是,数据库恢复子系统利用日志文件依次反向撤销该事务已经对数据库做的修改

具体步骤是:首先反向扫描日志文件,找到该事务对数据库进行的更新操作;其次对更新操作执行逆操作,将更新前的数据写入数据库;再继续反向扫描,查找该事务的其他更新操作,做类似处理;直至遇到事务文件的开始标记,事务故障恢复完成。

3.数据库转储的意义是什么?试比较各种数据转储方法。

数据转储是数据库恢复中采用的基本技术。所谓转储即DBA定期地将数据库复制到磁带或另一个磁盘上保存起来的过程。当数据库遭到破坏后可以将后备副本重新装入,将数据库恢复到转储时的状态。(在数据库遭遇故障时便于恢复数据库。
对数据库进行静态转储时,用户不能查询数据也不能对数据进行操作,优点是实现简单,缺点是转储效率低;
动态转储时,转储的同时用户也可以对数据库进行操作,转储不必等某个事务进行完,用户也不用等待转储结束再操作,提高了效率但转储出的数据可能与数据库中的不一致,因此在恢复的时候需要后备副本和转储过程中的日志文件一起恢复数据库到某个节点。
海量转储一次性转储全部数据库,而增量转储只转储上次之后更新的数据,从恢复角度来看,海量转储出的后备副本往往更方便恢复,但对于数据量巨大的数据库而言,常使用增量转储。
经组合,有动态海量转储、动态增量转储、静态海量转储、静态增量转储四种转储方法,DBA常根据数据库运行效率、数据转储效率、数据恢复效率进行周期配合选择合适的转储方法。

4.数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据?

事务故障、系统故障、介质故障、计算机病毒

系统故障和介质故障影响事务的正常执行,介质故障和计算机病毒破坏数据库数据

5.数据库中为什么要有恢复子系统?它的功能是什么?

因为计算机系统中硬件的故障.软件的错误.操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此必须要有恢复子系统。

恢复子系统的功能是在数据库遭遇故障时进行数据恢复,将数据库从错误状态恢复为某个已知的正确状态,保证事务的原子性、一致性、隔离性和持久性。

6.简要说明日志文件在数据恢复中的作用以及登记日记文件时必须遵循的两条原则。

日志文件的作用:
①在事务故障恢复中撤销未完成的事务
②在系统故障恢复中重做已完成的事务,撤销未完成的事务
③在介质故障恢复时,协助后备副本恢复数据,比如在动态转储中需要转储过程中的日志文件,静态转储中可以利用日志文件,重做从转储点到故障点已经提交的事务。
登记日志文件的两条重要原则:
①登记的次序必须严格按照并发事务执行的次序
②登记时一定要先写日志文件再写数据库。因为写日志文件和写数据库是两个不同的操作,其间可能发生故障。若先写数据库文件,日志没有登记上,那么这个数据库更新操作无法被恢复;如果先写日志文件而没有修改数据库,最多不过是在数据库中执行一次不必要的undo操作,不会影响数据库的正确性。

总结

为了写作业辛辛苦苦打了一个小时的字不能就这么算了我一定要水一篇csdn!

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值